
In our work, we go through all the stages of the life cycle of creating a mobile application, and I would like to share our experience in this area. Under the cut - a story about the basics of mobile development: from choosing a platform to creating, placing in a store and subsequent monitoring.
Trends
')
What are the owners of mobile phones?
- More than half (53%) use downloaded applications.
- Approximately the same amount (52%) go to sites via mobile phone
- More than a third of people (38%) use social networks from their mobile phones.
- Slightly less people play games (34%)
- About three-quarters of users communicate via mobile phones (besides calls): they can be SMS, social network application, instant messenger
Statistics
What to buy
In 2012, about 12.6 million smartphones were sold in Russia: Russia is considered one of the fastest growing countries in this regard.

If we look at the statistics of sales of smartphones by operating systems, we will see the following:
- 62% of smartphones sold are Android devices;
- Symbian ranks second - 15% of the market;
- The remaining share is shared by bada, iOS and Windows Phone (if you take this chart only in Moscow, the distribution will probably shift towards an increase in the share of Apple products)

If you look at the same chart around the world, you will see that Android is also at the forefront of Âľ of the market.
For the second quarter of 2012, 104 million Android phones were sold worldwide — as the population of a fairly large country. But as mobile developers, we are not only interested in having a smartphone, but also in how we work with it. A significant proportion of owners of devices on Android uses them as ordinary phones: SMS, calls - that's all. They do not activate the device in Google Play, do not download applications.
What is usedNot all people got phones in 2012, so the actual distribution of power among mobile operating systems is demonstrated by our internal statistics. These statistics include Russia and the CIS countries: Ukraine, Belarus, Kazakhstan, Uzbekistan.

- 73.5% are Java phones
- Android devices are in second place with 11.6%
- Nokia’s Symbian legacy lags behind Android a little bit from 11%
- 3.5% of runet users have apple products
- The most attentive will see on the Microsoft chart with Windows Phone (less than 1%)

Application installation
When choosing a platform for which the application will be developed, it is important to know the statistics for already existing applications. The graphs of App Annie, a research company from September 2012, show how two competing Apple and Google stores are growing.


By the number of downloads in the first place of Google Play: more devices, more downloads, more traffic and an increase of + 66% compared with January 2012. The growth of iOS was two times less, about 30%. But the main schedule is how much revenue users bring. And here the situation is radically different. It's easier to make money on iOS, but there is money on Google Play, if you know how to take it.
Types of mobile applications
In practice, mobile applications can be divided into three types.
Mobile sites, web applications
This is the most common type of mobile application. Modern smartphones are able to display a regular site. They have access to all that we used to see in desktop applications - HTML5 support does its job. Remember that web applications are great for a startup: they allow you to get great results for little money and for a short time. Another advantage of a mobile site compared to other mobile applications is cross-platform. However, there is a minus, moreover, weighty: with them it is quite difficult to earn.
Hybrid applications
With this approach, you get access to all the advantages of the operating system API: the application is cluttered with push-notifications and other nice buns, in addition, now your product can be placed in the stores. At the same time, the main content is still a platform-independent page with layout placed on the server. This allows you to make cosmetic changes to the product without the release of a new version: just upload the changes to the server. Hybrid applications are an excellent solution for those who are starting a business or want to test their idea, show it to an investor, to friends.
Native applications
This type of application is the most resource-intensive, but at the same time it allows you to maximize the opportunities offered by each specific operating system. As a result, native applications benefit both in terms of functionality and speed in other types of mobile applications. It is to this approach that those companies that made combined applications now come. For example, Facebook started with a combined application: native controls (switches, tabs, and so on) and a web page as content. Despite the fact that this is a good solution, performance problems lead to the fact that developers deviate from the combination with the web.
Statistics
I will give the download statistics on the example of our instant messengers.
First, we have an ICQ application, which is constantly evolving: audio calls are worth mentioning among recent changes. The second messenger Mail.Ru Group - Agent. The Agent has implemented approximately the same functionality, and, although it had a slightly different development history, we release versions for almost all platforms and can be found in any location.
The main difference between these two applications is their audience. ICQ is an international product. The program is downloaded not only in Russia, it is actively used by residents of Europe, Latin America. The agent was originally made in Russia and for Russian-speaking users.
The more interesting to compare the statistics of downloads from stores.


