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

iOS & Android — one codebase, one team, one budget.

Native-feel apps on both platforms from a single React Native codebase. We ship customer apps, field-team apps and internal apps that respect platform conventions, handle SA data realities, and pass App Store + Play Store review the first time.

From R38k · MVP tier 3–5 months typical to launch Single codebase · 1 team
App StoreiOS · ready
9:41
Mzansi PayPersonal · Free plan
Good morning,
Thandi 👋
Balance
R 4 280
Saved
R 920
+12% this mo
Quick actions
Top up
Send
Scan
Recent activity
Sipho · receivedToday · 09:14
+R420
Kasi GroceriesYesterday · 18:02
−R128
One codebase · React Native
9:41
Mzansi PayPersonal · Free plan
Sawubona,
Thandi 👋
Balance
R 4 280
Saved
R 920
+12% this mo
Quick actions
Top up
Send
Scan
Recent activity
Sipho · receivedToday · 09:14
+R420
Kasi GroceriesYesterday · 18:02
−R128
Play StoreAndroid · ready
Where mobile builds go wrong

The 4 ways app projects turn into write-offs

Mobile apps fail more often than web apps, and they're more expensive to fail at. Here's what we see go wrong — and what we make sure doesn't.

Pattern 01

Built twice — iOS and Android in parallel — for double the price.

Two separate codebases, two teams, two languages, two timelines, two QA cycles. Every feature gets implemented twice and inevitably ends up subtly different on each platform. The CFO eventually asks why the app costs as much as the rest of the product.

What it costs: roughly 1.8× the budget, indefinitely diverging features, twice the bug-fix surface.
Pattern 02

Looks great on iPhone 15 Pro Max — broken on every SA Samsung A-series.

Built and tested on the developer's flagship device. Ships to customers running mid-range Androids with 3GB RAM, fragmented Android versions back to 11, screen sizes nobody designed for. App-Store reviews start at 2 stars and slide.

What it costs: the actual users' experience, store ratings, retention.
Pattern 03

Rejected by Apple in week 12. Rejected again in week 14.

App Store review is a real gate — and the rules change. Subscriptions outside IAP, missing privacy declarations, third-party login without sign-in-with-Apple, vague metadata. Each rejection burns a week. By the third one, the launch date is fiction.

What it costs: 3–8 weeks of slipping launch dates, missed marketing windows, team morale.
Pattern 04

The app shipped. Nobody is maintaining it. Now iOS 19 is out.

Apps need ongoing maintenance — SDK upgrades, deprecations, new device sizes, OS feature opt-ins. Most agency-built apps go 18 months before they're effectively abandoned, then it costs more to revive them than it would have to keep them up.

What it costs: apps that get pulled from stores or crash on every new OS release.
Why we default to React Native

One codebase, near-native feel, real cost savings

React Native isn't the right answer for every app — but for ~85% of the apps SA businesses need, it's the right call. Here's why.

One codebase, two stores

Ship to App Store and Play Store from a single TypeScript codebase. Features land on both platforms simultaneously. Bug fixes deploy to both at once.

  • ~80% code shared iOS + Android
  • Platform-specific tweaks where needed
  • Single test + QA cycle

Native performance & feel

React Native renders to actual native UI components — not webviews. Animations, navigation, scrolling all feel native. The new architecture (Fabric + TurboModules) closed the perf gap further.

  • Native UI components
  • 60–120 fps animations
  • Native bridges for device features

Hireable team, ecosystem

Any React-comfortable web developer can be productive on React Native within 2 weeks. The biggest mobile teams in the world (Meta, Shopify, Microsoft) ship on React Native — the ecosystem is deep and active.

  • Easy to hire in SA
  • Mature library ecosystem
  • Code shared with web (where it fits)
Our opinionated stack

The technology choices behind every build

Mature, well-supported, mainstream choices. The kind your engineers can search Stack Overflow for at 11pm on Friday.

App layer

