Below are five quick things you should not assume as a mobile developer.
- Don’t assume you have network connectivity - What would happen if I launched your app and the device was not connected to the network? Will you show the user a white screen? black screen? something else that makes it look like the app crashed? Could you have stored some data locally to show the user? Network connectivity is a gift. It should not be expected. If you can’t do anything useful without the network, at least tell the user to try your app again when they have network connectivity.
- Don’t assume you have GPS - Today it may seem like every mobile device has a GPS receiver, but you really cannot assume that you do. As a corollary you shouldn’t assume that you can quickly get a GPS fix for your cool location based service application. Again, try to find a way to provide value to the user in the absence of GPS. If you really do need to get a GPS fix, make sure your UI informs the user that you are waiting and give them a way to cancel.
- Don’t assume the device can make voice calls - Not every smart mobile device is a phone. Think iPod Touch.
- Don’t assume the device has a touch screen - Mostly this is a warning to Windows Mobile developers. Remember that Windows Mobile Standard devices DO NOT have touch screens. If your app really can’t work without a touchscreen, do everything you can to discourage a user from downloading it. Secondly, if they do download it, be polite and give them an error dialog indicating that the app is only compatible with touch screen devices.
- Don’t assume the device has the latest super fast processor - While you probably do, many of your users do not. They are one or two hardware revisions behind and the app is going to run a lot slower on their devices. Make sure you test on those devices before you ship.