Native, Cross-Platform, Hybrid

Native, Cross-Platform and Hybrid Apps

A native app uses the platform's own language and SDK: Kotlin and Jetpack Compose 234 on Android (Android with Kotlin), Swift and SwiftUI on iOS. You get new APIs the day they ship and the platform's exact look, at the cost of two code bases. A cross-platform app shares one code base in another language and still draws native-quality screens: React Native 36,878 (React Native) runs JavaScript in its Hermes 11,328 engine and renders real platform views, while Flutter 16,720 compiles Dart ahead of time and paints its own widgets. A hybrid app is a web app in a native shell: HTML, CSS and JavaScript run in a WebView, the browser engine the OS lends to apps, and plugins carry calls across a bridge to native code. Cordova 129 (this chapter) and Capacitor 243,123 (Capacitor) work this way, and Framework7 572,986 (Framework7) supplies the iOS and Material Design 15,533 look a plain web page lacks.

Three ways to build a mobile app, and the layers between your code and the device
Three ways to build a mobile app, and the layers between your code and the device

A classic interview question asks whether a hybrid app is "really" native. As a package it is: an ordinary signed APK or IPA with no browser chrome. Only the drawing differs. Choose native for heavy animation or deep platform features, cross-platform for native screens from one team, and hybrid when you already have a web app or web team and the interface is mostly forms, lists and content.