Native, Flutter or React Native is not a detail to leave to your vendor. It sets how many teams you pay, when your app reaches the App Store and Google Play, and what every update will cost you over the next five years.
If you already have a budget range from our Morocco mobile app development pricing guide, the next question is where that budget should go. The quotes you are about to receive will only be comparable if you have settled this question first, or if you require every vendor to justify their choice.
Here is what each option changes in practice for cost, timeline, maintenance and CNDP compliance, followed by a five-question checklist to decide for your own case.
Why the technology choice shapes everything else in the project
A mobile app typically lives five to seven years. Over that period, the initial build rarely accounts for more than 40% of the total cost: the rest is maintenance, updates forced by Apple and Google, new features and hiring. The technology you pick at the start weighs on every one of those items.
In concrete terms, it determines:
- how many codebases you maintain (one or two), and therefore how many developers are needed for every change;
- which developer profiles you will find on the Moroccan market, and at what rate;
- what the app can do without workarounds: sensors, biometrics, widgets, the latest operating-system features;
- your dependency on a vendor (Google for Flutter, Meta for React Native) and on its release calendar.
Switching technology after launch almost always means rewriting the app. That is why the decision belongs before the quote, not after it.
Native vs Flutter Morocco: the concrete differences
Three families of technology cover the vast majority of mobile projects in Morocco in 2026. Here is what they are, without unnecessary jargon, and what they mean for you as the client.

