And what development to choose
We analyze the pros and cons of two development models using the example of popular services.
Cross-platform applications are cheaper, work on two platforms at once, and design and development take less time.
Native apps are more expensive, but provide a better user experience and are suitable for large and long-term projects.
In the article, we will analyze two development models and tell you which one to choose so that the application solves business problems and pleases users.
How cross-platform applications work
Cross-platform app developers write one code for iOS and Android at once. To do this, they use software platforms – cross-platform frameworks. The two most popular frameworks are React Native and Flutter.
In addition to a common code base, cross-platform applications have a common interface. This means that designers do not have to adhere to two different guidelines – Google Material Design System and Apple Human Interface Guidelines – and all interface elements and components will look identical on Android and iOS.
For example, cross-platform applications have been developed by eBay, Google Ads and AliExpress. And in Russia – a chain of stores “Dixie” and a pharmacy “Rigla”. The developers wrote a single code, tested, and then published applications on Google Play and the App Store.
Plus number 1. Cross-platform app development is cheaper and faster
“A common code base and a single interface reduce development time and reduce the cost of a project. A cross-platform application will cost the customer 20-30% cheaper than a native one”
Heads and Hands account manager Anastasia Ovsyannikova.
For example, the client has his own delivery service. The company wants to optimize and digitize the work of couriers: so that they mark shifts, accept and collect orders in the application. Employees use smartphones on both iOS and Android, and developing an application for two platforms exclusively for internal use is expensive.
A cross-platform approach will solve these problems. A company does not need to hire two separate design and development teams for each platform to draw interfaces and design applications. Application support is minimal – it will not need to be finalized and complex functionality added.
Plus number 2. Cross-platform applications suitable for startups and corporate projects
“If you need to quickly release an MVP and test a hypothesis, then you should choose a cross-platform. Cross-platform is also suitable when design and speed are not important. For example, for corporate applications. But even in this case, one must understand that sooner or later it will be cheaper to make a native.
STO Heads and Hands Anton Maksimov.
For example, Ozon has developed an application for pickup points using Flutter. With its help, PVZ employees issue parcels, search for orders by number or barcode, move goods on the shelves, and accept returns.
Ozon chose cross-platform because Flutter is a productive framework, open source, it can be used on two platforms at once and integrate native elements if necessary. The developers released an MVP with minimal functionality and tested the hypotheses. But the project quickly grew from a start-up with a document flow. Then Ozon, in order to continue developing it, switched to native development.
Minus number 1. Cross-platform applications are difficult to maintain
Cross-platform frameworks support most of the standard iOS and Android functionality. But Apple and Google are constantly updating their operating systems. A native developer uses updates immediately after release. A cross-platform developer waits for the framework to add support for new features, or writes part of the code natively and spends more time.
For example, the Airbnb booking service switched to cross-platform development in 2016. But the features familiar to native development were difficult to implement in React Native. And it could take several days to resolve the issue. In addition, it was difficult for the company to integrate the native and cross-platform part of the applications and had to create most of the infrastructure on its own. As a result, the team returned to native code two years later.
Minus number 2. Cross-platform applications offer users an unusual interface
Developers and designers create interfaces based on Apple and Google guidelines. If the interface does not meet the guidelines, then it may not pass moderation in the stores. Therefore, each control or icon has a standard look and location on the screen.
For example, Android has a built-in navigation bar, while iOS does not have a standard navigation menu. Android has a back button, while iOS recommends using gesture controls. Android has sharp-edged buttons, while iPhones have rounded ones. The user is used to the fact that all interface elements look and work the same.
The cross-platform framework emulates the interface and elements of iOS and Android. But they don’t always work correctly.
“From the point of view of standard elements or standard behavior, everything works the same as in native. But Flutter is a software product and there are bugs in it. Therefore, the behavior of elements in some nuances may differ from native ones.
Heads and Hands web developer Alexander Fominov.
For example, the Dixie app on iOS does not support navigational gestures. The user cannot use a swipe to scroll through cards and dismiss notifications.
Minus number 3. Application is running slower
The animation speed and responsiveness of the application on the cross platform is lower than in the native application. For example, screens are slower and lists scroll with a delay.