There are a number of important differences between simulators and real devices, some of which are:
- Fulfillment of code signing restrictions on some APIs (can be enabled on the simulator, but disabled by default)
- The nuances of opening network connections (which is more difficult if you want it to always work on a real device)
- Storage I / O performance (i.e. loading / saving data from an SD card)
- Math performance with floating point (the real device does not have FPU, so its slower)
- Overall performance (the simulator is usually faster, for the most part)
So, for 99.9% of your development, the simulator is fine. But you should still test on a real device. Also, please make scalable user interfaces that dynamically sort themselves by screen size. Every time I see a user interface depending on the size of the device, it makes me want a weird developer. (because they either have zillion builds of their application, it inflates it all the way with tons of fixed-size graphics)
source share