060 279 5587 info@sitect.co.za 139 Davies Street, Doornfontein, Johannesburg, 2001 Gauteng, SA
Mobile · Flutter App Development

Beautiful UIs. One Dart codebase. Six surfaces.

Flutter renders pixel-perfect UIs straight to its own Skia canvas — so the design is identical on iOS and Android, on the web, on macOS and Windows. We build production Flutter apps for SA businesses where design fidelity, speed and reach all matter.

From R36k · MVP tier 3–5 months typical to launch iOS · Android · Web from day one
Sitect Studio

Welcome, Sipho 👋

Today
Revenue (MTD)
R 142 580
+12.4% vs prior
Active customers
86
+9 this week
Recent activity
M
Mzansi RoasteryOrder · 09:14
R 3 480
B
Bokamoso HealthSubscription
R 6 200
iOSApp Store
AndroidPlay Store
WebPWA / browser
macOSDesktop
WindowsDesktop
LinuxDesktop
Why design-led teams pick Flutter

The 4 things React Native and native dual-track don't solve

React Native is great. Native Swift + Kotlin is great. But there are specific cases where Flutter is genuinely the right answer — and those cases keep recurring on SA mobile briefs.

Cost 01

"It should look identical on iOS and Android"

React Native renders to platform-native UI controls, so iOS uses UIKit and Android uses Material. Identical by default? No. Flutter renders every pixel itself through Skia — so a brand-led app with custom design language stays truly identical across platforms, no platform-skin compromises.

What it costs: design polish lost to per-platform adjustments, debates, drift.
Cost 02

"We also need a web version"

Building a web app separately doubles the budget. Flutter Web compiles your same Dart code to WebAssembly + canvas — so your mobile app and your web app are the same codebase. PWA-ready out of the box, marketing-site demos identical to the live app.

What it costs: a second team, a second roadmap, a second design system to maintain.
Cost 03

"Animations should be smooth and complex"

Heavy animations, custom transitions, branded loading states, complex gestures — these are first-class in Flutter via the AnimationController API + Hero transitions + custom render objects. React Native can do them too, but it takes more native-code escape-hatches and platform-specific tuning.

What it costs: apps that feel "good enough" instead of "polished" — and you can feel the difference.
Cost 04

"We need desktop too — Windows and macOS"

SA enterprises increasingly need desktop variants for internal tools, kiosks, and POS terminals. Flutter targets Windows, macOS and Linux desktops from the same codebase — meaningfully better than building three separate Electron/native desktops.

What it costs: a third stack to maintain, or a desktop-only Electron app that drifts from the brand.
Why we recommend Flutter when…

Three reasons Flutter is the right call for your build

Flutter isn't universally better than React Native — but in these three cases, it pulls clearly ahead. If two or more describe your app, we'd default to Flutter.

Design fidelity matters

Brand-led product with bespoke UI, custom transitions and detail-oriented design system. Flutter draws every pixel — your brand renders the same on every platform, every device, every OS version.

  • Skia-based pixel rendering
  • Identical across iOS / Android
  • Custom animations are easy

Multi-surface is a hard requirement

If iOS, Android and web (or desktop) are all in scope, one Flutter codebase covers all of them. Marketing-site demos, web previews, and PWA fallback all ship from the same code.

  • Mobile + web + desktop
  • One repo · one team · one budget
  • Shared business logic

Performance under load

Flutter's compiled-to-native AOT performance with 60–120 fps rendering. Heavy lists, charts, image galleries, real-time updates — all stay smooth. No JavaScript-bridge bottleneck.

  • AOT-compiled Dart
  • Native 60–120 fps
  • No JS bridge tax
Honest comparison

Flutter vs React Native — we build both

We're not in either camp. We pick the right tool per project. Here's the comparison we walk every client through.

Criterion
React Native
Flutter
UI consistencyiOS vs Android visual parity
Native widgets · platform-themed
Pixel-perfect identical Flutter wins
Web targetSingle codebase for web too
RN-Web possible · not native-grade
First-class Flutter Web Flutter wins
Desktop targetWindows / macOS / Linux
Limited (RN-Windows / -macOS)
All 3 desktop OSes Flutter wins
Hireability in SAEngineers easy to find
Larger talent pool
Growing fast · smaller pool
Web-team code sharingReuse with React web
Excellent · shared with React
None · Dart is its own thing
Library ecosystemMature 3rd-party packages
Massive · NPM-backed
Solid · growing on pub.dev
App sizeFinal bundle on device
Smaller · ~10–20 MB
Larger · ~20–40 MB
Animation polishComplex motion, gestures
Good · Reanimated 3
Excellent · native Flutter wins
Our default Flutter stack

The technology choices behind every build

