DEVELOPER FOCUS Under pressure to quickly deliver mobile projects to the business, there are fundamental issues that enterprises often overlook when considering their mobile app strategies prior to deployment. Jason Vokes, senior director, technologies and marketing international at Embarcadero Technologies, explains.
Mobile technology offers enterprises the ability to be creative in the way they conduct business. On the other hand, the complexity of executing an optimised mobile strategy is compounded by device diversity, such as PCs, phones, tablets, iPads, and most recently Phablets, plus a multiple operating system environment from the likes of Windows, iOS, Mac, Linux and Android.
Under pressure to quickly deliver mobile projects to the business, there are some fundamental issues that enterprises appear to overlook when considering their mobile app strategies prior to deployment.
Forcing a desktop experience on mobileEnterprises try to replicate complex desktop application features in mobile apps. The capabilities of mobile devices and PCs are different; mobile devices lack large screens for easy viewing and they don't have a robust enough in-memory cache for fast data processing or even an external keyboard for quick typing.
When developing mobile applications, enterprises should identify the critical, high value functions that users need on the move, leaving the broader functionality to be delivered by desktop applications. Regardless of how mobile a company's workforce needs to be, the need to work offline will always remain.
Applications must embrace the simpler, touch-centric design principles for small screens. If a company requires users to undertake complex data entry via mobile, the application must then break the data entry process into individual chunks that can be easily completed step by step on the device.
Local data storage issuesWith BYOD, data security is proving to be a critical challenge. The lines between personal and business data is blurring, and coupled with the risk of lost and stolen devices, the risks (such as non-compliance with data protection laws,) are many, resulting in enterprises shying away from storing data on mobile devices.
However, the rationale for local data storage in mobile applications is exactly the same as the reasons for local storage on network devices, in other words to reduce network connectivity issues and improve concurrency to central server and lower mobile data costs, which is a huge part of the cost structure of mobile architecture.
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 with a weak mobile reception.
Data encryption on devices is key. This requires access to cryptography libraries, but deploying your own libraries on some platforms (like iOS,) raises additional development challenges, which are magnified when a diverse range of devices need to be supported by enterprises' BYOD polices.
Embedding a lightweight database that supports on-disk encryption is the safest way to facilitate local data storage into mobile applications. This guarantees the structure on multiple devices, and ensures data is encrypted at source to comply with data protection laws around at rest data.
User experience versus functionality With BYOD, employees have hundreds of applications to choose from and they are likely to use the ones that are easy to use and those that help them better execute their professional tasks.
Good user experience must not play second fiddle to the perceived functionality priorities; it must be embedded right from the design stage. For example, using technologies that present non-native looking controls (like HTML5,) for enterprise apps often lead to confusion and lower adoption. Users expect applications to look and feel similar to the other applications they use.
Gaps between the app, the OS and the hardwareStreamlined interaction between the application, the operating system and hardware is important for delivering the best response time in applications. Utilising all the capabilities of mobile devices, from central processing unit (CPU), graphical processing unit (GPU) to local storage, helps shave off every possible millisecond off applications' response time.
This can be achieve by building a true native application as they script-free and run directly on the devices' CPU and GPU, ensuring that devices' performance isn't compromised.
Facebook's mobile application is a case in point. Facebook originally created hybrid applications (in other words, a website inside a mobile application,) but subsequently switched to developing the mobile app as a true native application. This resulted in the number of minutes that users spent on the app doubling overnight!
Separate apps for different platformsMany 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.
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.
Supporting multiple developmental projects for the same app is a waste of money. Writing native code allows the application to fully exploit the full range of capabilities of the underlying devices and drives user satisfaction.
Mobile technology continues to develop at an extraordinary pace, adopting a mobile strategy that has the capability to embrace all platforms gives enterprises the long term capability to truly leverage the BYOD and Internet of Everything trends, as well as rapidly delivering against changing customer demands, cost effectively. Native code is fundamental to such an approach.
Embarcadero enables customers to work more efficiently with the industry's major database platforms, operating systems, frameworks, and programming languages, with heterogeneous tools that enable customers to design, build, and run their databases and applications in the environments they choose.