RN
React Native 0.74+New architecture · Fabric + Hermes
EX
Expo SDK 51+Default for most apps · EAS Build
TS
TypeScriptStrict mode · zod for runtime validation
NV
React Navigation 7Native stack · deep linking · type-safe routes
Q
TanStack QueryServer state · cache · sync

UI & UX

RP
React Native PaperMaterial Design · accessibility built-in
RE
Reanimated 360–120fps animations · gesture handler
NW
NativeWindTailwind syntax on RN · designer-friendly
SV
react-native-svgVector icons · custom illustrations
A11Y
Accessibility-firstVoiceOver + TalkBack tested

Backend & ops

L
Laravel APIOr your existing backend · Sanctum auth
FB
Firebase / Expo PushNotifications · realtime · analytics
SN
Sentry · CrashlyticsCrash + error tracking · session replay
EAS
EAS Build · SubmitCloud builds + store submissions
OTA
EAS Update (OTA)Patch live apps without store re-review
Features SA businesses ask us for

What we routinely ship in mobile apps

Each of these is something we've delivered multiple times — for customer apps, field-team apps, and internal apps. No "we'll figure it out in phase 2" gaps.

Auth + biometrics

Email, OTP, social, sign-in with Apple, plus Face ID / Touch ID / fingerprint unlock. Secure token storage in Keychain / Keystore.

Push notifications

Topic + targeted push, deep-linked into the right screen, action buttons, silent push for background sync, badge counts, opt-in flows.

Offline-first sync

Read + write while offline, optimistic UI, conflict resolution on reconnect. Critical for SA mobile networks. SQLite-backed via WatermelonDB.

In-app payments

Apple IAP + Google Play Billing for subscriptions, plus Stripe / Yoco SDKs for external payments where the rules allow. Receipt validation.

Maps & location

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

Camera & scanning

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

Real-time messaging

In-app chat, threaded conversations, attachments, read receipts, typing indicators, support agent escalation. WhatsApp-style polish.

Analytics + crashes

Event tracking, funnels, attribution, session replay, crash reporting with breadcrumbs. Sentry + Firebase + Posthog or Mixpanel.

OTA updates

Patch live apps within hours — not 2-week store-review cycles — for non-native changes. Bug fixes ship the day they're written.

When you need actual native

We write Swift & Kotlin when it's the right call

React Native is the default. But ~15% of the time the right answer is a native module bridge — for performance-critical paths, deep OS integrations, or platform features RN doesn't yet expose cleanly. We write native code without flinching.

Performance paths

Heavy image processing, video transforms, large-list rendering — native modules in Swift / Kotlin.

Bluetooth · NFC · USB

POS hardware, payment terminals, smart locks, vehicle integration. Native APIs, RN-exposed.

Widgets · WatchOS

iOS Home-screen widgets, lock-screen, Apple Watch companion apps, Android widgets — all in their native frameworks.

Deep OS hooks

Share extensions, document providers, Siri shortcuts, Android intents, file-provider integrations.

What walks away with you

Everything in the handover package

Code, store accounts, design system, runbooks, training. You own everything from day one — no hostage situations.

iOS + Android apps

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

Design system

Figma component library + RN component library — colours, typography, spacing, buttons, inputs. Your designer + dev share one source of truth.

CI/CD + EAS

EAS Build + Submit pipelines for both stores, OTA channel set up, env-specific configs (dev/staging/prod), one-button releases.

Analytics + crash reporting

Sentry, Crashlytics, Firebase Analytics (or Posthog/Mixpanel) configured with funnels, retention cohorts, crash-free-session SLOs.

Store assets + listings

App Store + Play Store screenshots, icon variants, marketing copy, privacy policy templates, App Store Connect / Play Console set up.

90-day warranty + Loom training

90 days of bug-fix warranty, plus Loom tutorials for your team on releases, OTA updates, store submissions, on-call response.

From idea to launch

A predictable 6-phase build

Most apps run 3–5 months end-to-end. You see weekly progress in TestFlight + internal Android testing — never wait a month between updates.

1

Discovery

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

Weeks 1–2
2

UX & design

Figma flows, design system, key screens validated with users.

Weeks 2–4
3

