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.
The definition of native mobile app development was fairly consistent across our respondents. The common elements were:
- Written to the SDK of the platform and the OS of the manufacturer.
- Engineered specifically for the phone, device specific.
- Running locally on the device.
- Purpose build to provide the optimal mobile experience.
While a couple of respondents felt you could achieve an acceptable user experience (UX) with a well-written app in HTML5, ultimately everyone agreed native mobile apps are necessary to integrate a wide range of complex sensors, displays, and systems to create a highly intuitive, streamlined, immersive, and anthropomorphic experience.
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, VP Digital Technology Solutions, 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
Here's what they told us:
- Taking advantage of all the value one can bring to the phone. Engineered specifically for the phone versus a web-based wrapper. Provide a better UX in an app than anything else with bluetooth connectivity, GPS and connections to stored data on the device.
- Traditional web used HTML, we develop native mobile apps for iOS, Android and Windows. Now we have the emergence of IoT which needs apps. Each app needs to be device specific.
- An app that’s running locally on the device versus the device requiring connectivity to access the data that’s residing somewhere else.
- Developed locally for the device. Provides a better UX on the device.
- We believe native applications need dedicated advertising formats, and this is where native advertising comes into play. As committee members of the IAB and MMA, we follow their guidelines on native advertising formats. That means all ad placements are in view and fitting the form and function of the application.
- What’s native versus what’s not? Many Apple apps use web views for the user interface laying things out for the screen in a way that’s platform independent. One written to the SDK of the platform and OS manufacturer using native controls. We’re in a very coding-centric developer environment. When producing a hybrid line, it can be very fuzzy (Hybrid or Cordova). Pure HTML5 not in a wrapper. The type and layout is superior to native because it’s much more difficult in native. It’s up to the developer. Performance of the browser is within a factor of two of what you can build in C code. There’s no performance issue if you write it in HTML5, unless it’s poorly written. It’s a matter of coding sophistication. People in an active world need performance. Alpha is a low code system. If you’re producing client-side code for performance and automation, it doesn’t matter what you use with regards to performance. What’s important is how fast you can build the app. If you’re building thousands it may not make sense to build native apps because of the time required to do so.
- A native mobile application is purpose built for the mobile experience. Though a mobile app’s most obvious differentiating feature might be its small UI footprint relative to its “desktop” counterpart, the fact is that a native mobile app is a far more sophisticated piece of software. Native mobile apps must integrate a wide range of complex sensors, displays, and systems to create a highly intuitive, streamlined, immersive, and anthropomorphic experience. From touch screens, voice recognition, location awareness, and proximity sensors to facial recognition, position awareness, health monitoring, and tactile feedback, native mobile apps can be defined as truly extending the way humans interact with the world around them.
- One that enables you to control the UX completely and access the phone’s resources (i.e. GPS, accelerometer, camera).
- Leverage native operating system frameworks exclusively with no embedded content.
- Written in the technology platform for the device and runs on the device. For iOS we use Swift. For Android we use Java.
- Native ensures you are taking full advantage of the platform.
- The difference between an app that does things on a device versus communicating with a web server. Rare to have an entirely native app. What’s happening on the device itself makes up the experience.
- An app written in Objective C or Swift for iOS or Java for Android.
- Apps built in a language and toolkit provided by the platform. Not Interpreted languages like Titanium or Xamarin.
- Every app has hybrid components. High fidelity with usability and access to local sensors. Most use HTML5 components facilitate A/B testing.
Do you define a native mobile app any differently?
What are you building the most of - native or hybrid?