Your app has just gone out to both stores, and an hour later crash reports start arriving from one Android manufacturer’s phones only. A cross-platform mobile developer is the person who works out whether the fault sits in shared code, a native library or that vendor’s version of the OS, then ships a fix through two different review processes. React Native and Flutter developers write one codebase for Android and iOS, and the good ones still understand what happens underneath it on each platform.
These are two different skills, even though recruiters often search for them together. React Native uses JavaScript or TypeScript and the React model, while Flutter uses Dart and draws its own widgets. This page explains how to write the ad for whichever you run, gives you a template, then covers levels, screening checks, common mistakes and engagement types.
React Native and Flutter developer job description template
Choose one framework per post. Publish this as “React Native Developer” or “Flutter Developer”, remove every bracket for the other framework, and only keep both if you truly maintain apps in both.
About the role
[Company] is hiring a [React Native / Flutter] Developer to build [app name], used by [audience] on Android and iOS. You will work in a single [TypeScript / Dart] codebase, write native integrations when the framework runs out, and take releases through to the App Store and Google Play. You will be based in [city / remote] and report to [mobile lead or engineering manager].
Responsibilities
- Build and maintain app features in [React Native with TypeScript / Flutter with Dart] for Android and iOS.
- Structure the app and its state using [Redux Toolkit or Zustand / Riverpod or Bloc], with clear separation between UI and data.
- Write or integrate native code through [Turbo Native Modules / platform channels] for device features the framework does not cover.
- Handle offline storage, push notifications, deep links and in-app purchases where the product needs them.
- Profile and improve startup time, scrolling, memory use and animation smoothness on real mid-range devices.
- Monitor crashes and app health with [Firebase Crashlytics / Sentry] and fix the issues affecting the most users.
- Run releases through TestFlight, Play Console and [Fastlane / EAS / Codemagic], including signing and store review.
- Plan framework and dependency upgrades so the app keeps pace with new Android and iOS versions.
- Write unit, widget or component tests, and work with QA on device coverage before each release.
Requirements
- [X] years of mobile development, including at least one app live on both stores that you worked on.
- Strong [TypeScript and React / Dart and Flutter widgets], with a clear grasp of how rendering and state updates work.
- Experience with [the React Native New Architecture and Hermes / Flutter DevTools and performance profiling].
- Enough Kotlin or Swift to read and change native code, even if you do not write it every day.
- Experience integrating REST or GraphQL APIs, with authentication, caching and poor network handling.
- Experience with app signing, store submission and rejected builds.
- Comfort with Git, code review and automated build pipelines.
Nice to have
- Experience with [Expo and EAS Update / a Flutter code push service] for shipping small fixes between store releases.
- Experience moving an existing app to the New Architecture or across major Flutter versions.
- Knowledge of Material Design and Apple’s Human Interface Guidelines.
- Published libraries, plugins or open source contributions.
What we offer
- [Salary range] and [benefits].
- [Work mode] and [test devices provided].
- [Release or support rota, if any].
How the React Native or Flutter developer role changes by level
Junior developer
A junior builds screens and connects them to existing APIs inside an app structure someone else has set up. Ask for good language fundamentals and a small published app or a project they can run on a real phone. Native code and release management can wait.
Mid-level developer
This person owns features end to end and has been through enough releases to expect trouble. They choose how data flows through a feature, fix crashes from production reports and write a native module when needed. Ask for evidence of apps with real users, not tutorials.
Senior developer or mobile lead
Seniors set the app architecture, decide when native code is justified and own the release process. They plan upgrades, which matter more on cross-platform apps because every dependency has to keep up with two operating systems. Leads also advise on the framework itself, including when part of the app should stay native.
React Native and Flutter skills that matter most, and how to check them
- Shipped work. Ask which apps are live, what they personally built, and what crash rates looked like after release. Open the app on your own phone during the interview and discuss what you see.
- Rendering knowledge. For React Native, ask why a long list drops frames and what they would change, from memoisation to list virtualisation. For Flutter, ask how they would find unnecessary widget rebuilds and what the performance overlay tells them.
- The boundary with native code. Ask them to describe a feature that needed Kotlin or Swift, such as background location or a payment SDK. A strong candidate explains how the two sides connect and how they tested it on each platform.
- State and offline behaviour. Describe a form submitted on a train with no signal. Good answers cover local queues, retries, conflicts and what the user sees meanwhile.
- Release discipline. Ask about a store rejection or a bad release. Look for staged rollouts on Google Play, phased release on the App Store and a realistic view of what can be fixed over the air, since store rules limit what can change without review.
A useful practical is a small repository with a planted performance problem and a failing build. Reviewing it with the candidate says more than asking for another to-do app.
Common React Native and Flutter job description mistakes
- Advertising both frameworks in one post. The title may catch more searches, but it tells applicants you have not decided, and it invites people strong in neither. Fix: pick the framework you run and keep the other as a bonus line at most.
- Calling the role a “mobile developer” with no platform detail. Native Kotlin and Swift developers will apply for a job they do not want. Fix: put the framework in the title, and hire a native developer separately if the app is mostly platform-specific work.
- Assuming a React web developer is ready on day one. The React model carries over, but navigation, gestures, native builds and store releases do not. Fix: ask for mobile release experience, or plan and advertise a ramp-up.
- Promising no native code at all. Many apps end up touching Kotlin or Swift. Fix: state how much native work the role involves and who supports it.
- Forgetting the state of the app. Rescuing an old React Native app stuck on the legacy architecture is a very different job from a new Flutter build. Fix: give the framework version, the age of the app and its known problems.
Contract, contract-to-hire or permanent: which suits these developers
Contract developers fit a first version, a rebuild from separate native apps into one codebase, or a major upgrade with a defined scope. An experienced contractor can set up the architecture and release pipeline quickly, but ask for documentation and a handover, because mobile build setups are easy to lose when the only person who understands them leaves.
Contract-to-hire makes sense when you are unsure whether the developer can carry the app alone. Watching them manage a real release, from the first build to store approval, is the fairest trial you can run.
Permanent hiring suits a product where the app is the business and releases never stop. If you want help with the search, Zilo AI will hire React Native and Flutter developers in India on contract, contract-to-hire or permanent terms, screened on apps they have shipped, including architecture, performance, crash handling and store releases. Our IT talent page covers native mobile, QA and backend roles for the rest of the team.
Frequently asked questions
Should one job post cover React Native and Flutter?
Usually not. Use one framework per post, with that framework in the title and the job description. The languages, tooling and debugging habits differ, so a combined ad reads as uncertain and draws weaker matches.
What is the difference between React Native and Flutter developers?
React Native developers work in JavaScript or TypeScript and render through platform components, so React web knowledge transfers well. Flutter developers work in Dart and render with Flutter’s own engine, which gives close control over visuals across devices.
Do we need a cross-platform developer or native developers?
Cross-platform suits products that look alike on both platforms and need one team to move quickly. Native Kotlin and Swift developers suit apps that depend heavily on new platform features, demanding graphics or deep device integration.
Can a React web developer do React Native work?
Often, with time. Components and hooks transfer directly, but mobile navigation, native builds, memory limits and store releases all have to be learned, so screen for those gaps directly.
If you would prefer a shortlist of developers with shipped apps behind them, Zilo AI can handle the search. Get in touch with the framework you use and the state your app is in today.
