Mobile app development: where to start
In our work, we go through all 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.
What do mobile phone owners use?
- More than half (53%) use downloaded applications
- About the same number (52%) access websites via a mobile phone.
- More than a third of people (38%) use social networks from their mobile phone.
- Slightly fewer people play games (34%)
- About three quarters of users communicate via mobile phones (in addition to calls): it can be SMS, a social network application, a messenger
What they 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 smartphone sales statistics by operating system, we will see the following:
- 62% of smartphones sold are Android devices;
- In second place is Symbian - 15% of the market;
- The remaining share is shared by bada, iOS and Windows Phone (if we 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 here Android is at the forefront of ¾ the market.
For the second quarter of 2012, 104 million Android phones were sold worldwide as a population of a fairly large country. But we, as mobile developers, are interested not only in the presence of a smartphone, but also in how we work with it. A significant proportion of owners of Android devices use them as ordinary phones: SMS, calls - and that’s all. They do not activate the device on Google Play, do not download applications.
What to use
Not all people have acquired phones in 2012, so our internal statistics show the real distribution of forces among mobile operating systems. 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 legacy, Symbian, is only slightly behind Android with 11%
- 3.5% of Runet users have apple products
- The most attentive ones will be seen on the Microsoft diagram with Windows Phone (less than 1%)
When choosing the platform for which the application will be developed, it is important to know the statistics for existing applications. September 2012 App Annie research plots show how two rival Apple and Google stores are growing.
By the number of downloads in the first place Google Play: more devices, more downloads, more traffic and growth at the same time + 66% compared with January 2012. IOS growth was half as much, about 30%. But the main schedule is what kind of revenue users bring. And here the situation is fundamentally different. It’s easier to make money on iOS, but there is money on Google Play, if you can take it.
Types of Mobile Applications
In practice, you can divide applications for mobile devices into three types.
Mobile sites, web applications
This is the most common type of application for mobile devices. Modern smartphones are able to display a regular site. They have access to everything that we are used to seeing in desktop applications - HTML5 support does the trick. Remember that web applications are great for startups: they allow you to get great results for little money and for a short time. Another plus of the mobile site compared to other mobile applications is cross-platform. However, there is a minus, moreover, a significant one: it is quite difficult to make money with them.
With this approach, you get access to all the pluses of the operating system API: the application is surrounded by push notifications and other pleasant goodies, in addition, now your product can be placed in stores. At the same time, the main content is still a platform-independent page with layout, located on the server. This allows you to make cosmetic changes to the product without releasing a new version: just upload the changes to the server. Hybrid applications are a great solution for those who are starting a business or want to test their idea, show it to investors, friends.
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 win both in functionality and in speed of 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 (radio buttons, tabs, etc.) and a web page as content. Despite the fact that this is a good solution, performance problems lead to the fact that developers are moving away from the combination with the web.
I will give download statistics on the example of our messengers.
Firstly, we have an ICQ application that is constantly evolving: audio calls are worth mentioning among the latest changes. The second messenger of Mail.Ru Group is Agent. About the same functionality is implemented in the Agent, and although it had a slightly different development history, we release versions for almost all platforms and can be found in any store.
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.
It is all the more interesting to compare download statistics from stores.
Most of the 62% of foreign audiences go to Google Play. About 1/5 goes to the AppStore, 14% - to the Ovi Store. And the remaining 5% is shared by stores for the Windows Phone (4%) and Samsung Bada (1%) platforms. The situation with the Agent is fundamentally different: the shares of Google Play and Ovi are approximately the same. Well, 10% of the AppStore demonstrate their love for 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.
First of all, it is necessary to determine what and for whom we are writing. Answers to these questions are made out in User Story. In the picture you can look at a real ticket in our tracker. It describes how an existing ICQ user can enter 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 later stages of development.
It is important to understand that behind each item in your to-do sheet is a huge iceberg of functionality. Try to fragment and specify tasks. Large Wishlist is best divided into several stages (releases in the party). However, this is the topic of a separate discussion, we will return to the stages of creating the application.
Engineering and design
After compiling the User Story, design and development of the design begins.
At this stage, we use prototypes that we hang on the board and use the arrows to show how the navigation will happen.
When developing a design, guidelines must be used.
A guideline in the general sense is a document issued by a company, and by which designers and developers understand the principle of building the interaction of an application 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 work of the designer most often consists of layouts, guidelines and cutting graphics.
Layouts are best served "linked", for example using ProtoTypr, so that the transition logic is clear. Guidelines contain information about indents, sizes, visual effects, animation mechanics, etc. This step can be skipped if your project has one designer and one developer sitting next to each other. The third part of the result - cutting graphics - should contain a minimum of necessary 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 by automated means (if their use is permissible). Most often, you have to prepare hdpi resources with your hands.
Transfer to development. Discussion and necessary revisions to the description
After receiving the layouts, guideline and slicing, the work of the developer begins. We transfer to development everything that we thought up, and we expect an early result. This does not mean that work on the architecture and user interface has been completed. Sometimes developers have interesting ideas that make adjustments to the original plan. When development is complete, the testing phase begins.
There 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 telephones and the latest news lie. Inside, we try to test on test cases. If a new feature is being 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 on social networks: “Guys, we have a new cool application. Who wants to try it? ”Those who wish get a build, use the application, and the service collects statistics, compiles 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 version 2.1 or 2.3. You give away the application, the service will take a screenshot of the entire path that you have set, sends pictures to you in the mail, and you check if everything is in order.
So, you developed, tested the application, uploaded it to the gate. You can use the Distimo service to track download statistics. It shows statistics on users who come to the store to download applications, and aggregates comments.
It’s important to understand that people are more likely to leave negative comments. If a person is doing well, he often just uses the application without commenting. With the stable operation of our applications, we get 40-50 comments daily. On the day of the error, the number of records can reach 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.
A fairly common “hack” can change the situation - the Rate Us window. With a proposal to leave a positive comment in the story, and in case of problems write to the developer. The effect is strong enough, the main thing is to correctly think out the algorithm for displaying the dialog to the user.
In addition to comments, Distimo shows the number of downloads, the 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 clicked on 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 client statistics using Google Analytics. There is practically no difference when comparing 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 contact internal logs if you have questions. Our practice shows that this approach is justified: from time to time, our data and service data vary slightly. If you tend to check statistics, use different sources.
What do you need to remember?
- On each new platform, the user expects to see a rich application. He reasoned as follows: “I was sitting on a bad Java phone, and I could use ICQ. I bought a new phone, 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. The new platform is new devices, new documentation, new resources.
- The more popular the platform, the more competitors you have. At the moment, there are two stories, on the example of which it is clearly visible: AppStore and Google Play. If you have an idea for an application that can easily be monetized or just get a lot of downloads, drive 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, you need to carefully study the analogues, look at the statistics, try to understand by what parameters existing solutions can be surpassed.
- It is important to understand how users select applications. Initially, a person is not going to buy a specific application, he just looks at the list. For example, for “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 into 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 is this needed? When a user wants to download something, he goes to the chart and sees which application is now in first place in terms of 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 again falls into first place, and further iterations continue. Therefore, by all means get the jumps and rating: ask moms, grandmothers, neighbors to put the application five. It is worth saying that the market is full of solutions for guaranteed output of the program to the top. However, this brings few organic users, which does not prevent further experiments.
- Remember that publishing time can be up to several weeks. Suppose you 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 are forced to wait seven business days in Russia. In this case, Google Play is a haven for operational updates, where publishing takes several hours.
- Fragmentation of the operating system. If you are developing applications for Android, consider the fragmentation and existence of an entire device zoo. 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 receive messages in ICQ. He is unhappy and expresses himself very colorfully, but not very informatively. We have no way to contact him and find out more about the problem. All we can do is get into monitoring and see if we have messages. Maybe it was blocked by antispam.
- Now some parties are acquiring an admin panel where they can ask the user questions, find out his contact details, 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, for example, it is available to our company.
- Time for testing. There are several ways to test the 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 bugs found. You post the application, it is tested by 20 thousand people. There are pros and cons to this approach, of course.
- Personnel in the mobile industry are everything. Good mobile developers are hard to find 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.
I tried to tell you about the basic features and pitfalls of mobile development that we encountered on our way. I hope you find the post helpful. If you still have questions about the topic, or you know something that may be useful to us, let's discuss this in the comments.