Foundation

Scaffold, auth, navigation, design system in code, CI/CD.

Weeks 4–6
4

Feature sprints

2-week sprints. Each ends with a TestFlight build for stakeholders.

Weeks 6–14
5

Beta + polish

TestFlight + Play internal-test beta with real users. Polish.

Weeks 14–18
6

Store launch

Store submissions, review, launch + 90-day warranty.

Weeks 18–20
What "built right" earns

The compounding gains of one codebase done well

Indicative metrics from recent SA mobile-app builds, measured 6 months post-launch. The biggest gain is the one you don't see — the second team you didn't have to hire.

~55%
Cost vs native dual
One team · one codebase
99.4%
Crash-free sessions
Across active builds · 90d
4.6★
Avg. store rating
Across launched apps
~6h
Mean time to OTA fix
From bug-reported to deployed
Indicative pricing — ZAR, ex VAT

Three engagement shapes

Every 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

Core flow · validation-stage launch
From R38 000 · ex VAT
3–4 months · 90-day warranty
  • iOS + Android apps
  • ~6–8 core user-facing screens
  • Auth + push + basic analytics
  • EAS Build + OTA pipeline
  • Store submission for both
  • Crashlytics + Sentry
Scope an MVP App

Enterprise App

SSO · MDM · multi-tenant · complex integrations
POA
From R112 000 · 6–9 months
  • SAML / SSO + SCIM provisioning
  • MDM-managed deployment
  • Multi-tenant + white-label
  • Native modules (Bluetooth, NFC, etc)
  • ERP / WMS / CRM integrations
  • Retained engineering pod
Talk to us about Enterprise
FAQ

The questions we get asked most

Honest answers about React Native vs Flutter vs native, store fees, the App-Store review process, and what we won't ship.

React Native or Flutter or native — which should I pick?
All three are valid. We default to React Native because it's mature, hireable, and shares code with web teams. Flutter wins on raw UI polish and consistency across platforms, especially when design fidelity matters more than ecosystem maturity. Native (Swift + Kotlin) wins for extremely performance-critical apps, deep OS integration, or single-platform launches. We build all three and tell you honestly which fits your case.
What about Apple's 30% commission?
Apple takes 15–30% on in-app purchases of digital goods. Physical goods, services rendered outside the app, and reader apps (paywalled content with external sign-up) are exempt. We design your monetisation around the actual Apple rules — and we'll tell you honestly which model fits your case.
What can go wrong in App-Store review?
Most rejections are predictable: subscriptions outside IAP, missing sign-in-with-Apple, vague metadata, payments to external links, privacy nutrition labels missing, demo accounts not provided, copyright on screenshots. We pre-flight every build against these. Average review time is 24–48 hours.
How much will store ongoing fees cost?
Apple Developer Program: R1 800/year. Google Play Developer: R450 one-off. Apple IAP: 15–30%. Google Play Billing: 15–30%. Push notifications: free on Firebase + Expo at typical volumes. EAS Build (CI/CD): free or ~R500/mo depending on build minutes. Sentry/Crashlytics: free tiers usually sufficient.
Can the app work offline?
Yes — and on SA networks it should. Our Production App tier and above include offline-first architecture via WatermelonDB or similar: read + write while offline, optimistic UI, sync-on-reconnect with conflict resolution. Critical for field-team apps, transit apps, and any app used outside major cities.
What about OTA updates — do they really work?
Yes — for non-native JavaScript/asset changes. EAS Update lets you ship code changes within hours, no store review required. The only thing OTA can't do is change native code (added a Bluetooth library, etc) or change app metadata. Bug fixes typically OTA same-day; native changes follow the store review cycle.
Will you maintain the app after launch?
Optional. 90-day defect warranty included. After that, you can take 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 at least year one.
What if we already have iOS but no Android (or vice versa)?
Common situation. We can rebuild your existing app in React Native to add the other platform — usually faster than building a native counterpart from scratch. We can also run the existing native app alongside a new RN app during transition. We'll honestly tell you which approach makes sense at first call.

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

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