Build your app in Arabic first, not translated later
Most of the apps I have shipped were for users in Saudi Arabia. In almost every one, the first design arrived in English, and Arabic was a column in a translation sheet. The app worked, technically. It just never felt like it was made for the person holding the phone.
Now, when a product is for the Gulf, I push for Arabic to be the first language from day one. Here is what that changes in practice.
Right-to-left is more than flipping the screen
Flutter mirrors most layouts for you when the locale is Arabic. That is the easy 80 percent. The rest is where users notice:
- Icons that mean direction (back, next, send, progress) must flip. Icons that are objects (a phone, a camera, a play button) must not.
- Mixed text needs care. A sentence in Arabic with an order number, an English brand name or a price can render in the wrong order if you do not mark the direction of each part.
- Swipe actions, carousels and progress bars should move the way an Arabic reader expects, from right to left.
Write the Arabic, do not translate it
A literal translation of English UI copy reads like a manual. Gulf users expect short, warm, natural Arabic, and they notice when a button says something no person would say. I prefer that the Arabic copy is written first by someone who speaks the market, and the English follows it.
Fonts matter too. Many Latin fonts have a weak Arabic fallback, which makes Arabic text look smaller and heavier than the English next to it. Pick an Arabic font on purpose and check line height, because Arabic needs more vertical space.
Search has to understand how people type
Arabic users type the same word in several ways: with or without hamza, ة or ه at the end, ى or ي. If search compares raw strings, people get no results for things that exist. Normalize both the query and the data before you compare them, and test with real queries from real users.
Numbers, dates and prices
Decide early whether you show Western or Arabic-Indic digits, and keep it consistent across the app, the receipts and the notifications. Show prices with the currency the way people read it locally. Small things, but they are exactly what makes an app feel local or foreign.
The store listing is part of the product
An Arabic app with an English-only store page loses people before they install. Write the listing in Arabic first and make the screenshots show the Arabic interface.
Why it pays off
Building Arabic-first is not more work if you decide it at the start. It is a lot more work if you bolt it on at the end, because every screen gets touched twice. That is the main reason we built Dowirly in Arabic from the first line of code, instead of translating an English product.