Choosing a technology
Flutter, native or Capacitor: which is right for your app?
One of the first questions on any new app is how to build it. There's no single right answer, but there is usually a right answer for your product. Here's how we think about the three approaches we use most.
Flutter: one codebase for iOS, Android and the web
Flutter lets one codebase produce the iOS app, the Android app and, if you need it, a web version. Apps compile to native code, so they're smooth and fast, and the design can be fully your own rather than a generic template.
- Best for: most apps that need to be on both app stores.
- Why: one codebase to build, test and maintain, and every feature ships to every platform at once.
- Watch out for: apps that depend heavily on brand-new device features on release day.
Native iOS and Android: built for each platform
Native apps are built separately for each platform: Swift for iOS and Kotlin for Android. You get immediate access to every platform feature, at the cost of building and maintaining two apps.
- Best for: apps built around specific hardware, like cameras, sensors or foldable screens, or the very latest platform features.
- Why: nothing sits between your app and the device.
- Watch out for: roughly double the work for anything that has to exist on both platforms.
Capacitor: your web product, in the app stores
Capacitor wraps a web app so it can be published to the App Store and Google Play, with access to device features like notifications and location. If you already have, or need, a strong web product, it lets one web codebase serve the website and the apps.
- Best for: products where the web experience comes first and the apps share it.
- Why: one web codebase across the website, admin tools and apps.
- Watch out for: it needs real app features and polish, not just a website in a wrapper, or the stores may reject it.
What about React Native?
You'll also hear about React Native. It's in the same family as Flutter: one codebase for both platforms. Either can be a good choice; what matters more is who builds it and how well.
How to decide
- Need iOS and Android, and maybe the web, on a sensible budget? Start with Flutter.
- Built around specific hardware or day-one platform features? Go native.
- Already have a web product, or the web matters most? Consider Capacitor.
- Already have an app in one of these? Usually keep it and improve it, rather than rewriting.
The back end matters as much as the app. Firebase, Supabase or a custom API each have different running costs and trade-offs, so choose them together.