by Dov Rosenberg –
Every company is undergoing an IT transformation to address their growing mobile customer base and the changing business processes that are required to properly service that new constituency. When web development was first introduced, it eliminated the software distribution problems that client-server architecture created. Now it was possible to interact with large numbers of customers in a self-service manner without having them download and install your software. This was the birth of the e-commerce paradigm.
Web-based software had to overcome many obstacles to achieve widespread acceptance. Users were accustomed to rich user interfaces that the client-server applications could provide with their native operating system libraries. Over time, JavaScript libraries evolved on the web development platforms to mimic the rich user interfaces of native client-server applications. These libraries can provide user interface controls, client-side validation, and execution of server-side calls. The resulting web applications can be very complex with a lot of moving parts that can be complex and expensive to build and support. Web-based applications can infer a lot about the user from artifacts like HTML cookies, browser headers, and IP addresses. But, to prevent security problems, they are typically isolated from becoming too intimate with your web browser or the machine you are using. This is a good thing.
Back when Apple introduced the iPhone in 2005, the whole IT application infrastructure took a seismic hit. Mobile applications now have access to a wide range of services that provide very detailed information about the user and the environment in which the application is working. A web application only knows simple things like your IP address, the version of your browser, and operating system. A mobile application has access to your location anywhere in the world within a resolution of a few hundred feet; it knows your biometric information; it can tell the orientation of your phone – the list goes on. Bottom line – web applications are limited in how they can interact with a user, while a compelling mobile application can CHANGE how customers interact with a company. Let’s explore the mobile eco-system to better understand how up close and personal mobile computing really is compared with web development.
Apple was the originator of the mobile application revolution. The iOS operating system has evolved into a rich application development environment that allows the creation of very sophisticated applications that embrace a user-centric approach to computing. Android offers very similar features across an even broader set of devices. Generally speaking, mobile capabilities can be bucketed into broad categories:
Web applications have systems services that are typically server based. These services deal with state management, concurrency, and interprocess communications. Mobile System Services have to do all of those things, but they also extend into the hardware that is sitting in the user’s hand. Examples of System Services include:
Web applications don’t have access to this type of environmental information even while running on a mobile device. Web-based applications run in a “sandbox” designed to isolate them from the underlying hardware to prevent security issues. Mobile applications are also designed to run in a “sandbox”, but that sandbox has access to the hardware and services. A mobile application cannot typically interact with another mobile application at runtime except thru specially designated messaging mechanisms provided by the operating system. The richness of the data from the system services about the “context” of the user is orders of magnitude greater than what is available to a web application.
Mobile devices have evolved from simple handsets to mini computers that have impressive capabilities that are unmatched in most laptops. Back in the 1990’s, pocket-sized game controllers were all the rage with kids – before they had their own cell phones. Now cell phones and tablet computers are replacing multiple devices that people used to carry around all the time – game controllers, portable DVD players, portable music players, point and shoot cameras, pagers, and GPS devices. With the introduction of the smartwatches, we have finally realized the dream that the Dick Tracy cartoon strip came up in 1931 with his radio watch. Some of the common graphics and gaming frameworks that the mobile devices provide to application developers include:
Client-server applications used to be able to take advantage of the desktop operating system to provide a lot of these services. Web applications are limited to the browser. Mobile applications once again gain full access to some impressive hardware and software provided by Apple and Google right out of the box. Mobile applications can now mash together any of these services to create compelling new user experiences at the tip of your finger.
Application services provided by the mobile operating systems are blurring the lines between system level services provided by desktop computers in the past and commercial products that used to be sold individually to people as “personal productivity” tools. Anyone remember having to purchase an electronic address book program back in the day? Now many of those common utilities are bundled into your phone for free AND available to software developers to integrate into new products and services. Here are some of the application services that are available to mobile developers:
There are lots of interesting ways to tie these types of services into other devices that people use in their lives. Home automation frameworks can now control your entertainment system, security system, and lights. Health-related API’s are being integrated into medical devices like insulin pumps, blood sugar meters, cardiac monitors, fitness trackers, and doctor portals. Emergency responders are now trained to access the health information that people can store in their phones in the event of a problem. Once again, mobile devices have access to much more personal information than a typical web application.
Last but certainly not least, there is a class of services that mobile devices have access to that comes the closest to the capabilities of a web application – but then exceeds them by a mile. Media and web services are the links to the outside world and storage for your personal photos, music, notes, and panda videos. While some of these services are similar to those available to web applications, mobile applications can provide a much richer user experience in every case:
The interesting thing about the media and web services is the way that they can integrate with System Services, Application Services, and Graphics Services to provide complex applications like photo and video editing on a mobile device.
Enterprises tend to be very short-sighted when they first start transitioning to supporting mobile devices. They tend to replicate their existing web applications in a different format and end up supporting multiple code bases that do the exact same business process without adding any net business value. It is great to be able to re-use your service APIs for other things, but when you ignore the possibilities that fully embracing the technologies that mobile computing has available to it, you are missing the opportunity to re-engage with your customers in new and exciting ways.
Subscribe to receive more blogs like this from RCG