Creating an application for mobile phone is easy for a developer …
different mobiles hardware (screen size, keypad codes, memory size …)
incompatible Java architectures (J2ME MIDP 1.0 & 2.0, DoJa …)
manufacturers specific implementations (NokiaUI, Vodafone VSCL , SPRINT…)
incomplete or incorrect implementations
distribution or local constraints (naming conventions, languages, logos…)