5 reasons why programming for mobile devices is hard

5. The huge range of capabilities of the device – basic phone calls, text messages,  to email, web surfing, watching tv channels and even GPS navigation ….and those actually used

4. Testing is a pain- either on the device or using simulators

3. The huge range of  display output sizes and types

2. The what seems like millions of user input styles : pens, styluses, keypads, keyboards, touch screens, voice commands

1. The always evolving and growing of the insanely diverse set of users – people with different technical backgrounds  across different ages, cultures, and environments ….