📜 ⬆️ ⬇️

The history of creating a cross-platform mobile application

The tough competition in the market of mobile platforms no longer allows the production of applications targeted for a single operating system, which confronts developers with a difficult choice. They must choose between developing native applications for each OS (in their native programming languages ​​for each of them), developing as a website for mobile devices on HTML5, or creating applications using cross-platform development frameworks.

In this article, we want to tell the story of creating a cross-platform mobile solution for airports, as well as provide interesting statistical data.

Our first client was the Kiev Boryspil International Airport. The feature of the developed product was that it was adapted to the corporate style of the customer and successfully published in stores. Interestingly, Kiev Boryspil Airport became the first in Ukraine owner of a modern mobile application. However, it is worth starting from the beginning.

The passenger airline industry is constantly evolving, thanks to which newer technologies are being introduced to increase passenger comfort. All over the world, the presence of a mobile application at airports has already become something for granted, but, oddly enough, this practice is not common in Ukraine. That is why we had an idea to create a box solution that can easily interact with airport information systems and adapt to customer requirements.
')
The main functionality of the system should include: online scoreboard of flights, user push notifications when changes to flights of interest to him, as well as popularization of other airport services (conference rooms, VIP service, taxi, hotels, shops, etc.).

Development of the client part of the solution


Given the extensive experience of our employees in creating applications in C #, we have chosen the approach of developing the client side of the application using the Xamarin framework. All work was done in Visual Studio. And if for Windows phone and Windows 8, development in Visual Studio is the default tool, then for Android and iOS this possibility became available thanks to Xamarin (this requires a business license).

One of the main tasks assigned to the system was to create the user experience of working online. The user must fully trust the displayed data, not thinking about the fact that they are periodically updated. In addition, when designing the system, it was decided to create a single client-side core for all OSs, in which all the business logic will be implemented.

In contrast to a single implementation of client business logic for each platform, it was necessary to create its own graphical interface (code) that would be responsible for the appearance of the application. We created such an interface separately for each platform in order to use graphical effects native to each OS.

Xamarin allows you to use standard user interface design tools and its elements for iOS and Android.

It is worth noting that in any case a Mac is required to develop a solution for iOS. In our case, the Mac was required for two reasons: firstly, to debug applications, you need an iPhone / iPad emulator, which is available only on Mac; secondly, this operating system was necessary for project auto-assembly.

Development of the server part of the solution


Given the need to universalize the application, when designing, we came to the conclusion that the best solution would be to host the server in the cloud. As a cloud platform, a solution from Microsoft was chosen - Windows Azure.

Working with him was very convenient and quite easy. From the positive aspects of working with Azure, we want to highlight the following:
1) Convenient system deployment in the cloud
Deploying applications in Windows Azure can be done in two ways - using the Windows Azure portal or the Service Management API (SMAPI).

2) Convenient mechanism for test deployment
There are two deployment cells — test (staging) and combat (production). Test deployment allows you to test your application in a Windows Azure environment before deploying to a combat environment. In turn, switching between staging and production is done in one click.

Since in Windows Azure the size of the payment depends on the CPU time spent, it is necessary to remove the staging deployment to optimize costs. If you just click the “Stop” button in the portal, the service will become unavailable, but the processor time will be spent.

It is worth noting that in our case, the savings amounted to more than $ 100 per month.

As a fly in the ointment of Microsoft’s honey, we’ll say that Windows Azure’s inconvenient work with logs. Of course, you can use paid solutions for logs, since working with their Table Storage is very inconvenient.

Features of the server part of the system


For the transfer of data from the airport system to our application, we chose perhaps not the most convenient and secure method, but, in turn, the fastest and less costly for the customer is the transfer of xml files via an ftp server. For example, the airport with a given frequency generates an xml-file with information about all flights related to passenger traffic and uploads it to an ftp-server.

Pros:

Minuses:

It is also worth paying attention to sending push-notifications to users. Among the features it is necessary to name the following:

Features of the publication


Airport Kiev Boryspil wanted to get an application available on all popular smartphones (iOS, Android, Windows phone), as well as on tablets running Windows 8.

