Cross-platform app

One codebase compiled or wrapped to ship on both iOS and Android, instead of building and maintaining two separate apps.

hybrid appbuild once ship to bothone codebase for iOS and Androidcross platformcrossplatform appreact native or flutter appwebview appthe thing where you don't write the app twice

See it

Live demo coming soon

What it is

One codebase, multiple stores. The families differ a lot in how they reach the screen: React Native and Expo drive real native views from JavaScript, Flutter ships its own rendering engine and paints every pixel itself, Capacitor and Cordova wrap a web app in a native shell (the classic 'hybrid'), and Kotlin Multiplatform shares business logic while each platform keeps its own native UI.

Reach for it when your app is mostly screens, forms, lists, and network calls, when the team already writes TypeScript or Dart, and when shipping to both stores at once matters more than squeezing out the last frame of scroll performance. Go native when the app lives on camera pipelines, background audio, deep OS integration, or platform-specific hardware.

Gotcha: 'write once, run anywhere' really means write once, tune twice. Navigation gestures, keyboard behavior, back-button semantics, date pickers, and permissions all diverge, and the moment you need an API the framework has not wrapped you are writing a native module anyway. Stores do not care either way, with one exception: a thin wrapper around a website with no native capability gets bounced under Apple's minimum functionality rule.

Ask AI for it

Scaffold this as a cross-platform mobile app with Expo (React Native) and TypeScript: file-based routing with expo-router, a shared component layer, and platform-specific behavior isolated behind Platform.select or .ios.tsx/.android.tsx files rather than scattered if-checks. Configure app.json with bundle identifier, package name, icon, and splash screen for both platforms, wire safe-area insets, and set up EAS Build so a single command produces an iOS and an Android release artifact.

You might have meant

native module bridgeover the air updatesafe area notch insetssplash screen launch screenminimum deployment target