Hebrew and RTL: where the choice gets practical
An Israeli app is almost never pure Hebrew. One screen can hold a Hebrew heading, an English brand name, a price in shekels, a phone number and a date. All three stacks can render that correctly. The work just sits in different places.
Layout mirroring
In RTL the whole interface flips: the back button points right, lists align right and progress bars fill from right to left.
- Native: on iOS, system components flip automatically. On Android, you set `android:supportsRtl="true"` and use `start` and `end` in place of `left` and `right` (Android docs).
- Flutter: the `Localizations` widget creates a `Directionality` from the active locale. Build with `EdgeInsetsDirectional` and `AlignmentDirectional`, and the layout follows the language, including when the user switches language inside the app.
- React Native: direction runs through `I18nManager`. Changes to `allowRTL` and `forceRTL` take effect on the next app start, and the docs advise against forcing RTL in production because it needs a full restart.
That last point shapes the product. If users will switch between Hebrew and English inside a React Native app, you need a planned reload flow (Expo handles it with `Updates.reloadAsync()`). Make that call in design, before the first screen is built.
Hebrew, English and numbers on one line
Direction inside a sentence follows the Unicode Bidirectional Algorithm. It works most of the time and breaks at the edges: a period that lands at the wrong end of the line, an English product name that drags the punctuation after it, a phone number next to a Hebrew word. Android offers `BidiFormatter.unicodeWrap()` for dynamic values inside Hebrew strings. In every stack, one habit prevents most of these bugs: test screens with real mixed content from the start.
Two rules from Apple's RTL guidelines apply to every stack. Keep the digits inside a number in their original order, and reverse the order of numbers that show a sequence, such as steps or a rating scale. Flip icons that show direction, like a back arrow. Keep logos, checkmarks and photos exactly as they are.
Fonts
Hebrew has no capital letters, so next to uppercase Latin text of the same size it looks small. Apple suggests setting the Hebrew about 2 points larger. Choose a typeface whose Hebrew and Latin letters match, check line height with both scripts, and review it on real devices from both platforms.
Dates, numbers and currency
Israelis read dates day first. Standard locale formatting shows the same date as 27.9.2026 in Hebrew and 9/27/2026 in US English, and in Hebrew the shekel sign follows the amount. Let the locale do the formatting. Flutter uses `DateFormat` and `NumberFormat` from the intl package, and iOS and Android have built-in locale formatters. A hand-built date string breaks the moment a user changes language.
Screen readers in Hebrew
VoiceOver supports Hebrew, and Android has TalkBack. Both read what your app exposes to them. Flutter builds an accessibility tree and passes it to the platform's screen reader. React Native works through the platform's views and adds `accessibilityLabel`, plus an iOS-only `accessibilityLanguage` that tells VoiceOver to read an English brand name in English inside a Hebrew app. Test with the screen reader set to Hebrew, on real devices. Our mobile app testing guide covers the device matrix.
When native is worth it
Native pays off when the app's core feature pushes the phone hard.
Moovit is a native app. It processes real-time transit data from millions of users, and we built a full GIS structure from scratch so the spatial processing on the phone would stay light on a commuter's battery. Moovit now serves 1.7 billion users in more than 3,500 cities across 112 countries. IBI Smart is a native iOS and Android platform for real-time trading in Israeli and US stocks, with more than 500,000 users. For Arad Technologies, we built native Android and iOS apps and a web portal in 6 months, fed by real-time IoT data from smart water meters.
The signals: heavy maps, continuous location, Bluetooth and other sensors, real-time data at scale, and security certification in finance, health or government. Our web vs. mobile post lists the five situations where native wins, so we won't repeat them here.
When cross-platform wins
Most business apps are forms, lists, bookings, catalogs, payments and notifications. Cross-platform handles all of them well, and one team ships both platforms together.
Care Laser is a good example. We built a cross-platform hybrid app with real-time sync to the clinic chain's existing CRM and scheduling system. Development took 10 weeks, the MVP went live on the App Store and Google Play, and the app then rolled out to 33 branches. Espresso Club also runs on a cross-platform app and website, where customers order capsules in one tap.
Cross-platform is also the natural choice for an MVP, whose job is to test demand fast. Our mobile app development process guide explains why the stack decision belongs in the design stage.
React Native or Flutter? Choose React Native when your team writes React, when a website is planned alongside the app, or when you want each platform's own components. Choose Flutter when the brand calls for one highly custom interface, identical on both platforms, with rich animation. For Hebrew: with React Native, plan the language switch up front. With Flutter, use the directional classes from day one.
What the choice does to your budget
Our published prices for mobile development start at $30K for an MVP and $80K for a full product. The stack you choose moves the final number:
- A shared codebase cuts development cost by up to 40%, because one team writes and tests one app.
- Native means two codebases, two specialists and two release tracks for the life of the product.
- Every stack needs yearly work when Apple and Google update their systems. Cross-platform adds framework and library upgrades on top.
- Moving from cross-platform to native later is a rewrite. Make the call with your three-year roadmap in view.
Hebrew adds some work in any stack: an RTL design review, bidirectional text testing and screen reader checks. Planned from the first sprint, it costs far less than a fix after launch.
Frequently asked questions
Flutter or React Native: which is better for a Hebrew app?
Both render Hebrew and RTL well. Flutter flips the layout from the active locale and handles a language switch inside the app at once. React Native applies RTL changes on the next app start, so an in-app switch between Hebrew and English needs a reload flow. If your team already knows React, React Native is usually the faster start.
Is cross-platform development cheaper than native?
Usually, yes. One codebase can cut development cost by up to 40%. The saving shrinks when the app needs a lot of platform-specific code for maps, sensors or background work.
Can a cross-platform app feel native?
For most business apps, yes. React Native uses the platform's own views. Flutter draws its own widgets, which look the same on both platforms and can follow each platform's style. Apps built around heavy maps and real-time data, like Moovit, are where native still leads.
How much does it cost to develop a mobile app?
At Globalbit, a mobile MVP starts at $30K and a full product starts at $80K. The final number depends on scope, integrations and the stack you choose.
Not sure which stack fits your app? Tell us what it has to do and who will use it, in Hebrew, English or both, and we'll recommend a stack with the trade-offs laid out. Talk to us.