How did I win the prize in the Tizen app competition?
At the end of September 2013, I decided to participate in the Tizen app competition, which was only about 40 days away from the competition end. Time is very short. In order to understand the probability of winning the contest, I first analyzed my weaknesses and advantages.
Disadvantages:
- I have never written any meaningful app. Although mobile development has been around for year 78, it is working on underlying things such as GUI, kernel, multimedia, browser and communication.
- I have no idea about the Tizen platform. I have never read any Tizen-related materials before. I went to the Tizen code and SDK and looked at the calculator code. I found it very troublesome to develop the Native Tizen application, A simple calculator actually has nearly ten thousand lines of C ++ code. With the Tizen API familiar, it is not enough to write a small program such as a calculator in 40 days!
- I don't know CSS, and I don't know much about HTML. After learning about the difficulties in developing Native applications, I found that Tizen has great support for html5. I decided to use html5. However, developing HTML5 applications is not simple (otherwise, HTML5 App frameworks such as Kendo-ui and Sencha Touch won't sell so expensive). Besides, I am still a little white!
- I am not an artist or a friend of mine. In fact, I don't even use Photoshop to scale a photo. Even if you adopt a flat style design and minimize the use of icons, the startup icons of applications are always indispensable.
- I cannot use English. I have worked in a foreign company for a few years. Although I cannot speak, I can write an email in English. I haven't written English for many years, and the level is not much better than that of high school students. It is difficult for me to describe the App functions in English.
- Lack of creativity. My life is very simple and I have no impulse to novel things. Many things have been popular for several years and I have started to use them. In the past two years, I have watched entrepreneurial articles such as 36 KR, titanium media, Lei Feng network, and entrepreneur state, which are constantly refined by the creative ideas of those creators.
- The available time is limited. I am still at home, although I have a good recovery, but for the sake of health, I set myself to be in front of the computer every day for no more than 3 hours. This is expected that I only have 3*40 = 120 hours of work (of course there is no weekend), that is, 15 working days for normal people, including study, art, documentation, programming, test, submit, and solve unexpected problems.
Let's talk about the advantages:
- Skillful programming skills. In this regard, I am very confident in myself. I used to brag in front of my colleagues that there are not many people with better programming skills. I am most familiar with the C language, but the level of javascript is still good. Javascript is essential for developing apps using HTML5.
- Strong learning ability. I majored in mechanical electronics, programming is basically self-taught, and I have never stopped learning for more than a decade. No matter what new things, as long as I am interested, I can usually learn in a short time.
- Familiar with the interface style of various apps. I spent a lot of time studying the interface style of various apps in order to develop the "Draw app" (www.drawapp8.com). Over the past two years, I have played hundreds of apps on Android, A complete GUI system is implemented on the canvas control of HTML5, including various popular GUI controls.
- He is good at solving various intractable diseases. Although I lack the demand-side idea, I have a lot of ideas in solving the problem and can always solve various difficult problems in a way that someone else could not think. As a matter of fact, my colleagues in the company admire me because they often spend two weeks solving the problem, and they will solve it in two hours.
- You have a self-developed killer-"draw an app ". "Draw app" (www.drawapp8.com) is a very useful integrated HTML5 App development environment. After more than a year of optimization and improvement, "Draw an app" has become the most useful HTML5 app development tool (haha, none ).
After analyzing your own strengths and weaknesses, make the following decisions:
- Are Native applications or HTML5 applications developed? This answer is obvious, of course, HTML5 applications.
- What applications are developed? I have no idea. It is unrealistic to develop novel things. Fortunately, Tizen is a new platform that requires a large number of practical applications. The answer is also obvious, developing practical applications.
- How many applications are developed? The time is only 40 days. If I only use one application, I can make it more detailed, but the risk is also very high. Once this application belongs to a variety of excellent products, the service will be completely wiped out, and the service will be busy for 40 days. If you use multiple applications to distribute them across different categories, if the competition for a specific category is small, the chances of winning the award are high. I am confident in the development efficiency of "Drawing apps", so I decided to develop multiple applications. I aimed at several categories such as puzzle, tool, efficiency, weather and news.
In order to familiarize yourself with the Tizen App review process, we decided to transform several previously written HTML5 apps. However, things are not as simple as possible, and the problem comes one after another:
The first problem is the art problem. Each application requires a large icon (512x512) and a small icon (117x117). It is easy to find a small icon on the Internet, and it is difficult to find a x512 icon. Of course, it cannot be scaled up directly. The effect is too bad! This problem has made me depressed for several days. One day while walking, I had the opportunity to cut down the application interface and process it as an application icon. It is not difficult to use GIMP to do this, and it will soon be done. facts have proved that this method is effective.
The second problem is that the English language is too bad. When submitting a TODO application, the reviewer told me that the function description of the application is unclear and Rejected! This is depressing. Later I thought, why don't I go online and see what others have described? I searched for the English descriptions of some related apps on the Internet, and soon this problem was solved.
The third problem is that Emulator cannot run. It was originally running normally in the simulator of "drawing app", and also in the web simulator of Tizen. The problem is that the Simulator of Tizen lacks functions such as selecting files or calling external programs, and its file system APIs are different from those of emulator, so the App runs normally on the Simulator, reviewers said they could not run on the actual device. This problem wastes me several days. When the SDK is upgraded to 2.2.1, the Emulator can run, but the HTML5 App interface is dark, so I have to bring the App screen out, view the interface effect by using the graph tool.
The fourth problem is time. The time was tight, and there was such a problem. At the same time, we had to modify the problem of the "image app" itself found in this process. Originally, it was expected to develop 25 apps (there are several puzzles and video links only for a change). Only 16 apps were submitted, and another one was not approved. Just before the competition was over, Tizen suddenly announced another 38-day extension, which is good news for me. Finally, 25 apps were created before December 31, December 8, and 24 apps were submitted, of which 23 were submitted. One App is a pixel-level copy of an Android App. Although I like this App very much, I finally decided not to submit it.
Due to various problems, an App was rejected for five times. At that time, I ignited the App, but on the other hand, the reviewers may be more angry. Ta will give me a test for free, I should thank him. So I felt a little sorry every time I was rejected.
When the last App is submitted, the App number is more than 9200, and there are still two days left. It is estimated that the number of apps submitted will not exceed 10000. I learned in a Tizen QQ group that none of their apps had passed the review before I knew that the review was still very strict, at that time, it was suggested that no more than 7000 apps will pass the review before the competition ends.
After submitting the last App, I felt a little uneasy and confident. The best case is that three apps won the award, and the worst case is that only one App won the award. The results of the competition were the back one. Although I was a little disappointed, I was very happy.
Finally, let's take a look at the "drawing app" (www.drawapp8.com), which is the biggest contributor to my Award:
I have JQMobile, KendoUI, and Sencha Touch, which are the most famous HTML5 Component Libraries. Why do I need to develop "image app "? The reason is simple: HTML5 is not suitable for Mobile App development at all!
- HTML is generated by a document. This is its gene. It is suitable for displaying content to readers, but not for developing highly interactive apps. Therefore, no matter how hard you work, the HTML5-based App is more like an App than a webpage, and is more like a webpage than a native App.
- HTML5 is weak. HTML5 has some basic controls, such as buttons, text, and selection boxes. You can also use CSS to encapsulate common controls such as ListView. However, the HTML5 component libraries mentioned above all lack popular controls in modern apps, such as Sliding Menu, a little more complex Page Viewer, etc,
- The process of developing an App with HTML5 is quite complicated. At least I did not learn it. You can say that I am stupid. However, Sencha Touch can be sold at such a high price. JQMobile is not easy to use, but also has its own principles.
- Performance problems. There are two main reasons for slow HTML5 apps: Layout and rendering, and opening a window usually loads new pages.
"Draw an app" is to solve the above HTML5 App hard injury:
- To solve the genetic impact of HTML documents, "Draw app" completely discards HTML and CSS, but implements a set of GUI on HTML5 Canvas. I have studied X Window, DirectFB, GTK +, and Android GUI systems in depth, and implemented an Open Source Embedded GUI FTK. The "image app" GUI is a set of guis developed based on my years of experience. It is simple and powerful. The app developed by "image App" basically cannot be seen as different from the native App.
- The GUI of "draw an app" is completely self-implemented. In the process of implementing it, I studied hundreds of apps and analyzed the controls they use, it implements various controls required by modern apps, and Its Expressiveness is much larger than that of traditional HTML5.
- It is very simple to develop an app by "drawing an App". It will increase your development efficiency by more than 5 times! The App interface is completely visualized, and you don't even need to write a line of code to develop an App. This is why I can develop 25 applications in a short time in the Tizen App competition.
- You can use three methods to improve performance. One is to use the Canvas rendering interface implemented by hardware acceleration, and the other is to use an efficient Layout mechanism, third, all interfaces are described in Json and placed in a file. opening a new window is completed instantly.
By the way, I would like to make some advertisement for myself: to undertake various customized IDE development based on "drawing app bar:
"Image app" is permanently free for individual developers. However, it is not recommended for individual developers because the documentation is not complete yet (of course, you are welcome to try it out ). In the future, I will write a series of articles about the design and implementation of "draw an app.