Skip to main content

Technology

Flutter Apps Connected to the Systems That Run the Business

An app that only looks good is a prototype. The Flutter apps on this page read live catalog data from an ERP, take recurring payments and serve suppliers in the field, because we build the backend they talk to as well.

  • iOS & Android
  • GraphQL
  • Odoo-backed
  • Stripe
  • Push notifications
  • Store releases

Reviewed by Atul Makwana, CEO & Co-Founder, Heliconia Solutions · Odoo 16 Functional Certification · Odoo Partner · Updated

Proof

Flutter apps in productionHeadless Odoo over GraphQLRecurring payments liveOne codebase, both storesOngoing release cycles

Clients

Businesses that run on what we built

  • Ramdev Kangan
  • WaveContact
  • Ladder Logix
  • Avasar Agency
  • Aria Jewellers
  • Freiburger Bund
  • Jo Ann's

The short answer

When Is Flutter the Right Choice?

Flutter fits when you need one codebase producing a genuinely native-feeling app on iOS and Android, with a consistent interface you control completely. It suits catalog, portal, field and transactional apps backed by an API. It is the wrong choice when you need deep platform-specific integration on one OS only, or when a responsive web app would have answered the need without an app-store release cycle.

The reason our Flutter work holds up is that we also build what sits behind it. Ramdev Kangan’s catalog comes from Odoo over GraphQL. WaveContact’s subscriptions are Odoo and Stripe. PayRemit’s app is part of a platform our Odoo and Next.js engineers work on at the same time.

That matters because most app problems aren't app problems. They're API shape, data volume, offline behaviour and release process.

What we deliver

What We Build With Flutter

Each item comes from an app that is in production, with the project named.

  • Catalog and field apps on live ERP data

    Ramdev Kangan’s suppliers and customers browse a product catalog managed once in Odoo, delivered to a Flutter app over GraphQL with search and filtering built for the way they actually look for products.

    • GraphQL
    • Search and filter
    • One source of truth
  • Subscription and payment flows

    WaveContact runs subscription plans and secure recurring payments through Stripe, with the Odoo backend holding orders, memberships and the store behind both the web and Flutter clients.

    • Stripe
    • Plans
    • Renewals
  • Media-heavy interfaces that stay fast

    Product imagery served from Cloudflare R2 with synchronisation from Odoo, so a catalog with thousands of images opens quickly on a phone on mobile data.

    • R2 / S3
    • Image sync
    • Low latency
  • Transactional apps in regulated flows

    PayRemit is a live financial platform where our Flutter developers ship payment, agent and wallet features alongside the Odoo and Next.js team, without stopping live transactions.

    • Payments
    • Live system
    • Continuous delivery
  • Notifications and engagement

    Push through Firebase Cloud Messaging, deep links into the right screen, and the notification permissions handled the way each store now requires.

    • FCM
    • Deep links
    • Permissions
  • Release management on both stores

    Build pipelines, signing, store listings, staged rollouts and the review cycle handled as part of delivery, because "done" means available to users, not merged.

    • App Store
    • Play Store
    • Staged rollout

The pattern

How We Architect a Flutter Product

The app is a client. The rules, the catalog and the money stay in the system of record, reachable over an API designed for a phone rather than for a desktop browser.

  • Flutter
  • Dart
  • GraphQL
  • REST
  • Odoo
  • Stripe
  • Firebase Cloud Messaging
  • Cloudflare R2 / S3
How We Architect a Flutter Product
  • Customers and members

    Consumers browsing, subscribing and paying from their own devices.

  • Suppliers and field staff

    People using the app as a work tool, often on poor connections.

  • The web client

    A Next.js site or portal sharing the same APIs and the same accounts.

Flutter application

One Dart codebase for iOS and Android, with state management, caching and error handling chosen for the data volumes the screens actually carry.

API layer

GraphQL or REST shaped for mobile: the fields a screen needs in one round trip, paginated, with authentication and token refresh designed in.

Media and delivery

Images and files on S3-compatible object storage with renditions, so the phone downloads the size it needs rather than the original.

System of record

Odoo or the platform backend: products, stock, orders, subscriptions and payments. The app never becomes the place a business rule lives.

Honest positions

Flutter, React Native, Native or No App at All

We build in Flutter and React Native, and we will tell you when the answer is neither.

