Four mobile app design considerations for a mobile enterprise
In the previous blog post from my series about better managing your mobile application projects, I talked about some commonly overlooked mobile project requirements. In this post, I will be moving to the design phase, where I will talk about some mobile app design considerations. When you want to design mobile enterprise applications, there are some additional challenges in comparison to designing traditional web applications. This is due to a number of reasons, such as the nature of the accessing device, the app usage pattern and more. The following sections detail four mobile app design considerations that I would like to highlight based on my previous mobile project experiences.
1. Native or hybrid mobile development?
There’s a long battle going on between the native and hybrid mobile application development approaches, and it won’t be surprising if your team spends days or weeks arguing over this. Some might support native mobile development because it is easier to achieve the best user experience and performance, while others might favor hybrid mobile development because of the better potential for cross-platform support and the reuse of existing web development skills.
There is no absolute answer to this question, and the best solution always comes with constraints and trade-offs. However, from the mobile enterprise application perspective and from my experience, hybrid mobile development is more likely to be the winner of this battle given the following facts:
- A mobile enterprise will usually want to support more than one mobile platform: mostly iOS and Android, but there is an increasing demand for apps on the Windows 8 platform.
- A mobile enterprise will usually want to develop and launch more than one mobile application: the number of applications might range from 5 to 20 in the next few years.
- There might be few people with developed skills or assets in native development within the organization, and it is difficult to gather a qualified team within a short period of time (which can affect the time to market of the application).
It may be another story if the company’s strategic direction is to focus on one or two mobile applications that are key to their business and to achieve the best user experience. However, the flexibility in modern hybrid mobile development means hybrid mobile apps can achieve a similar level of quality if you play your cards (or tools) well.
2. Enterprise applications and data service integrations
Enterprise application and data services are essential components in a company’s operations. Even though we now emphasize the benefits of supporting offline operations, it is still important for the offline application data to be synchronized to the enterprise database for further processing. The appropriate service integrations are necessary to ensure that your mobile enterprise applications are secure, scalable and maintainable.
To make the service integration easier and minimize its complexity, we generally introduce a mobile middleware server or mobile gateway that sits between the mobile application and the existing application and data services. This centrally handles all the system integrations, communications and security. As a result, all the mobile enterprise applications can be connected to this middleware server without needing to know the actual details of the enterprise data server (this reduces the integration dependency). You should also note the importance of protecting exposed services, as some of the exposed services may contain confidential information. It is essential to make sure the mobile applications are authorized before they can access these services.
3. Secure storage and end-to-end encryption
Data is always key to the enterprise application, and mobile is no exception. When developing mobile enterprise applications, you need to pay special attention to data security because using a mobile device actually increases the possibility of data leakage. The data may be sniffed from malware in rooted or jailbroken phones or may be obtained when the physical device is lost or stolen. All the sensitive data stored in a phone, such as personal or transaction information, needs to be encrypted to minimize the negative effects of data leakage. The same approach should also be applied on network communications, although the data in network transmissions can be protected with proper HTTPS setup. Finally, it is important that you implement security redundancy to further secure your client’s data. It’s not surprising to hear that there is a security loophole in a specific browser HTTPS implementation, but you can save your data if you implement the redundancy in advance.
4. Application log gathering
One of the most challenging things about mobile applications is troubleshooting issues that are happening only on a specific device. Unlike traditional web applications, which contain almost all of the business logic in the enterprise application and data servers and are able to produce meaningful logs in a single repository, mobile applications that contain a significant amount of logic are now scattered around the world on different kinds of user devices. It is always difficult to try to reproduce issues in other testing devices because the user generally forgets what he or she did to trigger the issue in the first place. In some extreme cases, the issues may only be happening when a number of rare conditions happen simultaneously. There is a strong need for anyone developing a mobile enterprise application to design and implement an application log gathering mechanism along with it. This can be as simple as regularly sending activity logs back to a logging server, but it should be part of the design considerations from day one and should be executed throughout the entire development cycle.