Native: Swift for iOS, Kotlin for Android
You build two separate apps, each in the official language of its platform. This is the approach Apple and Google recommend, the one that gets first access to every new system feature and the best performance. The trade-off is mechanical: two codebases, two teams or two profiles, twice the work for every change.
Flutter: one codebase, backed by Google
Flutter lets you write a single app in Dart that runs on iOS and Android (and on web and desktop if needed). It renders its own interface, which gives an identical look on both platforms and smooth animations. It is currently the most requested cross-platform technology in Moroccan tenders, especially for business apps, marketplaces and loyalty programmes.
React Native: one codebase, JavaScript ecosystem
React Native, backed by Meta, relies on JavaScript or TypeScript and on each platform’s native components. Its main advantage in Morocco: React web developers are plentiful, and a company that already runs a React web platform can share part of the logic and the team. Its maturity has improved markedly with the new architecture, but the quality of the result depends more on the team’s discipline than it does with Flutter.
Kotlin Multiplatform and hybrid solutions (Ionic, Capacitor) also exist. They have their place for specific cases, but they represent a minority of projects and we do not cover them here.
Impact on budget: cost by technology in 2026
An app’s budget depends first on its functional scope. For an equal scope, the technology mainly changes the number of development days and the daily rate of the profiles involved.
Orders of magnitude seen on the Moroccan market for an MVP-type app (authentication, catalogue or content, notifications, one main user journey, simple back office):
- Flutter or React Native: roughly 120,000 to 300,000 MAD excluding VAT, with two to three mobile developers and one back-end developer.
- Native iOS + Android: roughly 180,000 to 450,000 MAD excluding VAT for the same scope, because two apps are written and tested, and because senior Swift and Kotlin developers are scarcer in Morocco.
For a complex app (integrated payment, maps, offline mode, several user roles), the ranges climb to 350,000 to 900,000 MAD cross-platform and can exceed 1,000,000 MAD native. These figures are indicative: always ask for a cost breakdown per feature, not a single lump sum.
Three nuances prevent bad surprises:
- The cross-platform saving is in the region of 30 to 40%, not 50%. Back end, design, testing and store publication cost the same whatever the technology.
- If your app targets a single platform (for example Android only, for a fleet of internal devices), native costs no more than Flutter.
- A native module added to a Flutter or React Native app (for a payment SDK or a sensor) is billed separately; budget 10,000 to 40,000 MAD per module depending on complexity.
Impact on delivery timeline
With an equivalent team, a cross-platform app ships roughly 30 to 40% faster than a pair of native apps, for the same reason it costs less: one build, one test cycle.
For an MVP, expect three to five months in Flutter or React Native, versus four to seven months native if both platforms ship together. Some companies choose to launch native on one platform first, then the second: that delays availability for part of your customers, which is acceptable for an internal app and rarely for a consumer app.
What the technology does not change: Apple’s review time (usually a few days per submission, longer if a rejection forces corrections), the time needed to write the specification, and acceptance testing with your own teams. In the projects we see go off the rails, delay comes far more often from a poorly defined scope than from the technology.
Maintenance and scalability: which technology ages best
This is where the choice weighs most over five years. Plan for 15 to 25% of the initial development cost every year for maintenance: iOS and Android system updates, library updates, fixes, small improvements.
Native: every update is done twice, but the tools are the platforms’ own. No intermediate layer that can break, stable documentation, and the certainty that whatever Apple or Google announces is available immediately.
Flutter: one codebase to maintain and a regular release cadence driven by Google. The main risk is dependency on community packages: if the package that handles your payment or notifications is abandoned, you have to replace it or fix it yourself.
React Native: same logic, with a larger but more heterogeneous ecosystem. Major version migrations have historically required more effort than in Flutter; the new architecture has narrowed that gap, but a React Native project left without updates for eighteen months becomes expensive to catch up.
The criterion that matters for a Moroccan business owner: in 2029, will you be able to find a developer in Casablanca, Rabat or Tangier to take over the project? Today, Flutter and React Native profiles are more numerous and slightly cheaper than senior Swift and Kotlin profiles. In every case, require that the source code, the Apple and Google developer accounts and the documentation are in your company’s name. It is the first thing to check in a contract, as we explain in our guide to choosing a Morocco IT services company.
When native remains unavoidable (payment, biometrics, performance)
Cross-platform now covers the great majority of SME needs. There are still cases where native is required, or at least where native modules will be needed:
- Payment and hardened security. Mobile payment SDKs (CMI, aggregators, e-wallets) are published native first; most now offer Flutter or React Native bridges, but confirm this with the provider before you sign, along with the date of their last update.
- Biometrics and advanced system features. Face ID, fingerprint, NFC, Bluetooth Low Energy, widgets, App Clips: available cross-platform through extensions, but with a lag of several weeks or months after each new release.
- Graphics-intensive performance. Games, augmented reality, real-time video or image processing: native keeps the edge.
- Banking or insurance apps subject to strict security audits: some auditors and risk departments require native. This is not a legal obligation, it is an internal policy to confirm with your banking partner.
- Single-platform apps: if you only target Android (field devices, apps for drivers or technicians), native Kotlin is often the simplest and cheapest choice.
Conversely, for a catalogue, a booking app, a customer portal, a loyalty programme, an internal management app or a marketplace, cross-platform is the rational choice in almost every case.
CNDP and mobile data: what hosting changes depending on the technology
Let us clear up a common misunderstanding first: Law 09-08 and the CNDP do not care about your app’s technology. They care about the personal data you collect (identity, phone number, location, payment data), the purpose, the consent, and where that data is stored and to whom it is transferred.
What changes with the technology is the default ecosystem. Flutter projects very often rely on Firebase (Google) for authentication, database and notifications; React Native projects on similar services (Firebase, Supabase, Expo). These services host data outside Morocco, which triggers specific formalities for international data transfers with the CNDP. A native app using the same services is in exactly the same position: the issue is the back-end architecture, not the app’s language.
What we recommend checking before you sign:
- Where will the back end and database be hosted? Hosting in Morocco (with a local operator or in a Moroccan cloud region) simplifies the process considerably; our Morocco sovereign cloud comparison details the options.
- Which third-party SDKs does the app embed (analytics, advertising, crash reporting), and what data do they send?
- Push notifications necessarily pass through Apple’s and Google’s servers: limit the personal content they carry.
- Who writes the privacy policy and prepares the declaration or authorisation request with the CNDP? It is not the developer’s job by default, and it must be in the quote if you expect it.
For the full process, rely on our CNDP Law 09-08 compliance checklist and check the current formalities on the CNDP website, as procedures change.
The five-question checklist to decide
Answer these five questions before writing your tender. They are enough to steer the choice in most cases.
- Are you targeting iOS and Android from launch? Yes: cross-platform. No, a single platform for the long term: native.
- Does your app need an advanced system feature in its first version? Bank payment SDK, NFC, biometrics, augmented reality, video processing: list them precisely and ask each vendor to confirm in writing whether they are covered cross-platform or require native modules.
- Do you already have a team or a web platform? An existing React team tips the balance towards React Native; a team with no mobile skills tips it towards Flutter, which is easier to scope.
- Who will maintain the app in three years? If you plan to bring it in-house, pick the technology you can hire for in Morocco. If you stay with a vendor, pick the one they genuinely master: ask for three apps published on the stores in that technology.
- What data do you collect and where will it be hosted? This does not pick the technology, but it dictates the back end, the compliance budget and the schedule; it is the same kind of trade-off as SaaS versus custom software.
One last piece of advice: ask each vendor to justify their recommendation against your answers, not against their habits. An agency that only ever proposes Flutter, or only native, whatever the question, is mostly telling you about its in-house skills.
What now?
Arrowlancer designs and builds iOS and Android mobile apps from Casablanca, in Flutter, React Native or native depending on your use case, with a back end hosted wherever your compliance requires. We start with a scoping workshop that answers the five questions above before any pricing; you can browse the full range of our services.
Still hesitating between native and cross-platform for your project? Contact us for a straight answer, before your tender goes out.
