Skip to content
cirlume.
Menu

Flutter.

Cross-platform apps from one Dart codebase, with consistent rendering on iOS and Android.

Talk to us about Flutter

Key features

What Flutter does well.

  • Impeller rendering

    Flutter’s Impeller renderer compiles shaders ahead of time and draws with Metal on iOS and Vulkan on Android.

  • Stateful hot reload

    Code changes appear in the running app in about a second, and the screen keeps its current state.

  • Native machine code

    Release builds compile Dart ahead of time to native ARM code rather than running through an interpreter.

  • Material and Cupertino widgets

    Two widget sets that follow Android and iOS design conventions, alongside fully custom widgets.

What we build with it

Illustration for Flutter

The same interface on every device.

Flutter draws its own interface rather than using each platform’s components, so an app looks and behaves the same across devices. We build and maintain Flutter apps, particularly where a team already has Flutter experience or code.

  • Branded consumer apps

    Apps with a custom visual style that should look identical on iOS and Android.

  • Existing Flutter products

    New features, upgrades and fixes for apps already built in Flutter.

  • Tablet and kiosk interfaces

    Fixed-purpose apps running on shared devices with a controlled layout.

When it’s the right choice

Flutter is a strong fit for apps with a highly custom interface, or when your team or existing product already uses Dart.

When we’d pick something else

If the product also has a React web app and you want to share code and types with it, React Native with Expo usually fits better.

Our Flutter services

How we can help.

  • New Flutter apps

    Apps built in Flutter where the interface is highly custom or your team already works in Dart.

  • Codebase reviews

    A review of an inherited Flutter app’s structure, state management, packages and release setup.

  • Flutter and package upgrades

    Upgrades through Flutter and Dart versions, replacing packages that are no longer maintained.

  • Platform channel work

    Swift and Kotlin code behind platform channels for device features that no package covers.

How we work

Starting a Flutter project.

  1. Review what exists

    Code, data, hosting and the people who maintain it, before any Flutter decision is made.

  2. Agree the approach

    A written scope: what changes, what stays, the risks and how we will know it worked.

  3. Build in reviewable slices

    Working increments your team can test, rather than one large delivery at the end.

  4. Hand over or stay on

    Documentation and access for your team, or a defined support scope if you want us to keep going.

Where AI fits

AI in mobile work.

  • On-device models

    Apple’s Foundation Models framework and Android’s Gemini Nano APIs run smaller models on the phone, for features that must work offline or keep data local.

    AI workflow automation ↗
  • Reading photos of documents

    Capture a form or label with the camera and pull out the fields, with the image kept for checking.

    Document data extraction ↗

Where it stops: On-device models are only on newer phones and are less capable than cloud models, so features need a fallback.

What’s changing

Shifts to plan for.

Dates that affect Flutter projects, checked against the official sources.

  1. August 2026

    Google Play targets Android 16

    New apps and updates for phones and tablets must target API level 36. Extensions can be requested until 1 November 2026.

  2. April 2026

    App Store requires the iOS 26 SDK

    Since 28 April 2026, uploads must be built with Xcode 26. Apps can still support older iOS versions; only the build tools changed.

Common questions

Flutter questions.

Can you take over a Flutter app built by another team?

Yes. We review the code, packages, Flutter version and release setup, then agree priorities for fixes, upgrades and new features.

How do you keep a Flutter app up to date?

We upgrade Flutter and its packages in planned steps, test on real devices and keep the store builds current with platform requirements.