Skip to content

(Cross Multi) Platform

LeoTM edited this page Sep 1, 2025 · 73 revisions

Native (Android/iOS) Google/Apple

2013 Xamarin Microsoft

  • C# -> native(+Windows)
  • succeeded by .NET MAUI, 2024 ☠️

2014 NativeScript Telerik

  • js/ts -> native
  • 2015 official
  • 20:15 angular ☠️ 19 vue 20 svelte 23 react/solid

2015 React Native (RN) Meta

  • js/ts -> bridge new arch -> native
    • js/ts TurboModule(APIs)/FabricComponent(UI) type spec (codegen) -> JSI(C++) -> native
    • native UI event (main/UI thread) or native event (native thread) -> JSI(C++) -> event loop (js thread), React/Fabric update -> JSI(C++) -> native UI update (main/UI thread)
  • js OTA: codepush expo eas)
  • js VM: debug: V8, prod: JSC/(Static)Hermes

2017 Flutter Google

  • Dart <-> native bridge
  • no VM (prod)
  • UI: canvas (component updates have no effect)
    • Material Design (Android/iOS)
    • Cuptertino (native iOS)

2020 Kotlin Multiplatform Mobile (KMM) JetBrains

  • write native ez
  • no VM
  • shared logic
  • keep native UI
    • no eco, works w native platform eco's
    • SwiftUI / Jetpack Compose
  • no intermediate layer
    • no interop bottlenecks

2020 .NET Multi-platform App UI (.NET MAUI) Microsoft

  • C#, XAML -> native(+Windows/macOS)
  • 2022 official

More

Clone this wiki locally