One app on iOS and Android
The product behaves the same on both platforms, and a shared codebase reduces duplication without compromising the interface.
Technology
Flutter apps for iOS, Android, web and desktop: new builds, takeovers and evolution, as a full project or embedded in your team. Six of our case studies are built on Flutter, from live auctions to Bluetooth integration.
1// profile_page.dart — illustration2class ProfilePage extends HookConsumerWidget {3@override4Widget build(context, ref) {5final profile = ref.watch(profileProvider);6return profile.when(7data: (p) => ProfileCard(profile: p),8loading: () => const Loading(),9error: (e, _) => ErrorState(error: e),10);11}12}
Situations
The product behaves the same on both platforms, and a shared codebase reduces duplication without compromising the interface.
Mobile, web and desktop must move forward together. On Reavox, one Flutter codebase covered Android, iOS, Windows, macOS and the Web.
The code exists, but state management, navigation or dependencies slow down every change.
Bluetooth, sensors, protected reading: Flutter keeps the product layer shared, while Swift and Kotlin modules handle what must stay native.
Scope of work
From the first screen to store release, or a specific part within an existing team.
State management, navigation, dependency injection and feature-based structure, built to last.
Components, themes and states shared across platforms, designed with the design team.
Swift and Kotlin bridges for Bluetooth Low Energy, sensors or system APIs no package covers.
Live video streaming, real-time messaging, protected EPUB and PDF reader.
Progressive modernisation of an existing codebase, state management, navigation, generated code, without freezing new features.
Tests, continuous integration, signing, App Store and Google Play releases, incident monitoring.
Method
For a new product: journeys, scope and target architecture. For an existing app: the state of the code, dependencies and builds.
State management, navigation, required native modules and test strategy, documented before speeding up.
Features delivered in usable increments, with code review, tests and continuous integration at every step.
Signing, store releases, crash monitoring and evolution after go-live.
Responsibilities
A typical division of responsibilities, agreed for each engagement.
| Topic | Your team | Black Tide |
|---|---|---|
| Technical choices | You approve Flutter and the proposed architecture | We compare with native and document the consequences |
| Store accounts | You keep the App Store and Google Play accounts in your name | We prepare builds and releases |
| Code review | Your process applies if you have a team | We review and submit for review |
| Acceptance | You test each increment on real devices | We fix within the agreed scope |
| Production release | You decide the date | We prepare, release and monitor |
Selected work
Took over a Flutter app in production: 237 StatefulWidgets moved to hooks and Riverpod, GetIt removed and GoRouter adopted, around 2,500 files changed without interrupting service.
Read the Blisterr caseOne shared Flutter codebase for Android, iOS, Windows, macOS and the Web, with real-time WebRTC communication, over two years of support.
Read the Reavox caseEach case describes the work delivered, its scope and the current status of the product.
Budget and next steps
For a defined Flutter product or increment: discovery sets the scope, the estimate and the delivery increments.
A senior Flutter engineer joins your team at our public day rate of €750 excl. VAT, for a short or long engagement.
For an existing Flutter app: a diagnostic first, then stabilisation or a progressive migration.
Budget ranges by maturity level, from prototype to scalable product, are published on our pricing page.
Useful questions
Flutter shares the product layer across platforms; native gives direct access to each system. The choice depends on usage, hardware integrations and the team that will maintain the app. We work with both and compare them during discovery.
Both share code between iOS and Android, and we work with both. The choice depends on the existing code, the team's skills and the native integrations needed. On Meduz, a React Native bridge was ruled out after comparative measurements.
Yes for applications, less so for websites where search visibility matters. On Reavox, the same Flutter codebase shipped on Android, iOS, Windows, macOS and the Web.
Yes. We start with a diagnostic of the code, dependencies and builds, then propose stabilisation or a progressive migration, as on Blisterr.
Next step
The need, any existing code and the deadline: that is the starting point.