To gather insights for DZone's Native Mobile App Development Research Guide, scheduled for release in February, 2016, we spoke to 18 executives who are developing mobile applications in their own company or helping clients do so.
Here's who we spoke to:
Dan Bricklin, CTO, Alpha Software | Adam Fingerman, Co-Founder and Chief Experience Officer, ArcTouch | Nishant Patel, CTO and Kurt Collins, Director of Technology Evangelism, Built.io | Tyson Whitten, API Management Product Marketing, CA Technologies | Rajiv Taori, VP Product Management Mobile Platforms Group, Citrix | Zach Slayton, Senior Technical Architect, Collaborative Consulting | Brad Bush, COO, Dialexa | Craig Lurey, CTO and Co-Founder, Keeper Security | Jessica Rusin, Senior Director of Development, MobileDay | Steven Jovanelly, Senior Director, Innovation Lab, PGi | Brandon Satrom, GM Developer Platforms and Tools, Progress Software | Eddie de Guia, Co-Founder and Managing Director, PubNative | Hans Ashlock, Technical Marketing Manager, Qualisystems | Mark Kirstein, Senior Director of Enterprise Software, RhoMobile | Justin Bougher, Vice President of Product, SiteSpect | Carla Borsoi, Software Product Manager and Marketing Lead, 6SensorLabs | Lubos Parobek, VP of Products, Sauce Labs
We asked these executives, "What's do you see as the most important elements of native mobile app development?" Here's what they told us:
- Ensure you understand the new features of the latest operating system (e.g. iOS 9 had new API calls as well as force touch). You want to incorporate the new features of the OS into the app. Wrappers are behind the curve. You must stay up to date or risk falling behind. I fell behind one time and it will not happen again. The latest features are only available to native platforms.
- Ability to develop using all of the tools in the mobile world like SDKs, and different databases to match GPS. APIs enable us to leverage the data. Take all of the data from the device and marry it to the data in the outside world, as well as the user data.
- Usability - a robust connection for the user. The app must fit the platform properly, the controls must be intuitive and provide a great user experience (UX). Take advantage of the context of the user as well as the hardware and the software the device provides so the user can have a better experience.
- First, Access to data offline in an enterprise setting. Be able to operate in real-time even if you don’t have connectivity. Everything else is secondary. Experience in driving people through the process, deployment and workflow. Amazon training used to require three days, now it’s two hours with a native app. Companies are able to hire less skilled employees and then train and support them remotely. The delivery of applications and solutions is more intuitive. Second, Drive an intuitive experience so the user is up and running quickly and easily. Third, Native app’s ability to interface with the device at the lowest level (i.e. battery life is critical for field service). An app developer can control the screen display to extend battery life.
- First, No vendor lock-in. Enable developers to use the tools with which they’re most comfortable. It's all about the experience, how fast the organization is moving, are they following continuous innovation? Financial services companies are now differentiating based on apps versus rates. Identify the digital imperatives of the organization: speed - developers can develop quickly; understand users; and, meet the needs of the user. Provide the right features and the right experience. Second, Unlock information to provide a more engaging experience across all channels - web, IoT and person to person. Third, Open information for partners in the digital ecosystem (e.g. GM mobile apps provide a better experience by locking and unlocking the car, diagnostics, recall) - a stickier, more loyal experience that also generates a lot of data that can be shared with others (e.g. insurance companies to deliver better service and rates based on their knowledge of the customer). Identify the tech requirements of what you need to enable with APIs. APIs grow in conjunction with mobile app growth since they enable access of information in the right manner. Everything goes through an API: identity/security which affect process and UX, message queueing between mobile apps and IoT apps (MQTT) different protocols for communication, group management, user engagement (e.g. retail in-store identification with beacons that can lead to an improved customer experience [CX]).
- Ultimately, each application is different depending on the use case. However, we find that having some sort of visual activity stream provides a social and informational experience that is useful to the user.
- Make good code that’s easy to use and provides a good UX. This can be done with native or non-native.
- An ideal native mobile application is anthropomorphic, it creates the perception that the device the app running on is an extension of the person that is using and interacting with it. There are three development factors that drive this goal: UX sophistication, speed, and quality. The app’s UX must be intuitive and non-intrusive; its performance must accommodate human perception response times; and the complexity of systems and sensors it integrates demands extreme attention to QA. We have proprietary technology for telecom carriers to test the UX.
- Conversion and user capture. You need to know the user flow, their path through the app. Learn this with A/B testing. Mobile has more variables. It’s harder on a small screen. UX is harder because of the limited real estate on mobile and wearables. Think in terms of micro moments on the screen - Tinder does a great job with this. Business apps may have multiple micro moments. How does the user get through the app with the fewest number of actions (i.e. buttons versus pull-downs). Apps must be optimized for mobile.
- Identify the purpose of the app. How are you going to measure the success of the app? What do you want the CX to be? Understand the business problem to solve. How will we achieve deeper engagement with the best customers?
- The device dictates the technology you use. Find people who understand the platform. Determine what devices you are going to support - all 17 Android, iOS, Windows? There are many different types of hardware with versions, screen size and features to implement.
- The end-user experience and the client requirements/needs - integrate certain technologies, budget, and timing. Start with strategy to understand the needs and wants of the client.
- The speed of the experience. Native apps load and present the next part of the experience quicker for the user.
- For the developer, tools to save time from repetitive, rote work. Take a single high-res image and blow out into 15 different sizes (for 15 different devices). For the end user the UX feels natural and normal. Hybrid can be developed with the right decisions and tradeoffs without affecting the UX.
- Implement a quality UX - looks great, no bugs, fast. There’s a much higher bar for mobile apps than web apps.
- Speed of building on the tools. Having access to the newest features when they come out. Use wearable - watch apps, get new features ahead of time so your apps are ready when they go live.
- The key attribute is the ability to triage, debug and revise the app based on diagnosing the root cause, correcting and resubmitting. You’re guaranteed not to produce a five-star app out of the gate, you need to identify problems and revise. Security won’t guarantee success but if your app isn’t secure, you won’t have a seat at the table or be downloaded to a phone.
What do you consider to be the most important elements of native mobile app development?