Windows phone

We had no previous experience of publishing applications in Microsoft stores, however, the publication was successful. After just a few days, the application was already available in the store.

iOS

Publication in the AppStore also passed without difficulty, but the passage of all stages took a week.

Android

Publishing in the GooglePlay store was the easiest and quickest. After filling in all the descriptive attributes and attaching the package (apk-file), the application was assigned the status "Published". In the "New" section and in the search for a store, it became available within a few hours. Most likely, the delay is associated with updating the data of the store itself.

Windows 8

Inspired by the simplicity of publishing in the Windows phone store, we expected the same thing about working with Windows 8. However, there were some difficulties with the publication.

The first system failure we received with the wording:

As it turned out, a mandatory condition for any application with Internet access is the existence of a privacy policy not only in the store, but also in the application settings.


This message was unexpected, since the screenshots were made in all the required languages. However, we assume that during the layout one of the screenshots turned out to be 1 pixel less than necessary and as a result was changed in the graphic editor. When re-publishing the error has been fixed.

A second waiver was received with the wording:

This result surprised us greatly, since the application was completely without advertising. Without any changes, we sent it for re-certification. As a result, its application has passed.

Pros and cons of the selected approaches


The approach chosen, like everything else in this world, has both advantages and disadvantages. Among the advantages I would especially like to highlight the following:
  1. the decision to implement a cross-platform core on Xamarin allowed to significantly reduce the time to develop and test the business logic of the application
  2. the decision to deploy the server part in the Windows Azure cloud made it possible to:


The disadvantages of the chosen approach are:
  1. the application turned out quite heavy (about 19 MB), since Xamarin increased its size (iOS and Android) - this caused negative feedback from Android users
  2. Xamarin has some bugs that need to be reported (they fix them, but not immediately).

For comparison, the size of the applications is the following:

Some statistics on the first implementation


The application "Kiev Boryspil" is a niche application. Its target audience is airport passengers, as well as people meeting and seeing them off.

It is necessary to take into account that the advertising promotion of the application was not performed. The airport's marketing department only published two review articles in the media. At the time of this writing, there was not an advertisement on the airport, or even a scrolling text on the screens.

User loyalty

On average, daily among all users:
image

Average number of installations per day



Of course, we are a little surprised by such accuracy for all OSs, since the published data of the analytical company Strategy Analytics suggests that there are several times fewer devices running Windows.

Number of installations during marketing exposure

image
The graph clearly shows that publication in the media affects the download of the application for about a month. At its peak, there were about 1,000 installations per day for iOS only.

Ratings and reviews

Statistics on these indicators for us was a complete surprise:

Man-hours for system implementation and customization

We know that all developers are interested in how many man-hours were spent on the project. However, this data is almost never shared.
TaskLabor (hours)Completed work
Server part420Design and Development
Client core300Design and Development
Graphical interface
Android200UI development
iOS140UI development
Windows 8160UI development
Windows phone180UI development
Design creation100Creating a layout
Administration150Configuring Infrastructure, Autobuild, and Deploying the Solution to the Cloud
Analytics350Designing usability of the system and UI, writing specifications, communication with the customer and IT specialists of the customer
Testing300Testing the application at all stages of development

Some may say that the costs were too high and could be reduced, but the apparent ease of the application is in fact deceptive. It was done a very difficult, but at the same time to the smallest detail thoughtful work. In particular, during this time many functions have been implemented, such as, for example: offline work, data caching, content management system (all data that is displayed in the application is loaded from the server and cached on the client) and more. In addition, a lot of functionality was implemented that is critical for the system, although at first glance it may not be noticeable.

The result of the large-scale work was the creation of a unique high-quality solution, which is also easy to adapt to all the requirements and wishes of the customer. But the most important thing is the possibility of rapid expansion of the system (both its functionality and user load).

PS We will be grateful for your answers to such questions:
  1. What motivates Windows 8 users to leave so many good reviews and ratings?
  2. Why, despite the difference in the number of devices for different operating systems, the daily number of installations is on average almost the same for all platforms?

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


All Articles