Mobile apps
Flutter apps for Android and iOS from one codebase, with native code when needed.
We build Android and iOS apps with Flutter from one codebase, and write native Kotlin or Swift where a feature needs it. The app is tested on real Android phones and on iOS, and preparing it for Google Play and the App Store is part of the build. We also take on apps that are already live, including apps another team built.
Who it is for
Businesses that need an app their customers, drivers or field staff use every day, with one team for both platforms. It fits startups shipping a first version, companies moving bookings, deliveries or field work off phone calls and chat messages, and owners of a live app that needs new features, fixes or an update for current store rules. If you need a 3D game, or an app that only shows your website, this is not the right service: a game studio or a mobile-friendly web app will serve you better.
What we build
- Booking and on-demand service apps. Customers request a service, upload documents, pay in the app and follow their request step by step, while your team sees the bookings in one place.
- Apps for drivers and field staff. Live location that keeps working in the background, within what Android and iOS allow, records of trips and visits, and alerts for the people waiting, with a separate app or role for each kind of user.
- Apps built on your existing system. Sign-in, accounts, push notifications and payments, connected to the API you already have or to a backend we build with the app.
- Upgrades of apps already in the stores. We start by reviewing the code, the crash reports and the store settings, give you a written plan, then add features, fix what breaks or bring the app up to the stores’ current requirements.
How we build it
Flutter and Dart give you one codebase for both platforms, organised with BLoC so the app’s logic stays separate from its screens. When a feature needs the operating system directly, such as background location, home-screen widgets or Bluetooth devices, we write that part in Kotlin or Swift and connect it to the Flutter app. Apps first written in Kotlin or Swift can be extended without a rewrite.
One app can hold both Arabic and English, and the layout switches direction when the user changes language. Push notifications go through Firebase Cloud Messaging, and Firebase Crashlytics or Sentry reports crashes to us with the details we need to fix them.
Sign-in tokens are kept in the iOS Keychain and the Android Keystore. Before launch we test the main journeys on real Android phones and on iOS, including with the TalkBack and VoiceOver screen readers.
For the stores, GitHub Actions and fastlane produce the signed builds, and we prepare the listing, the privacy details each store asks for and a demo account for the reviewers, then answer their feedback. Apple and Google make the final decision on approval. We can also prepare the store releases and run the listings in your own store accounts.
Timeline and cost
Time and cost depend mostly on:
- how many kinds of user and how many apps you need, for example a customer app, a driver app and an admin dashboard;
- live features such as maps, background location and in-app chat;
- connections to payment gateways, sign-in services or your existing systems;
- whether the app has to work offline and sync later;
- whether we start from scratch or from an app that already exists.
After the free call, you get a written scope with the timeline and the price, before you pay any deposit.