Reading time: 5 minutes.
Text: As a rule, the access of any business to the Internet proceeds according to the following scenario: first, the company launches a website, then it is adapted for mobile devices, and if there is an increase in traffic, it makes sense to gain a foothold among the owners of mobile gadgets, and the company releases an application.
There is no point in comparing a mobile site and an application - the latter definitely wins due to the breadth of its capabilities and a responsive interface, which is much more comfortable to interact with via a phone or tablet. In addition, the application can work without a permanent internet connection.
Whether your business is built on sales, service delivery, or outreach, it's impossible to ignore the time people spend in front of mobile screens today.
This article aims to cover two approaches to application development - native and cross-platform.
Each of the approaches has its own specifics that critically affect the final result. And in order to facilitate understanding between the customer and the developer, I would like to talk about what both approaches are, to disassemble their advantages and disadvantages, to destroy the entrenched stereotypes about development and to answer the main question: how to make a choice in favor of this or that approach according to the principle of expediency.
1️⃣ Native approach
Native apps are apps that you experience from day one of using the device. These are the default browser, email client, address book, alarm clock, calendar and other standard programs.
How do I create a native app? If developers in the process of writing an application use a programming language adopted for a specific platform, be it Objective-C and Swift for iOS or Java for Android, such an application will be called native (from English native - native, natural). Native people can get access to all the services, services and gadgets of the phone: camera, microphone, geolocator, accelerometer, calendar, media files, notifications and so on - in general, they fully settle down and feel at home.
2️⃣ Cross-platform approach
3️⃣ Hybrid applications
As you can see, the bar for entering the more than promising area of mobile application development has dropped significantly. Someone might think that now layout designers who do not go beyond the proven HTML and CSS will take bread from real programmers. Others see the cross-platform approach as a future in which the time and cost of developing applications will be fully optimized. There are arguments on both sides explaining why this rather than another approach to development is correct.
But when we are talking about solving certain problems, it will be more effective to combine these approaches - to use the cross-platform advantages of HTML to design content, and make the menus and controls that are demanding on responsiveness native, spending a minimum of effort, time and budget. These applications are called hybrid applications. In this case, only the amount of native code determines which approach is more appropriate for application development.
What situations lead to convergence of approaches? Let's say a client wants a simple news feed with nothing but text and images. Based on this task, the developer decides to use a cross-platform approach. But if after a while the customer wants the application to store a large amount of data or to process sound and graphics, the task becomes more complicated. For these purposes, you need to write native code for each specific platform, and a once completely cross-platform application turns into a hybrid one.
It is a common misconception that behind any icon on the user's desktop, a native application is waiting. This misconception is so deeply rooted that even in professional circles, they sin with formulations of a high degree of absurdity, such as "native phonap application". But you can even display a shortcut for the site on the desktop, so the icon does not guarantee anything, and both a native application and any other can be on the other side with equal probability.
Comparison of approaches
The supply market is growing. Mobile application sales statistics show that from year to year, gadget users are increasingly changing standard services to alternative ones. So, the native task manager is replaced with Wunderlist, the mail client - with the Mailbox application, Evernote turns out to be preferable to standard notes.
It is important for the customer to know the advantages and disadvantages of each of the approaches and not to overestimate expectations when making a choice. Comparative analysis will be appropriate for a number of criteria.
One might get the impression that a cross-platform application is comfortable on all platforms, even the most unpopular ones. A caveat is required: for this belief to be true, you may have to write a piece of additional code for each platform. In the case of native applications, you can count on their excellent work, but for each platform you need to develop its own version.
It is impossible not to touch upon the guidelines in the context of mobile app development. Guidelines are valuable guidance from platform companies to mobile app developers to align their design and functionality to standards. Guidelines are the foundation on which the psychology and comfort of platform users is based. Simply put, interface elements have a familiar look and feel.
The language environment in which native mobile applications are developed has the necessary tools to create an interface familiar to the user. The situation with web technologies is different: it takes a lot of effort to make a cross-platform application look like a native one. Various cross-platform frameworks (Framework 7, Sencha Touch, Kendo UI, Ionic and others) help to simulate the native interface with varying degrees of reliability, but most often the responsiveness, animation speed, effects and design will be different. The next paragraph is devoted to this.
The first thing a user subconsciously expects from his application is responsiveness. The user's action is immediately followed by a response, page scrolling and animation proceed smoothly and without freezing. Cross-platform applications in this regard are significantly inferior to native ones, and if you do not beat around the bush, they slow down, and this is their main problem.
Also, the user is sure that each control, each icon will have a standard appearance and position on the application screen. For different platforms, these standards will be different, and if the creation of a cross-platform application was carried out according to the iOS guidelines, then Android users will be uncomfortable, and vice versa.
One of the brightest examples is the Back button: this is a typical Android feature that has no equivalent on iOS. Therefore, when you create a cross-platform mobile application, there can be only two compromises in this situation: either the design is the same for both platforms, and users of one of them are forced to adapt, or you create two different designs, taking into account the characteristics of each platform. In fact, in the second case, two applications are created, but in the same cross-platform language.
A native application written for a specific platform feels like its full-fledged inhabitant, getting maximum access to all devices and services of the device. When designing a cross-platform application, the developer takes into account only the capabilities of the framework that imposes its own limitations.
It can also create a problem that the frameworks have many versions, and the older the version, the more restrictions. In any case, not all platform features are open to a cross-platform application. The need for full integration does not always arise - its depth depends on the tasks that the application must solve.
For all popular browsers, there is a standard secure data transfer protocol - HTTPS. But if a special level of encryption is required, the solution to this problem lies with the developer. Ensuring reliable data protection is possible only with native development of mobile applications, since it is associated with mathematics, and such operations require the most efficient use of hardware resources.
Service and support
Comprehensive maintenance of native Android and iOS applications (finding and fixing bugs, updating and any minor changes), on average, takes twice as much resources due to the need for at least two different specialists (iOS and Android). A cross-platform application can be managed by one developer.
The cost of mobile development and the time spent is entangled in misconceptions and myths, and therefore I would like to touch upon these issues separately and if not dot the i's, then at least contribute to this.
Fast and cheap cross-platform app development - myth or reality
Cross-platform mobile app development is cheaper, which is explained by the smaller amount of work relative to native development. But there are also pitfalls here, which can be discerned only by understanding the principles of pricing.
To work on a native application, two such resources are required - iOS and Android. As a result, it takes two man-months to complete a native project, and 1.5 to complete a cross-platform one.
The question will be fair: "How so - one and a half? Why not one? " Alas, in practice, a cross-platform application that works well on iOS will not work well on Android - all browser engines have their own specifics, and as a result, optimization for Android may take another half man-month.
Based on the foregoing, the cost of mobile development was calculated in the case of the native and cross-platform approaches, presented in two tables. The results in Table 1 are based on the average hourly rate of freelancers from the freelansim.ru and fl.ru databases in rubles, in Table 2 - the average hourly rate of freelancers and studios from the international database upwork.com in dollars.
When we compared the approaches according to several criteria, we said that the degree of integration of the application into the platform is due to the complexity of the problem being solved by the application. Using a template or a ready-made solution can be a fairly cheap way to make an application, as long as the capabilities of the template or solution are sufficient for the specific task.
But there is a nuance
And it lies in the structural feature of the application. Most often, it involves the presence of a server part, where application users save data and through which they exchange them with other users, and it also requires financial investments. Work on it can take up to a third of the entire development time, and it increases when you need to create an administrative panel for easy data management.
- you should resort to native development if;
- your application requires free access to all resources and services of the phone;
- you want to get the most responsive application;
- the application must be able to work offline;
- your application should make the most of the device hardware.
Cross-platform mobile development is your option if:
- you are willing to put up with low responsiveness;
- the application does not involve complex animation and does not deal with calculations; - the application needs constant internet access to download content;
- you need to go to market quickly to test an idea; you have a website and you want to wrap it up in an app for a minimal price.
Individual circumstances always lead to the choice of a particular strategy; no article will give a universal answer.
Our material rather provides background information of a general nature, to help the customer and the developer to establish a dialogue in a language that is understandable for both.
The final decision should be made after consulting the developers. The more arguments you hear about a particular approach, the better.
We tried to summarize the final results of our analysis in such a table, indicating the most basic parameters for comparing the two development options.
We remind you that our Hunterprice team provides services for the development of mobile applications and web services. We offer you the development of both cross-platform applications and native ones, and we are always ready to help you make the right choice.