Most of the 62% of foreign audience goes to Google Play. Approximately 1/5 goes in AppStore, 14% - in Ovi Store. And the remaining 5% share stores for Windows Phone platforms (4%) and Samsung Bada (1%). With the Agent, the situation is fundamentally different: the shares of Google Play and Ovi are about the same. Well, 10% of the AppStore clearly demonstrate the love of apple products in our country.
The process of creating a mobile application
So, let's move on to the most delicious: the process of developing a mobile application.
User story
First of all, it is necessary to determine what and for whom we are writing. Answers to these questions are made in the User Story. In the picture you can look at the real ticket in our tracker. He describes how an existing ICQ user can log into the application and what problems he may encounter. At this stage it is important to work out all possible scenarios so that there are no unpleasant surprises at the later stages of development.
It is important to understand that behind each item in your to-do list there is a huge iceberg of functionality. Try to fragment and specify tasks. Large Wishlist is best divided into several stages (releases to stor). However, this is a topic for a separate discussion, let us return to the stages of creating the application.
Design and designAfter compiling the User Story, the design and development of the design begins.


At this stage, we use prototypes that we hang on the board and show with arrows how navigation will take place.
When developing design guidelines are surely used.
A general guideline is a document that a company issues, and according to which designers and developers understand the principle of how an application interacts with a user. Relatively speaking, for iOS, buttons should be made round, and for Windows Phone - square. However, we also use internal guidelines for developers. Thus, the result of the designer’s work most often consists of layouts, guidelines, and cutting graphics.
Layouts are best served "relinked", for example using ProtoTypr, so that the logic of the transitions is clear. Guidelines contain information about indents, sizes, visual effects, animation mechanics, etc. You can skip this step if you have one designer and one developer sitting next to each other in your project. The third part of the result - graphics slicing - should contain the minimum required graphic resources (we care about the weight of the application), have versions for different screen resolutions. Most often we draw for retina and xhdpi screens. Next is the preparation for neretina and mdpi automated tools (if allowed to use them). Most often, hands have to prepare hdpi-resources.
Transfer to development. Discussion and descriptions of the necessary changes
After receiving the layouts, guideline and cutting, the work of the developer begins. We pass on to the development of all that came up, and expect an early result. This does not mean that the work on the architecture and user interface is complete. Sometimes developers have interesting ideas that make adjustments to the original plan. When development is complete, the testing phase begins.
TestingThere are many ways to test an application.
In mobile development, a tester is a person around whom there are only phones. We have a huge closet in which both the old phones and the most recent innovations lie. Inside, we try to test for test cases. If a new feature is introduced, a test plan is drawn up according to its description.
There are services that help in testing. We use HockeyApp, an application that allows us to distribute our product to beta testers. We write in social networks: “Guys, we have a new cool app. Who wants to try? ”Those who want to get a build, use the application, and the service collects statistics, makes a crash report and sends it all to us.
There are also services that allow you to test the application on different operating systems — for example, all Android firmware versions 2.1 or 2.3. You give the application, service screenshots all the way you asked, sends pictures to you in the mail, and you check if everything is in order.
MonitoringSo, you have developed, tested the application, filled it into the store. To track download statistics, you can use the Distimo service. It shows statistics on users who come to the download page to download applications, and aggregates comments.
It is important to understand that people are more likely to leave negative comments. If a person is doing well, he most often just uses the application without commenting. With the stable operation of our applications, we get 40-50 comments daily. On the error day, the number of entries can go up to 400 on one platform. Therefore, keep in mind that comments are not a complete assessment of your work, but rather another bug tracker.
Change the situation can quite common "hack" - the Rate Us window. With a proposal to leave a positive comment in the store, and in case of problems, write to the developer. The effect is quite strong, the main thing is to properly think over the algorithm for showing the dialogue to the user.
In addition to comments, Distimo shows the number of downloads, money earned, and where your applications are downloaded from.
Another interesting monitoring service is Flurry. It helps to collect customer statistics. Flurry provides a report on what the user is doing in your application: how many times he pressed the button, how many times he returned to the application, and more general parameters — audience, geography, gender, age, etc.
In some mobile products, we also use customer statistics using Google Analytics. There is practically no difference when compared with Flurry. There are disadvantages in the speed of work and processing of logs in both cases, however, if you are used to working with the Google interface, you can use this tool.
Despite the large number of third-party services, we have our own statistics. No matter how good external sources are, they need to be checked. We are able to evaluate statistics ourselves, but for this it is necessary to build an infrastructure for generating reports, weekly sending reports by email and other things that simplify life. Therefore, it is easier for us to use services such as Flurry and Distimo, and to turn to internal logs when questions arise. Our practice shows that this approach is justified: from time to time our data and data services differ somewhat. If you tend to check statistics, use different sources.
Specifics
What you need to remember?
- On each new platform, the user expects to see a rich application. He reasons as follows: “I was sitting on a bad Java-phone, while I could use ICQ. I bought a new phone, I go to the Marketplace, and there is no ICQ? What are you doing there? ”The user does not take into account that you have to do the application from scratch. New platform - this is new devices, new documentation, new resources.
- The more popular the platform, the more competitors you have. At the moment there are two sides, on the example of which it is perfectly visible: AppStore and Google Play. If you have an idea of ​​an application that is easy to monetize or just get a lot of downloads, beat in the keywords in the search and most likely you will find that such an application exists. The more popular the platform, the more competitors. In such cases, it is necessary to carefully study analogues, look at the statistics, try to understand by what parameters the existing solutions can be surpassed.
- It is important to understand how users choose applications. Initially, a person is not going to buy a specific application, he just looks at the list. For example, on request “free music”. The icon and the first two lines of the description are what a person sees and evaluates in the first place. If the icon is decent, you can buy; accordingly, a bad icon reduces the number of downloads.
- It is very important to get to the top app store. To get to the top of the store is very good, to gain a foothold there is the key to success. Why do you need it? When a user wants to download something, he enters the chart and sees which application is now in the first place by the number of downloads. It is very important to get there, because it is a kind of vicious circle. The application enters the chart, users see it, they download it, it comes back to the first place, and the iterations continue. Therefore, by all means get horse racing and rating: ask moms, grandmothers, neighbors to put the top five. It is worth saying that the market is full of solutions for guaranteed output of the program to the top. However, this brings little organic users, which does not prevent further experiments.
- Remember that the publication time can be up to several weeks. Suppose you have developed and tested the application, phoned all bloggers or the media and said: "I have a new application, come to the press conference." You send it to the AppStore and have to wait seven working days in Russia. In this case, Google Play is a paradise for real-time updates, where publishing takes several hours.
- Fragmentation of the operating system. If you are developing applications for Android, consider the fragmentation and the existence of a whole zoo of devices. This affects the development time at all stages: design, design, development, and especially testing.
- In the store it is impossible to communicate with users. For example, a user writes that he does not have messages in ICQ. He is dissatisfied and expressed very colorfully, but not very informative. We are not able to contact him and learn more about the problem. All we can do is get in monitoring and see if we have messages. Maybe he was blocked by antispam.
- Now, some stores acquire an admin panel, in which you can ask questions to the user, find out his contact details, and see which countries are downloading your application, but so far the situation has not improved much. It is worth noting that Google Play continues to add this feature to some developers, such as our company, it is available.
- Time for testing. There are several ways to test an application. You can have testers on staff - with test cases, test plans that they must pass. In addition, there is a service for testing - you pay for the bugs found. You lay out the application, it is tested by 20 thousand people. In this approach, of course, there are pros and cons.
- Personnel in the mobile industry is everything. It is difficult to find good mobile developers even for large companies, such as Mail.Ru Group, Yandex or Google. That is why we work with interns - because it is sometimes easier to take an intelligent student and train him.
Conclusion
I tried to tell you about the basic features and the pitfalls of mobile development that we encountered on our way. I hope the post was useful to you. If you have any questions on the topic, or you know something that may be useful to us, let's discuss it in the comments.