Mature, well-supported, mainstream choices that your team or any competent Flutter agency can pick up later.

App framework

F
Flutter 3.22+Stable channel · null-safe Dart
D
Dart 3Strict types · records · patterns
M
Material 3 / CupertinoNative look per platform when needed
GR
GoRouterType-safe declarative routing
RP
Riverpod / BlocState management we trust

UI & UX

FI
flutter_animateComposable animations & transitions
HE
Hero transitionsShared-element animation across screens
SV
flutter_svgVector icons · custom illustrations
F2
fl_chart · syncfusionCharts & data visualisation
A11Y
Accessibility-firstVoiceOver + TalkBack tested

Backend & ops

L
Laravel APIOr existing backend · Sanctum / OAuth
DI
Dio + RetrofitHTTP client · typed clients
FB
FirebaseAuth · Firestore · push · analytics
SN
Sentry + CrashlyticsCrash + error tracking
CD
Codemagic / GitHub ActionsCI/CD for both stores
Features SA businesses ask us for

What we routinely ship in Flutter apps

Each of these is something we've delivered for SA customers in the last 12 months — for customer apps, field-team apps, internal apps.

Auth + biometrics

Email, OTP, social login, sign-in with Apple, Face ID / fingerprint, secure keystore storage. SAML / SSO for enterprise.

Push notifications

Firebase Cloud Messaging — topic + targeted push, deep-linked screens, action buttons, silent background sync, badge counts.

Offline-first

Drift / Isar local databases, sync-on-reconnect, optimistic UI, conflict resolution. Critical for SA mobile networks.

In-app payments

Apple IAP + Google Play Billing for digital goods. Yoco · Stripe SDKs for physical goods. Receipt validation server-side.

Maps & location

Google Maps · Apple Maps · Mapbox. Geofencing, background location for field teams, route optimisation, SA address autocomplete.

Camera & scanning

QR codes, barcodes, document capture with on-device OCR, ID verification for KYC, image upload with compression.

Real-time messaging

In-app chat with attachments, typing indicators, read receipts, support agent escalation. WebSocket-powered.

Charts & analytics

fl_chart / syncfusion for interactive dashboards. Firebase Analytics + Posthog for behavioural tracking and funnels.

Web + desktop targets

Flutter Web for PWA / marketing demo / admin web app. Flutter Desktop for internal POS, kiosks, control-room apps.

All 6 surfaces — same codebase

One Dart codebase — six places it can run

You don't have to target all six. Most builds start with mobile and add web. But the option is there from day one, and the team that builds it doesn't have to grow.

iOS

App Store · iPhone · iPad

Compiled to ARM via AOT. Apple HIG-respectful with Cupertino widgets where appropriate. Universal binary for iPhone + iPad.

Android

Play Store · phones · tablets

Same AOT-compiled binary, Material 3 styling, supports back to API 21 (Android 5.0) — covers ~99% of SA Android devices.

Web (PWA)

Browser · installable · offline

Flutter Web compiles your same Dart to WebAssembly + canvas. PWA-installable, offline-capable, ideal for admin panels or marketing demos.

macOS

.app · App Store · TestFlight

Native macOS bundle, signed for the App Store or direct distribution. Good fit for internal-team productivity tools.

Windows

.exe · MSIX · Microsoft Store

Native Win32 / WinUI binary. Signed for Microsoft Store or sideload. Ideal for kiosks, point-of-sale terminals, internal desktop tools.

Linux

snap · AppImage · deb

Linux desktop binary for the cases that need it — internal Ubuntu environments, embedded kiosks, dev tools.

What walks away with you

Everything in the handover package

Code, store accounts, design system, runbooks, training. You own everything from day one.

iOS + Android apps

Production builds shipped to both stores under your accounts. MIT-licensed Dart source code in your repo.

Design system

Figma + Dart-implemented design tokens — colours, typography, spacing, components. Your designer + dev share one source of truth.

CI/CD pipelines

Codemagic or GitHub Actions for build + sign + ship — both stores, dev/staging/prod environments, one-button releases.

Analytics + crash

Firebase Analytics + Crashlytics + Sentry configured with funnels, retention cohorts, crash-free-session SLOs.

Store assets + listings

Store screenshots, icons, marketing copy, privacy policy, App Store Connect / Play Console fully set up.

90-day warranty + training

90 days bug-fix warranty post-launch. Loom tutorials for your team on releases, store submissions, monitoring.

From idea to launch

A predictable 6-phase build

Most Flutter builds run 3–5 months end-to-end. Weekly TestFlight + internal-Android builds throughout — never wait a month between updates.

1

Discovery

User flows, feature matrix, platform decisions, store strategy.

Wks 1–2
2

UX & design

Figma flows, design system, key screens prototyped & user-tested.

