Expertise

Flutter Expert

Flutter is a mobile development framework that produces iOS and Android apps from a single codebase. I have been developing mobile software for over twenty years, and I have used Flutter in real projects ranging from enterprise field applications to AI-powered products. On this page I explain what Flutter is, what a Flutter expert does, and whether it is the right choice for your project.

What is Flutter?

Flutter is an open-source framework developed by Google that lets you build iOS, Android and, when needed, web and desktop apps from a single codebase. It is written in Dart. Because it renders its interface with its own drawing engine, an app's look and behaviour are largely identical on both platforms.

In practice it means this: instead of writing the same work twice, you write it once and ship it to two stores. But that does not mean "one codebase solves everything". Permissions, background behaviour, notifications and store rules are still handled separately per platform. A good Flutter expert works with that difference in mind.

What does a Flutter expert do?

  • Sets up the architecture. Separates the interface, state management, data and service layers according to the size of the project. They do not apply heavy architecture to a small app, or write disorganised code for a large product.
  • Chooses state management. Among approaches such as Provider, Riverpod and Bloc, they decide based on team size and product lifetime, not on what is fashionable.
  • Writes native integrations. Sets up platform channels for camera, location, notifications, files, payments, biometric sign-in and device security.
  • Measures performance. Monitors cold start time, dropped frames, memory usage and network traffic; the "feels smooth on device" impression is not left to chance.
  • Sets up testing and automation. Unit, widget and integration tests; CI/CD, release signing and the store publishing pipeline.
  • Plans maintenance and handover. Flutter version upgrades, package updates, store policy changes and handing over the source code together with its documentation.

When is Flutter the right choice?

  • When you target iOS and Android at the same time and your budget cannot support two separate teams.
  • For form- and data-heavy business apps such as tasks, surveys, orders, field tracking and reporting.
  • When you want to ship an MVP quickly and move forward with real user feedback.
  • When the interface must be controlled precisely against the brand identity; Flutter gives near-native flexibility here.

When should native be considered?

  • When there is very specific hardware integration: augmented reality, low-level camera processing, custom sensors.
  • When the product depends day-to-day on the platform's newest APIs and sits close to the hardware.
  • When building a very small app for a single platform; Flutter's benefit may not be worth its cost.
  • When adding a small piece to an existing large native app; a module-based migration plan is needed.

This list does not put Flutter down; it is a comparison of cost and risk. I covered the same topic in more detail in my article Flutter or native.

My experience

As CTO at Açık Deniz Bilişim I developed task, survey and location-based reporting apps for FMCG field teams. In these projects we used native Android (Java) and iOS (Swift) alongside Flutter. ERP integration, offline operation and resilience in field conditions were critical.

At DoktorAsistan I built the mobile side with Flutter; the backend runs on Laravel and Python, and the AI layer sits on LLM and RAG. My native background lets me see in advance where I need to drop down to the platform channel and where store rules will cause trouble.

How does a Flutter project progress?

I move forward by dividing the work into stages; at the end of each stage there is a working output and an approval:

  1. Discovery and technical plan. Screen flows, data model, integration list and out-of-scope items.
  2. Skeleton. Sign-in, one real screen and a test build running on a device.
  3. Main flow. The product's core job works: order, task, message, appointment or payment.
  4. Integration and testing. Notifications, payments, email, error scenarios and store preparation.
  5. Release and handover. App Store and Google Play release, source code, documentation and a maintenance plan.

I explained how the stages work in my article why work should be done in stages.

Common mistakes

  • Changing state management after the project has grown; every change forces all screens to be rewritten.
  • Leaving packages outdated; a year later a Flutter version upgrade takes weeks.
  • Putting tests off until later; the most expensive bugs surface here, just before store release.
  • Ignoring platform differences with a "single code" expectation: permission texts, background restrictions and notification behaviour are still separate.

Frequently asked questions

Should I use Flutter or native?

Target platforms, team structure and hardware needs decide this. For business apps targeting iOS and Android together, Flutter is usually faster and more economical. If heavy hardware, augmented reality or deep platform-specific integration is required, native may be the better choice.

Is a single codebase really enough?

Most of the business logic and interface is shared. But permissions, background work, notifications, store metadata and some native libraries are still handled separately per platform. When planned correctly, roughly 85-95 per cent of the total work comes from shared code.

How long does it take to ship a Flutter app?

The timeline depends on the number of screens, the integrations and whether the design is ready. A small MVP usually ships within 4-8 weeks; for apps with enterprise integrations this extends. A precise timeline can only be given after the discovery phase.

Can Flutter be added to an existing native app?

Yes. Flutter can be added to an existing iOS or Android app on a module basis. First you plan which screens will be migrated and how data will pass between the two sides; then you migrate gradually.

Who handles the store release?

I run the release process: release signing, store metadata, screenshots and the review process. The developer accounts always remain in your name; access and ownership stay with you.

How does maintenance and handover work?

The source code is delivered together with documentation and release notes. If requested, a monthly maintenance agreement is set up for Flutter version upgrades, package updates and store policy changes.

Can Flutter also build web or desktop apps?

Yes, in suitable scenarios. But for complex, SEO-critical or heavily interactive web products a separate assessment is needed; the right tool is not the same for every project.