Native, hybrid or cross-platform
The four families of mobile apps (native, WebView hybrid, cross-platform, progressive web), what draws the screen in each, and the criteria that decide the choice: performance, hardware access, shared code, team and cost.
- 25 cards
- 5 topics
- Free
The outline, topic by topic
Each topic is weighted the way the exam weighs it.
- Concepts
- Questions
- Sort and link
- Scenarios
- Understand
A few cards from the deck
Native app: what is it?
Show the answer
An app written for one operating system with that system's own tools and language (Kotlin for Android, Swift for iOS), using its interface components directly.
It gives the best hardware access and the system's new features as soon as they ship, at the price of two code bases to write and maintain.
How does React Native display a button on the phone?
- JavaScript code asks the system to create its own button component
- It draws a button itself with its own rendering engine, without asking the system for anything
- It generates an HTML page shown in a WebView
- It compiles JavaScript into Kotlin and then Swift
Show the answer
JavaScript code asks the system to create its own button component
JavaScript code describes the interface, but the elements on screen are real system components. Drawing everything itself is Flutter; a page in a WebView is a hybrid app.
For a native app, Google recommends … on Android and Apple promotes … on iOS.
Show the answer
For a native app, Google recommends Kotlin on Android and Apple promotes Swift on iOS.
Java and Objective-C are still possible, but each system has its reference language and tools (Android Studio, Xcode): two native apps means two separate projects.
Hybrid app: what is it?
Show the answer
A web app (HTML, CSS, JavaScript) packaged in a WebView and installed like any other app; plugins give access to the hardware.
Cordova and Capacitor do the packaging, Ionic provides the interface components. The screen is a web page: a web team is enough, but smoothness depends on the WebView.
Two web developers must release a catalogue on Android and iOS at the same time, with one team and one code base. Which choice is the most consistent?
- A cross-platform or hybrid app, with shared code
- Two native apps written separately, Kotlin then Swift, with two teams
- A native Android app, iOS later
- A site opened in the browser, with no installed app
Show the answer
A cross-platform or hybrid app, with shared code
The deciding constraint is one code base for two systems with web skills: two native projects would double the work, and skipping one platform misses the brief. A site with no install does not meet "app".