Wks 2–4
3

Foundation

Scaffold, auth, navigation, design tokens in code, CI/CD pipelines.

Wks 4–6
4

Feature sprints

2-week sprints, weekly TestFlight + internal-test builds for stakeholders.

Wks 6–14
5

Beta + polish

TestFlight + Play internal-test beta with real users. Bug fixing & polish.

Wks 14–18
6

Store launch

Submissions, review, launch + 90-day warranty + monitoring.

Wks 18–20
What "built right" earns

Indicative gains from one codebase done well

Numbers from recent SA Flutter builds, 6 months post-launch. The biggest gain is invisible — the second team you didn't have to hire to cover web.

~50%
Cost vs dual-native
One team · one codebase
99.5%
Crash-free sessions
Across active builds · 90d
4.7★
Avg. store rating
Across launched apps
120fps
Peak render rate
On modern devices · Skia
Indicative pricing — ZAR, ex VAT

Three engagement shapes

Every Flutter app is scoped per build — these are the bands we usually land in. 25% on signature, 25% on phase-3 demo, 25% on TestFlight beta, 25% on store launch.

MVP App

Mobile-only · core flow · validation stage
From R36 000 · ex VAT
3–4 months · 90-day warranty
  • iOS + Android apps
  • ~6–8 core user-facing screens
  • Auth + push + basic analytics
  • Codemagic CI/CD pipeline
  • Store submission for both
  • Crashlytics + Sentry
Scope an MVP App

Multi-Surface App

Mobile + Web + Desktop from one codebase
POA
From R104 000 · 6–9 months
  • All of Production App, plus:
  • Flutter Web (PWA + admin panel)
  • Desktop targets (macOS / Windows)
  • Responsive layouts across breakpoints
  • SSO · MDM-friendly · enterprise hooks
  • Retained engineering pod
Talk to us about Multi-Surface
FAQ

The questions we get asked most

Honest answers about Flutter vs React Native, hiring, web target reality, and what we won't ship.

Flutter or React Native — what do you actually recommend?
We default to React Native when the team already does React on the web, when hireability matters most, or when the app is plain-vanilla CRUD. We default to Flutter when design fidelity matters, when web/desktop are also in scope, or when animations / charts / heavy lists need to feel buttery. Both are excellent. We're not religious about either.
Is Flutter Web actually production-ready?
For SaaS-style apps, admin panels, and PWAs — yes, comfortably. For SEO-driven public marketing sites or content-heavy blogs — no, use a web-native framework (Next.js, Nuxt) for those. The honest test: if it would have been a Single Page App anyway, Flutter Web is fine. If it would have been server-rendered, use something else.
Will I be able to hire Flutter engineers in SA?
Yes — and the pool is growing fast. The SA Flutter community is active (Flutter Cape Town, Flutter Joburg meetups). Salary premium vs React Native is currently ~10–15%. Less talent depth than React Native, more than pure native Swift/Kotlin. We hand off to your team via pair-programming and ADRs, so onboarding a Dart developer post-launch is straightforward.
How big is the final app file?
A bare Flutter app is around 7-8 MB; production apps with assets, features, and libraries typically land between 20-40 MB on Android (AAB downloads from Play are usually ~15-25 MB for the user). iOS IPAs run ~25-50 MB. Slightly larger than RN equivalents, comparable to native apps with heavy assets.
What about Apple's 30% commission?
Same rules apply regardless of framework. Apple takes 15-30% on in-app purchases of digital goods. Physical goods, services rendered outside the app, and reader apps are exempt. We design your monetisation around the actual rules — we'll tell you honestly which model fits your case.
Does Flutter render well on cheap Android devices?
Yes — actually one of its strengths. Because Flutter renders to its own Skia canvas it's less affected by manufacturer-level Android skinning fragmentation. We routinely test on entry-level SA Samsung A-series and Honor devices on Android 11+, where Flutter performs better than equivalent React Native apps with heavy native modules.
Will you maintain it post-launch?
Optional. 90-day defect warranty included. After that you can take it over (you own everything) or retain us via a monthly retainer from R6k/mo for ongoing maintenance, OS-upgrade compatibility, new features, and store-policy adherence. About 70% of clients retain for year one.
What if we want to add native iOS or Android features Flutter doesn't expose?
Common situation. We write platform channels in Swift / Kotlin for the gaps — Bluetooth, NFC, deep-OS integrations, Apple Watch / WearOS, widgets, share extensions. The Flutter codebase stays clean and unaffected; the native code lives in its own clearly-bounded module.

Tell us about your app — we'll tell you honestly whether Flutter is the right call.

Share what you're building, who it's for, which platforms matter, and how brand-led the design is. We'll come back with a 45-min product call, a recommended tier, and an indicative budget.