ShipIntermediate5h

Testing on devices.

Simulators, real devices, and TestFlight/internal testing.

What is device testing?

Device testing is verifying your app on real hardware and with real users before release. Simulators are convenient but lie about performance, camera, GPS, and gestures. TestFlight (iOS) and Play internal testing distribute pre-release builds to testers.

Why it matters

An app that works in the simulator can fail on a real phone — slower, different sensors, real network conditions, real touch. Catching those issues before release, and getting feedback from beta testers, is what prevents a flood of one-star reviews on launch day.

What to learn

  • Simulators/emulators versus real devices
  • What simulators cannot test: camera, GPS, performance, push
  • Distributing builds with TestFlight and Play internal testing
  • Recruiting and managing beta testers
  • Collecting crash reports and feedback
  • Testing on old and low-end devices
  • Automated testing where it pays off

Common pitfall

Testing only on a recent, high-end phone or the simulator, then shipping to users on older, slower devices where the app is sluggish or broken. Performance and layout problems hide on fast hardware. Test on a real, ideally low-end device before release, because that is what many of your users actually have.

Resources

Primary (free):

Practice

Build a release version of your app and run it on a real device, exercising the features simulators cannot test. Distribute it to at least one other tester via TestFlight or Play internal testing and collect their feedback. Done when the app has run on real hardware in someone else's hands.

Outcomes

  • Test features simulators cannot, on real devices.
  • Distribute pre-release builds to testers.
  • Collect crash reports and beta feedback.
  • Verify performance on low-end hardware.
Back to Mobile roadmap