How native apps work


Native applications are written separately for each operating system: iOS applications are developed in Swift, Android applications are developed in Kotlin. Each platform needs its own development team in order for the application to work correctly, reproduce the logic and navigation of the operating system.

Mobile app designers use Apple and Google guidelines. This is a set of recommended parameters that help to make interfaces in a unified way. Design guides save designers time — the guidelines contain recommendations for colors, layout, and animation. Applications that comply with the guidelines go through moderation faster in the stores. The standard interface and navigation is intuitive for a user who is used to a particular platform.

Most popular applications are natively developed: streaming services, banking applications, marketplaces, delivery services.

Plus number 1. Applications directly use smartphone software

Native applications directly use the smartphone software: camera, geolocation, microphone, contact list. For example, the Shazam app needs access to the microphone in order to recognize music. And the Sberbank Online application has access to the address book so that the user can transfer money to people from the contact list.

In cross-platform applications, this option must be supported by the framework, or the programmer needs to separately register a native piece of code and embed it into the application so that everything works correctly.

Plus number 2. Familiar and user-friendly interface

The native app is designed for familiar user patterns. For example, Android has a standard navigation menu – Android Navigation Bar. iOS doesn’t have it, so the bottom of the app lines up with the edge of the smartphone.

On Android, the main tab bar is located at the top of the screen; on iOS, it is at the bottom. Android uses the hamburger menu, iOS encourages designers to use gesture controls.

On iOS, key buttons should be at the top of the page, with actions in the right corner and undo in the left corner. On Android, the main page action button appears in the bottom right corner or floats. If there are other important actions, then they should be placed at the top of the screen.

The font and icons are different. For example, Android has the system font Roboto or Noto. iOS has the grotesque San Francisco or New York. Android icons should be square with right angles and no backgrounds. Apple icons have rounded corners and an opaque background.

Plus number 3. Can integrate complex technologies

Augmented or virtual reality on a cross-platform can only be implemented at a basic level. And on native, all functionality is available.

Plus number 4. Suitable for large and long term projects

Most large and long-term projects are created using native development. Banking applications and superapps are made natively, for example, Sberbank Online.

Minus number 1. Expensive

If the application is to run on two operating systems, then the company will need to hire separate development teams: for iOS and for Android. Accordingly, the cost of the project will be more expensive, because it will be necessary to develop two code bases.

Minus number 2. Longer to develop

Programmers need to create two different applications, and designers need to draw two different interfaces for each operating system. Therefore, prototyping, development and design will take more time.

Which development to choose

You can quickly develop an MVP and test a hypothesis both natively and cross-platform. Complex technologies need to be integrated into the application: for example, augmented reality or AI, then only native will do. You need direct access to the smartphone software – also native. If the goal is to optimize the budget, then both cross-platform and native are possible.

Which type of development to choose depends on the business task. We at Heads and Hands create services that solve business problems and help companies compete for user attention. Tell us about your task on the site, we will analyze your project and suggest the best solution.

Thank you for your attention!

I know that this is not the first text on this topic. But still in the top positions there are articles with outdated and incorrect information (for example, that cross-platform applications cannot be published in stores). Therefore, I decided to update the information and tell about the differences in approaches in a simple way, for those who one day will face the development of mobile applications.

Let’s imagine Sergey, who has a car park. Sergey wants to receive more orders and therefore decides to develop his own application for calling a taxi. Of course, he wants to reach more customers: that’s why he needs software for both IOS and Android. Sergey understands that these will be two different applications, but he heard something that you can make one that will work on all smartphones.

What is cross-platform and native development

Native development is the creation of a product that is written in original programming languages ​​created specifically for the chosen platform. For example, native languages ​​for Android are Java and Kotlin, for iOS – Swift and Objective-C. The native application will only work on “their” platform. Cross-platform applications can run on multiple operating systems at once. For this, specialized cross-platform frameworks are used, such as Flutter or React-Native.

Now Sergey knows what is what. At first glance, cross-platform development seems to be more profitable, but he understands that there are significant differences in approaches.

Why multiplatform development is not 2 times cheaper than native

It would be logical to assume that cross-platform development should cost half as much as native, because one application is being developed instead of two. But it’s not, and here’s why. Although the product will have the same business logic and navigation in cross-platform development, the screens for each system will be different. Thus, for IOS and Android, native application screens are drawn and implemented. If we talk about the price, then the cost of cross-platform development is on average 70% lower than native.

Differences between multiplatform and native development

A native application will always look better than one developed using multi-platform technology. Design, loading speed, access to all device functions (camera, geolocation, calendar, and so on), interface – all this will give native development a hundred points ahead. Cross-platform applications are inferior to native ones in this regard – they work more slowly, and the interface is significantly different.