Flutter is Google's toolkit for building an app's interface in Dart, drawn by Flutter's own engine on every platform. Ruby Native ships the interface your Rails app already renders. Like React Native, Flutter is a rebuild. The difference is the language and the way it draws.
Flutter apps are written in Dart. Flutter draws every widget itself rather than using the platform's native controls, which is why a Flutter app looks the same on iOS and Android and why one codebase can also target desktop and the web. Its Material and Cupertino widget sets imitate each platform's look. Building for iOS still needs Xcode, CocoaPods for plugins with native code, and an Apple Developer account for a device or the App Store. Flutter's own setup guide walks through all three.
As with React Native, your Rails app becomes an API and every screen is rebuilt, this time in a language your Rails team does not write yet.
| Flutter | Ruby Native | |
|---|---|---|
| Your screens | Rebuilt as Dart widgets | Your Rails views, as they are |
| Language | Dart | Ruby, and the HTML you write today |
| Interface | Drawn by Flutter's engine, the same on every platform | The platform's own navigation and controls around your web pages |
| Codebases to maintain | A Flutter app and a Rails API | One Rails app |
| Tooling your team installs | The Flutter SDK, Xcode, Android Studio | The gem |
| Time to first release | Months | Days to weeks |
| Store listing and submission | Yours, in App Store Connect and Play Console | A file in your repo, one command, or your agent |
| Cost | Months of a team that learns Dart | $199 a month per app |
From Ruby Native to Flutter later, your Rails app is unchanged, and nothing you did for Ruby Native blocks a rebuild. Shipping Ruby Native first tells you what customers do in an app before you commit a team to one.
From Flutter to Ruby Native is possible whenever Rails still renders the product for the web.
The business comparison, against hiring a mobile team, an agency, or a React Native rebuild, is on Why Ruby Native. Try the demo app on your phone from /try, or email Joe at [email protected] with your app's URL.