App development – Native or cross platform?

Anyone who wants to reach their users on their smartphones is usually required to offer an app for download in both the Google Play Store and Apple's App Store. And there are essentially two ways to get there:

Native app development

The same app is developed in parallel for both platforms: once for Android using the Kotlin programming language and once for iOS using the Swift programming language. Native app development usually involves a specialised software developer for each platform, who knows exactly what works best on their specific platform.

If you place the Android and iOS apps side by side, you'll notice slight differences in the interaction patterns and the interface. This is intentional, because each app fully accounts for the platform-specific conventions. As a result, both user groups feel completely at home in their app.

When it comes to user experience, native app development is unbeatable. Transitions run very smoothly, haptic and visual feedback is very direct, showing and hiding the keyboard works seamlessly without overlapping content, and the app has unrestricted access to all hardware features. This is especially noticeable with compute-intensive applications such as augmented reality apps.

The major drawback of native app development is the comparatively high development cost, since essentially all of the work has to be done twice.

Cross-platform app development

Anyone who opts for app development with a cross-platform solution faces the choice of which framework to use. The three big players are:

  • Flutter by Google, open source, programming language: Dart
  • React Native by Meta, open source, programming language: JavaScript
  • Kotlin Multiplatform by JetBrains, open source, programming language: Kotlin

All three frameworks have their own advantages and disadvantages. What they have in common is that the code is shared (partially to fully) and does not have to be developed separately for Android and iOS. This saves costs and makes development more efficient.

Depending on the application, one framework or another makes more or less sense. You make the fewest compromises in user experience and performance by choosing Kotlin Multiplatform. That's because KMP shares the codebase between the Android and iOS app to implement networking, data storage and validation, analytics, calculations and other application logic. The user interface, on the other hand, is developed natively per platform in KMP projects.

In return, app projects built with Flutter or React Native are comparatively cheaper and faster to develop, because they largely share the interface code as well.

What makes the most sense for your project?

Let us advise you on choosing the right technology. We have been developing apps for 14 years and have worked with all of these technologies, so we know what suits which project best. Get in touch for a no-obligation conversation about the right technology for your app project.

Learn more about the technologies mentioned in this article: