📜 ⬆️ ⬇️

Mobile application development: where to start



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?



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:




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 used

Not 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.







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 design

After 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.

Testing

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 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.

Monitoring

So, 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?



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.

Source: https://habr.com/ru/post/179113/


All Articles