With over 5 billion mobile users worldwide, it’s clear that mobile applications are the cornerstone of our daily lives. Applications range from productivity tools to entertainment and games, and the usage of day-to-day applications is continually evolving with the influence of technology and cultural shifts. For example, certain technological achievements have enabled us to do more with our phones each year. Recent technological achievements include: greater mobile data bandwidth, Cloud Computing, feature-rich Smartphone devices, and adoption of ever improving industry standards. These technology enablers have provided the platform for mobile cultural shifts that include: use of social networks through mobile devices, increased use of text messaging, and more use of mobile cameras in unique ways (streaming video, barcode scanner).
Even though 93% of Americans have a mobile phone, there are still many unique challenges that exist when developing mobile applications, especially when designing for the expectations of today’s consumer. Today’s user is unlike the computer user of yesterday--multitasking is a way of life, typing is preferred over handwriting, staying connected is essential, zero tolerance for device delays, and the lines between consumer and creator are blurring. There are some interesting constraints in mobile computing that haven’t presented themselves in User Interface development for a long time, going back to the advent of the common desktop monitor when UI developers had to pay attention to screen size, memory usage, and limited disk space. Mobile computing constraints include: maintaining awareness of a limited screen size, allocating and releasing memory for devices with limited memory (for the time being, until mobile devices are equipped with larger memory capacity), security concerns with mobility, accessibility, and potential to lose a phone easily; and accounting for precision of the user (i.e. fat fingers punching small keys). These limitations can also be coupled with the realization that even more challenges exist when you factor in the number of device platforms, programming languages, adoption of the tablet device with unique parameters, wireless carrier contracts and exclusivities, incompatible radio frequencies across devices, and demand for backwards compatibility. Conclusion: developing mobile applications is not necessarily as easy as it looks.
The good news is that there are a plethora of tools, frameworks, and platforms to help us develop applications and streamline some of the more tactical aspects of development that often requires a lot of plumbing. Most development environments are cloud-based so that users don’t need to stand up the infrastructure in-house to develop applications. Most platforms have a standard development kit (SDK), emulator tools, and configurable attributes so that development and unit testing can be accomplished without even owning a mobile device or having a certain carrier’s plan. Coupled this with some of the more mature integration and interoperability tools available on the market, including Oracle ADF, Rho Mobile, and Oracle Mobile Framework to allow cross-platform and enterprise system integration. These provide framework building blocks that include: launching and displaying applications, displaying controls, responding to user actions, accessing the Internet, managing user preferences, playing sounds and videos, and much more.
There are some leading practices to mobile development. These can range from providing end users immediate feedback to their action (such as highlighting the item they selected), making applications forgiving to account for fat fingers, and to always follow the KISS philosophy (Keep it Simple Stupid). The economics of developing an application are very compelling, since a developer is on average entitled to a 70% fund of what is sold in the platforms application store, free promotion in the application store and community, and the low barriers to entry for getting started.
With nearly 70% of the Fortune 500 having budgeted plans to launch mobile solutions for their enterprise, it only makes sense for today’s IT developer to spend time learning and adjusting to the nuances of architecting, designing, and building mobile applications.