Building a mobile application differs from building a client/server or Web app. Smartphones, tablets and even users themselves impose unique constraints that must be taken into account if the app is to successfully address a business need and be widely adopted. That said, here are some must-have requirements that organizations need to consider when building B2B mobile apps.
"Mobile devices in general have gotten much more powerful recently, but you are still dealing with a limited set of capabilities -- storage, processes, bandwidth, the fact that I might not always be able to get on Wi-Fi, performance," explained Dave Hatter, solution architect and partner at Cincinnati-based Definity Partners.
He continued: "Availability is the biggest single thing that often gets overlooked. If an app is used on a phone or tablet, how much uptime does it have to have? What are the expectations or requirements for availability? If the app must work whether there is connectivity or not, and you build an app that doesn't account for users working in sublevel basements or 100 miles away from the nearest city, now you have a huge problem. You may need to scrap it and start over."
This requires understanding the user's workflow and workday. Without this knowledge, developers risk making incorrect assumptions. "You may be developing an app based on the wrong info. What you develop may be too difficult or cumbersome to use," said Alex Zaltsman, CEO of Piscataway, N.J.-based InnoviMobile, a mobile application development firm. "That's really the biggest problem: developing something that people won't use, that doesn't work for the business case."
Usability critical with mobile apps
This brings us to another key requirement: usability. "You can't go into it with the same mentality as building a client/server app. There are so many variances between the old-school way of doing things and how you have to work with these devices, and unfortunately there's a giant array of these devices. How somebody works on Apple is not how they are going to work on Android," Definity's Hatter said.
It is crucial, therefore, to understand who will use the app and how, so that it can be designed to be intuitive. "Who is the person that is going to be using the app? What is the job title of the person using the app? That ties into the design element to make sure we're designing for the right people. If it's an iPad app or for people who are not good with computers, then you don't want to design anything too technical or difficult to use," InnoviMobile's Zaltsman said. "Tailor the user interface to the kind of person who will be using the app."
Regardless of the specific workflow, it is important to always show that the app is working even when it doesn't seem to be responding. "When the app is doing something, show progress indication as much as possible to keep the user from thinking that the app is stuck. There's a lot of processing, a lot of data going through and people are used to fast responsiveness. Build the [user interface]UI in such a way that they can see something is going on and they are not just hung out to dry," said Matt Vlasach, senior product manager at San Francisco-based Wandera.
Security requirements are also must-haves "in every conceivable sense," Hatter said. This includes credentials, login data exchanged between the app and other systems and the device itself. "You can build an app that has 100% availability and pull data down to the app to make it work, but what happens if the user loses the device?"
Vlasach agreed and recommended encrypting all data traffic. "For any enterprise app, it sounds silly, but use https to encrypt all data traffic. It's incredible how many apps do not use encryption and are passing data. We look at data going across the Internet, and a high percentage of apps still don't use encryption. That's table stakes," he said.
Vlasach added: "Not far behind that is to use encryption for data at rest. Take advantage of the built-in encryption services that come with iOS to make sure that you're encrypting to the maximum capacity that works for the device."
Finally, experts noted the need to address the user experience when building mobile apps. "User experience is just as important as the functionality of the app," Vlasach said. "Add some richness because end users are used to rich apps. Just because it's an enterprise app doesn't mean that you get a pass to build something that's not a good user experience."
Hatter agreed. "You usually only get one shot for people to like it out of the gate, and if you fail, it takes a lot to get their confidence back."