Skip to content
All insights
MobileArchitecture

Native or cross-platform: decide from the requirements

Aaron WylieJanuary 15, 20256 min read

The native-versus-React-Native argument is usually conducted as a matter of taste. It should be a short conversation about what the app has to touch.

The question comes up in the first week of every mobile project, and it tends to get answered by whichever technology the loudest person in the room used most recently. There is a better way to decide, and it takes about an hour.

Write down what the app touches

Cross-platform frameworks are excellent at screens, navigation, forms and API calls. They get progressively less excellent the closer you get to the hardware.

Go native when the app depends on:

  • Sustained Bluetooth work, especially background scanning
  • Camera pipelines beyond "take a photo"
  • Background location or long-running background execution
  • Tight platform integration: widgets, watch apps, CarPlay, App Clips
  • Anything where a new OS release changing behaviour is a business risk

Go cross-platform when the app is mostly forms, lists, auth and API traffic - which, honestly, is most business apps.

The maintenance argument cuts both ways

One codebase sounds like half the maintenance. In practice it is one codebase plus two platform-specific edge-case files plus a dependency on the framework keeping pace with OS releases.

That is still usually less than two native codebases. But it is not half, and budgeting as if it were is where cross-platform projects go wrong.

The honest tiebreaker

Who maintains it after we leave? A cross-platform app handed to a team with two native developers is a bad fit regardless of the technical merits, and a native pair handed to one generalist is worse.

Match the choice to the team that inherits it. That constraint is usually more binding than anything on the feature list.

Ready to build something that lasts?

Tell us what you are trying to ship. We will tell you how we would approach it - scope, stack, and timeline - before you commit to anything.