Web-enabled mobile devices have opened up a plethora of development options for programmers and designers. With so many mobile platforms available, covering all bases and developing native applications for each mobile operating system is not practical. A nonexhaustive list of mobile operating systems includes:
Each of these operating systems has its own development environment and programming languages. For example, Apple’s iOS uses the Cocoa development environment and the Objective-C programming language, whereas Android is built on Linux with development in Java. Unfortunately, the smallness of the devices belies the complexity of the underlying software. Even if we ignore the prospect of having to learn another programming language, we’re still faced with large and complex operating systems that provide a significant learning curve in and of themselves.