Today’s multi-device landscape is unprecedented - there are PCs, phone, tablets, iPads, and most recently Phablets (phone + tablet); and if the recent pace of technological development is anything to go by, this is only the beginning.
Device diversity will continue to expand and enterprises must equip themselves with the ability to deal with the scenarios that this trend presents. Many enterprises are already embarking on mobile projects such as developing customer/employee/partner-facing apps, mobile portals, and mobile device and application management.
Based on customer insight, there are five key mistakes that organisations make when deploying mobile technology:
Trying to fit a desktop experience onto a mobile device
Today, a mobile workforce is critical to business success, but no matter how mobile employees need to be, the need to work offline remains. Email is a case in point - the productivity gains offered by mobile devices would be severely limited if users were not able to use them offline. Often, enterprises try to replicate complex desktop application features in mobile apps, greatly hampering the mobile user experience. The capabilities of mobile devices and PCs are different. Mobile devices lack the large screens for easy viewing; they don’t have a robust enough in-memory cache for fast data processing or even an external keyboard for quick typing.
Enterprises developing mobile applications instead should identify the critical, high value functions that users need on-the-move, leaving the broader functionality to be delivered by desktop applications. The application design must embrace the simpler, cleaner, touch-centric design principles for small screens as users will be tapping the menu on the device screen as opposed to using a mouse to click. Therefore, if a company requires users to undertake complex data entry via mobile, the application must break the data entry process into individual chunks that can be completed step-by-step. Such considerations are essential to enhancing employee productivity.
Excluding local storage in applications due to security fears
Data security is one of the critical challenges for CIOs and Data Controllers as businesses adopt BYOD. With the personal and business data blurring, the risks are many, which is perhaps why enterprises shy away from storing data on the mobile devices for any period of time. However, the rationale for local data storage in mobile applications is exactly the same as the reasons for local storage on network devices - i.e. to reduce network connectivity issues, improve concurrency to central server and importantly reduce mobile data costs, which is a huge part of the cost structure of mobile architecture. If you are fetching the same data over and over again, it greatly ramps up the running cost of the application. Furthermore, local data storage on the device facilitates offline work for employees in situations such as being on a train with poor WiFi signal, or in a built-up area causing a weak mobile reception.
Local data storage come with challenges - with the risk of lost or stolen devices and the pertinent requirement to be compliant with data protection laws, encryption on the device is key. To encrypt data, access to cryptography libraries is needed, but deploying your own libraries on some platforms (like iOS) raises additional development challenges. Such challenges are magnified when a diverse range of devices need to be supported by enterprises’ BYOD & CYOD polices.
The safest way to facilitate local data storage is to embed a light weight database into the mobile applications that support on-disk encryption. This guarantees the structure on multiple devices, and ensures data is encrypted at source in order to comply with data protection laws around at rest data. Good embedded databases have a small footprint, full SQL 92 support, and work across multiple device platforms.
Not making the mobile user experience the top priority
Often, the user experience plays second fiddle to the perceived feature and functional priorities of applications. Spending money on developing a mobile application only to find that there is a better one on the market completely discredits the business. With BYOD and BYOA, employees literally have hundreds of applications to choose from and they are likely to use the ones that are easy to use and helps them better execute their professional tasks.
Good user experience must be a key priority from the design stage onwards. End users also expect their applications to be intuitive and look and feel similar to the other applications they use. Using technologies that present non-native looking controls (like HTML5) often lead to confusion and lower adoption.
Showing employees the prototypes of the application on actual mobile devices and soliciting real-time/regular feedback is essential. It ensures user satisfaction on the launch of the application. Often having a user sat with the development team helps developers see things from the end-user perspective, eliminating the need to make wholesale changes at the end of a development cycle.
Letting too much get in between the app, the OS and the hardware
A streamlined interaction between the application, the operating system and hardware is key to ensuring the best response time in applications. This aspect frequently gets ignored by enterprise developers and limits the usability of applications. Utilising all the relevant capabilities offered by mobile devices such as central processing unit (CPU), graphical processing unit (GPU) and local storage helps shave off every possible millisecond off the applications’ response times.
This can be achieve by building a true native application - in doing so, the application is optimised for the operating system (iOS, Android, Windows, Linux, OS X) and the corresponding hardware. True native applications are script-free and run directly on the device’s CPU and GPU. This ensures that the device’s performance isn’t compromised, giving a better user experience.
Facebook’s mobile application is an interesting example that enterprises can learn from. Facebook originally created hybrid applications (i.e. a website inside a mobile application). The company subsequently switched to developing the mobile app as a true native application - the number of minutes that users spent on the app doubled over night!
In addition to making applications quicker and safer to use, native apps are able to access anything connected to the device. For instance, a number of businesses now use a credit card chip reader connected to a mobile device to process remote chip and pin payments, something a web application could not achieve.
Building separate apps for different platforms
In order to support a variety of mobile devices, many enterprises choose between Apple and Android strategically upon which to build their mobile strategy first. With four leading computing platforms - Android, iOS, Windows, Linux and OS X - promising allegiance to any one platform is almost certain to fail as a long-term strategy and invalidates the concept of BYOD. Also, such an approach requires significant investment from the enterprise to support multiple developmental projects for the same application, which increases costs substantially, extends the release times of applications, and impedes the business benefits of a mobile strategy with release schedules not being identical between platforms.
However, by creating native applications using one codebase, with a single development team and one release schedule, enterprises maximise their return on investment while ensuring the best user experience, application quality, connectivity and performance. Writing native code allows the application to fully exploit the full range of capabilities of the underlying devices and also drives user satisfaction.
Mobile technology is still nascent - as BYOx and the Internet of everything becomes all-pervasive, enterprises’ mobile strategy will need to encompass not just smartphones and similar devices, but practically all type of appliances and gadgets. Adopting a mobile strategy that embraces all platforms will provide a strong foundation upon which companies can further build on in the long term to deliver against the changing customer demands quickly and cost-effectively. Native code is fundamental to such an approach.
Posted by Jason Vokes, Senior Director, Technologies & Marketing International, Embarcadero Technologies