In 2011, smartphones and tablets are increasingly become a favored device for many people, leaving some PC software developers with a dilemma of whether they need to diversify their product to smaller mobile computing platform. Some have successfully transitioned, but many are still struggling with the process. Mobile development has received a good deal of attention in the past two years, but unfortunately many developers still don’t know what it takes to build quality mobile apps.
For experienced developers, making an application is relatively easy, however creating a “favorable user experience”, is often difficult. The emergence of mobile computing devices with their smaller screens means that serious adjustments must be made. Instead of building an app for a 19” or larger PC screens, they have to cope with the challenge of cramming everything inside a tiny 3” display. When it comes to developing an app for smartphone, every pixel counts. Even tablets with larger screen still need to get special attention, because their resolutions are far below current desktop monitors. It’s necessary to properly accommodate touch interfaces, smaller keyboards and battery constraints. Developing a mobile app may not be easy, but these are a few things to consider:
Focusing on user experience.
It’s important to design the simplest and the most intuitive navigation possible to quickly and accurately to take users to the desired services or contents. Guide users directly to what they want without requiring them to do unnecessary tasks. The navigation should also be based on what users usually do. Nokia, for example, offers a way to make it easier to put icons on the screen. Developers must be aware that they need to integrate application logic and UI while being mindful of what the app should do. It’s a bad idea to overload users with too many interactions and information. Smartphones and tablets are meant to bring practicability, not complexity and extra work.
Taking into account memory and bandwidth constraints
For PC developers, one of the biggest changes they find in mobile devices is physical memory limitation. It’s common for a PC to have 4 or 8 GB of RAM, but a smartphone may only have 128MB. A photo viewer app, for example, shouldn’t load 100 pictures in the background simultaneously as the phone will run out of RAM very quickly. However, there are work-around that can be made; for example, the app only loads 10 pictures at a time or show smaller-resolution images.
True, more LTE devices are coming, but at the moment, most phone users are still using crowded 3G network, as the result bandwidth resources for average smartphone users are still far behind to desktop PC and its more reliable DSL connection. A mobile app that requires Internet connection should be able to work well on a sluggish 3G network.
Choosing between native and Web app
There is a big difference between the two. With native development, the application leverages device’s capabilities and runs locally, while the Web app runs in the cloud via the mobile OS using the WebKit facility. Mobile app can still appear to be stand-alone app, because it uses the WebKit browser services. This is something that developers should look very carefully, by balancing all the trade-offs. Web-based development is often simpler and less expensive, but unfortunately, on slow 3G network, users might not have the kind of experience they expect. Even in an ideal situation, touch interfaces and location-based services should be shortchanged. It’s quite difficult to achieve a refined control over touch mechanism in a Web development project.
Taking into account user location
Location services are becoming more popular in the smartphone industry and they give developers something new to consider. Leveraging user location isn’t something that most developers would think through when building an app, both for desktop and Web environments. Location services allow users to provide a more customized and better experiences, such as an app that add features based on users location or providing locally relevant ads. Location services programming is quite straightforward and developers may only need to know how to work with new interfaces. A photo viewer app, for example, can add a feature to recommend users to see pictures taken in the same place previously, this may only involve adding location tag on a newly created picture.
Taking into account server-side data sync
Fast and reliable data sync is always critical for OS-based mobile devices. In the future, users will rely more on server-side (cloud) synchronization. Syncing from a local computer could be the most reliable, but it may not be too versatile.
Proper touch interfaces designing and coding.
PC developers and designers transitioning to smartphone and tablet area should have a good grasp on touch interface. In this matter, designers have an increasingly more important role as they need to make the best of limited screen real estate. Developers should understand about likely user behaviors when using small touch devices, translate their knowledge to touch interfaces and employ an efficient code.
Taking into account limited hardware resources.
Certainly, smartphone processors are getting faster, latest models already have dual-core CPU and in the near future, a model with 1.5 GHz will be set loose. Even so, these facts shouldn’t make developers to be overzealous and they should prioritize on what users can get from the experience. Obviously, not everyone has a 1.2GHz dual-core Snapdragon processor in his pocket, so developers shouldn’t forget about users of low-end smartphone, with processors slower than 600 MHz.
Taking into account user mistakes
Once in awhile, users will press the wrong buttons, especially if users are unfamiliar with the interface or if the touchscreen smartphone has a particularly small display (for example, Xperia X10 Mini). It is important for an application to allow some slipups and help fix mistakes without requiring too much effort.