In recent years, the gadgets and gizmos industry has enjoyed a welcome boost in activity with the added popularity of portable devices such as the iPhone and other branded smartphones. These devices incorporate applications and features that were previously only available on desktop and notebook computers. However, since these portable devices are not designed to replace PCs, with less memory, varying operating systems/platforms, smaller display and less processing power, programming them requires a different approach from traditional programming.
When developing an application for portable devices, programmers or developers need to consider their target platform. With the iPhone or Android-based smartphones having the largest market shares (mainly due to the thousands of applications available in the online marketplace), many software developers target these primary markets. There are many other platforms available, of course, such as those powered by Windows Phone, Symbian or Blackberry but the process involved is similar for all. Please bear in mind that there are no set rules for the process with exceptions for many stages – some applications will work on several platforms, it purely depends on the programming language used.
The Programming Process
Once the target platforms are identified, the developers will know which languages they need to use for the particular platforms involved. Applications for the Android Market will need to be programmed using mainly Java with options for C or C++ while the iOS (as used on the iPhone) will require Object-C or Objective-Pascal to be used.
Software for debugging the code to make sure it is error-free is typically included in the developers pack by the owners of the platform. Most programming work is carried out in a workstation environment since it would be highly impractical for programmers to carry out their tasks on the actual portable devices. For this reason, emulators are used to simulate the portable devices on your desktop machine. These emulators allow the code produced to be tested in a virtual environment. Apple, Android etc. all provide emulator tools for developers in order to encourage the development of new applications for their platforms.
Complete development environments are available by using applications such as Visual Studio, Flash Builder or Eclipse. Once again, the development environment will depend on the target platform. It is common practice for bigger software development companies to target multiple platforms. Since each platform will have its own proprietary installation format, this is automatically considered as part of the development process.
While this is a very simplified outline of the process involved in programming portable devices, it is clear that there are some specific skills involved that will not be part of the skill set of a typical computer programmer. Programming for portable devices is a new industry area, demanding innovative skills, concise coding and extensive knowledge of mobile platforms and the changes involved in new platform releases or updates. Programming areas of expertise could include graphics design, security apps, GPS features or basically anything else you can imagine.
Picture: HLPhoto – Fotolia