Building a React Native app for African markets is a different sport from building one for the US or EU. The phones are older. The networks are flakier. The expectations are higher, not lower.
Here's what we've learned shipping mobile apps to thousands of devices across Nigeria, Ghana, and Kenya.
Performance is non-negotiable
Your target device is a 3-year-old Android with 3GB of RAM on a 3G connection. If you build for an iPhone 15, you've already failed. We test on a Tecno Spark and a Samsung A12 every single sprint.
Real wins: image lazy-loading with blurhash placeholders, list virtualization with FlashList, never render anything off-screen, ship updates with EAS Update so we don't need a store review for every patch.
Distribution matters more than features
App size matters a lot. We obsess over keeping our apps under 25 MB. Every dependency is audited. We replace Lottie with simple CSS animations everywhere it doesn't add value. We split assets behind a download-on-demand layer.
Offline is a feature, not an afterthought
Half of your users will lose connectivity in the middle of every session. Cache aggressively. Show the cached state by default. Sync silently in the background. Never block UI on a network call.
What we'd do differently
Start with telemetry. We didn't have proper performance tracing on the first three releases — we were guessing. Once we wired up Sentry + a custom React Native performance probe, every sprint got better.
Africa is a great forcing function for engineering quality. If your app works here, it works anywhere.