Arrival of mobile web has created some doubts in many people’s mind and brought us back to the fundamental question that is “what is a mobile application”. There has been a widespread notion that if an application can run on a browser that is almost sufficient for mobile enablement and experience. Popularity of tablets has strengthened this notion further. Here is my take on this topic.
An application is actually a mobile application if and only if the following design aspects are considered in developing that application. These aspects make the mobile application unique. Special efforts have to be put into the project to really “mobile enable” an application which requires additional infrastructure support (i.e Middleware, connectivity and management functions)
1. Form factor and user interaction pattern
Application functionalities have to be downsized to fit into the appropriate mobile experience. These functional optimizations need to be considered both from screen real estate availability perspective and native user interaction patterns on that device type (E.g. Context menu, navigation, touch experience etc.,)
2. Native integration
This one makes the mobile application “really” a mobile application. Native integration like phone call, barcode scanners etc., is not possible from a normal desktop. This introduces a need to rethink the application use case specifically from mobile perspective. It adds more functionality and value to the existing application
3. Push and notification
Applications need to be alert driven where applicable. It is not a great idea to expect users to go and search for his activities/tasks against the backend system all the time from a mobile device.
Mobile world is much bigger than smart phone world. In order to enable all mobile devices we should also think of scenarios related to SMS, MMS (E.g. Campaigns in CRM, One time password distribution in banking etc.,). Mobile is not just User Interface
5. Efficient utilization of local resource
It is a bad idea to have chatty communication with backend for each and every user action. Local resources like memory and storage have to be utilized efficiently with an effective cache. In some of the scenarios it could even mean data synchronization to keep the data on the device at the latest state
Mobile world is not within the enterprise firewall. They are connected from the internet. It is not a good idea to have VPN connection to access the application data. There is a need for infrastructure support to overcome this connectivity hurdle including enterprise identity mapping and authentication schemes
7. Enterprise readiness
Please do not forget the aspects around security, upgradability and supportability. Point 6 and 7 makes a mobile application an enterprise mobile application.
If we consider all the above aspects then I would conclude in the following way
- Hybrid web or native is the way to go for mobile application enablement
- Mobile Infrastructure (middleware and management functions) to enable mobile experience is inevitable