List what the app needs from the device

Ordinary account screens differ from demanding camera, Bluetooth, location or background-processing requirements. Identify the platforms and devices you actually need to support. Build a small proof of the highest-risk feature before selecting an approach solely because it promises shared code.

Prototype the hardest device behaviour first

An example field-service app must scan labels, keep photos offline and upload work after connectivity returns. A polished login screen will not reveal whether the chosen approach handles these requirements.

Prototype the hardest device behaviour first
Prototype taskWhat to measure on target devices
Scan damaged labels in poor lightSuccessful reads, retry behaviour and camera permissions
Capture work with no networkLocal persistence after the app is closed or the device restarts
Reconnect after conflicting editsConflict handling, upload resumption and duplicate prevention

Compare the entire delivery effort

Shared code can reduce duplication in some areas, while platform-specific behaviour still needs design and testing. Native implementations may require separate work across platforms. Compare backend development, device testing, release management and specialist availability as well as the number of codebases.

Plan for the next platform update

The choice continues to matter after launch. Assign responsibility for framework upgrades, device regressions and store requirements. Check how a critical dependency is maintained and what happens if it no longer supports your use case. A suitable approach is one your team can operate, not just demonstrate once.

Before you proceed

  • Prototype the most demanding device feature.
  • Compare delivery and maintenance on both platforms.
  • Agree target devices and a release-support plan.

Put this into practice

Related guides