Flutter, React Native, Native or No App at All
Your situationWhat we would recommendWhy
One product, both platforms, a controlled interfaceFlutterOne codebase, consistent rendering, and a fast path from design to shipped screens
A React and Next.js team that will maintain the appReact NativeShared language and mental model with the web team matters more than the framework debate
Heavy platform-specific features on one OSNativeWhen the differentiator is a platform capability, a cross-platform layer is a tax rather than a saving
Occasional access to information staff already see on the webA responsive web app, no store releaseAn app carries store review, updates and two build pipelines. Only pay that when the app earns it
Truly offline field workFlutter or native, with offline designed firstOffline is an architecture, not a feature you add later. It changes the data model and the sync rules

Freiburger Bund runs React Native rather than Flutter, because that product shares a codebase and a team with its Next.js web app. Same principle, different answer.

How we work

Versions, Performance, Testing and Release

  • Flutter and Dart kept on supported versions, with upgrades planned rather than forced by a store deadline
  • API shaping done with the app team, because most mobile performance problems are round trips, not rendering
  • Image and list performance budgeted for real catalog sizes on mid-range Android devices, not just the newest phone in the office
  • Crash reporting and release monitoring from the first build, so a bad release is caught by us rather than reported by users
  • Store compliance handled as part of delivery: permissions, privacy declarations, review feedback and staged rollout
  • Ongoing releases rather than a launch: WaveContact and Ramdev Kangan have both shipped continuously for months
  • Handover documentation and repository access, so another team could take the app on

Evidence

Flutter Apps We Run in Production

Three apps, three different jobs: a supplier catalog, a subscription product and a financial platform.

Flutter Apps We Run in Production
ProjectIndustryOdooKey capabilitiesTechnology
Ramdev KanganJewellery manufacturingOdooHeadless Odoo API · GraphQL API Extensions · Flutter Mobile Application · Product Catalog ManagementOdoo · Python · GraphQL · Flutter · Cloudflare R2
WaveContactSaaS: digital business cardsOdooDigital Business Card Management · Contact Management · Profile Management · Subscription ManagementOdoo · Python · PostgreSQL · GraphQL · Flutter
PayRemitFinTech: digital payments & remittanceOdooAgent Management · Employer Management · Commission Management · Payment History ReportsOdoo · Python · PostgreSQL · Next.js · Flutter

Read the projects

Two Flutter Builds Worth Reading

A catalog app served by headless Odoo over GraphQL, and a subscription product with Stripe billing behind web and mobile clients.

All case studies

Two ways to work with us

A Product, or Developers for Your Team?

This page is about delivering an app. If you need Flutter capacity inside your own team, working in your repository and your release process, that is a different engagement.

What clients say

In Their Words

Questions

Flutter Questions, Answered Directly

Atul Makwana

CEO & Co-Founder, Heliconia Solutions

Not answered here? Ask Atul directly, the person who reviewed this page, not a sales queue. Odoo 16 Functional Certification.

Ask a question

Can a Flutter app use Odoo as its backend?

Yes, and it is the architecture we build most often. Odoo exposes products, stock, orders, customers and subscriptions over GraphQL or REST, and the Flutter app is a client of that API.

Ramdev Kangan’s catalog app works exactly this way, with the product data managed once in Odoo and media served from object storage.

Headless Odoo architecture

Flutter or React Native?

Usually a team question rather than a technology one. Flutter gives one Dart codebase with consistent rendering and a quick path from design to screens. React Native shares a language and often components with a React web team.

We build both: Ramdev Kangan, WaveContact and PayRemit are Flutter, and Freiburger Bund is React Native with Expo, because it shares a stack with its Next.js portal.

Can the app take payments and subscriptions?

Yes. WaveContact runs subscription plans with Stripe recurring payments behind both its web frontend and its Flutter app. Payment flows need care with store rules on digital goods, and we design that in rather than discovering it at review.

Read the subscription project

Do you handle App Store and Play Store releases?

Yes: build pipelines, signing, store listings, privacy declarations, review responses and staged rollouts. An app that is merged but not released is not delivered, so we treat the store as part of the work.

Can the app work offline?

It can, and it is an architecture decision rather than a feature. Offline changes the data model, the sync rules and the conflict handling, so it has to be designed from the start. Tell us how often your users are genuinely out of coverage and we will size it honestly.

Do you maintain apps after launch?

Yes, and most of our mobile work is ongoing rather than one-off. WaveContact has shipped releases over 12 to 15 months, Ramdev Kangan over 8+ months and counting, and PayRemit is continuous delivery on a live platform.

Mobile application development

Next step

Tell Us What the App Has to Talk To

The screens are the visible part. Send us the system behind them, who uses the app and where, and we will propose an architecture, an API shape and a release plan.