“We need to build a mobile app!”
“Sure, boss. What exactly should this mobile app do?”
“Doesn’t matter! All our competitors have mobile apps, so we need one too!”
This is exactly the wrong way to launch a mobile app project.
Yes, you probably do need a mobile app because an increasing number of people do a majority of their computer activities on mobile devices. And yes, most or all your competitors have mobile apps available on app stores. These are necessary but not sufficient conditions for building a mobile app.
Your mobile app should do something useful; something that complements your existing product or service offerings. It’s an extension of your brand. If the app is buggy or useless, people will associate those poor qualities with your brand. You don’t want to go there.
If you have an idea for a mobile app that you believe is useful (whether to support your brand or for any other reason), the next step is to start building, right?
After all, it’s just a computer program.
Not So Fast…
A mobile app is indeed “just computer program.” The mobile device platform provides opportunities and benefits (such as the use of the device’s GPS, camera, near-field communications, and other gizmos) not available to traditional PC or web applications. But the process of designing and building a mobile app involves limitations to be considered before you start.
In this article, we discuss some of these limitations, bottlenecks, and pitfalls to avoid in designing and building a mobile app.
The form factor of a mobile device presents a major constraint on the user interface (UI) design. Not only is the screen smaller than a typical laptop or PC screen, but the pointing tool—usually the user’s finger—is much larger relative to the screen than a mouse pointer. As a result, the on-screen controls have to be larger, but big buttons on a small screen lead to serious limitations on-screen real estate.
When you need to invoke the device’s on-screen keyboard, the available screen size becomes even smaller. Therefore, designers must think in terms of screen efficiency. For example:
- Only essential controls should be visible, and they need to be large enough to operate by tapping or swiping.
- Secondary controls should be hidden in hamburger or waffle menus until needed.
- Vertical scrolling is acceptable, but there should be some way to scroll to a specific point (such as a vertical scroll bar) and a way to return directly to the top of the screen.
Few situations cause more anxiety than having a cell phone with low battery and no way to recharge it. And one of the most common complaints about mobile apps is they gobble-up battery power.
Every programming instruction that is executed uses power, so one key to having happy app-users is minimizing the power requirements. This means writing super-efficient code, minimizing network usage, and other techniques.
Not every user has an unlimited data plan, and those who don’t aren’t eager to use data-hogging apps. Numerous techniques exist to reduce bandwidth usage by limiting data traffic to and from the device. Many of these techniques also reduce power requirements, so optimizing data usage is a win-win.
A related issue is offline usage. For those times when users have exhausted their data allotments, are not within range of a cellular or Wi-Fi signal, or have their devices in airplane mode, it would be nice if they could still use your app. Not every app has a practical offline mode, but it’s worthwhile to explore how your app might be useful when the device is offline.
Updating a mobile app should not be a major event in a user’s life. In fact, most updates should be invisible, performed automatically behind the scenes, and require no user intervention. You might want to tout certain new features and capabilities, but this can be done with a pop-up dialog box the user sees only after launching an updated version of the app for the first time.
The ability of an app to have seamless upgrades depends on how well the app is architected and how well the product owner manages the product roadmap to anticipate future features and enhancements. With the right system architecture, updates can always be low-impact events that don’t require the user to uninstall the previous version or make configuration choices or system access decisions all over again.
This is probably the most important consideration for any mobile app. Mobile devices are among the fastest-growing cybercrime targets. Phishing attacks, once found only in email, have migrated to SMS texts (these are called “smishing” attacks). An app that leaves a user’s device vulnerable to malware, eavesdropping, or unwanted access is one that won’t be used.
Entire books have been written on the subject of mobile device security, but the basic concept boils down to this: Design the app to require access to as few device resources as possible.
Does your app really need access to the user’s contacts, text messages, or photo gallery? Does it need the user’s exact GPS location at all times? The fewer resources your mobile needs, the less of an attack surface your app will present to hackers.
The Key to Success: Developer Support
Getting a mobile app right requires teamwork from all stakeholders, from product ownership to system architects to UI designers, software testers, endusers, and developers. No single stakeholder knows everything about overcoming the limitations of mobile app design, but together you can come close.
The key is developers who have enough experience with mobile app design and development to avoid most of the pitfalls. AndPlus has many developers with many years of experience designing and implementing mobile apps of all kinds for all purposes.