Skip to content
All insightsArticle

Flutter or native for an Arabic-first app? What actually differs in RTL

Updated · KBLabs

For most business apps in Arabic and English, choose Flutter: one codebase for iOS and Android, one team, and right-to-left support built into the framework. Choose native when the product lives on deep platform features. Either way, RTL quality comes from how the app is built, not from the framework.

Why Flutter is our default

Most of what we ship — Arabvesta, Taskeen, Sealife Connect, Fahem!, Retro-Z — is Flutter. One codebase means one team, one set of tests and the same behaviour on both platforms, which matters more than usual when every screen exists twice: once in Arabic, once in English. Arabvesta, built this way, passed App Store review on its first submission.

Flutter handles text direction at the framework level: when the locale is Arabic, layouts mirror and text flows right to left — provided the code uses direction-aware building blocks (start and end, not left and right) from the first screen. Retrofitting that later is where most “translated-feeling” apps come from.

When native is the better call

  • The product depends on platform features that Flutter reaches only through plugins or custom bridges: home-screen widgets, watch apps, complex background work.
  • Heavy camera, AR or media pipelines where every millisecond of native performance counts.
  • An existing native codebase and team that would have to be replaced.

Even then, the choice is rarely all-or-nothing: a Flutter app can call native Swift or Kotlin for the one feature that needs it.

What RTL actually involves

DetailWhat goes wrongWhat “done properly” looks like
Layout mirroringPaddings and alignments hard-coded as left/rightDirection-aware spacing from day one; every screen reviewed in both languages
IconsEverything flipped, including icons that shouldn’t beBack arrows and progress mirror; media controls, clocks and logos don’t
Mixed textPhone numbers, prices and English names jump around inside Arabic sentencesExplicit direction for embedded numbers and Latin text
NumeralsWestern and Arabic-Indic digits mixed on one screenOne rule per market, applied everywhere, including dates
TypographyA Latin font with Arabic fallback; cramped line heightA real Arabic typeface paired with the Latin one, with Arabic-specific line height
CopyArabic translated from EnglishArabic written for the reader, often first

How we work on bilingual apps

  • Both languages exist from the first design, not at the end.
  • Arabic copy is written, not machine-translated.
  • Every release is tested in both directions on real devices.
  • Store listings, screenshots and notifications are localised too — the first thing a user sees is usually the store page, not the app.

Planning a project? See a realistic timeline in a minute.

Estimate your timelineDiscuss your project
Read next

Have an RFP? Have an idea? Let's build it.

We reply to every inquiry within one business day. Tell us about your project, timeline, and what success looks like.