Making the move to mobile

How to determine the best technology stack and architecture for modern app development

Download white paper

Native applications

Native applications are built to fit for a specific mobile operating system. A vast majority of these applications fall into either iOS or Android development. While minimal, there is still a small market share of Blackberry applications. Native apps are downloaded from their respective app stores and run as a binary executable on the device. Since these apps run
directly on the device’s operating system, they have peak performance and access to on device hardware and processing power.

To maximize this lift, it is also prudent to use native UI elements whenever possible. Both Apple and Google provide a wealth of support through UI frameworks and kits, standardized navigational elements, and on device hardware buttons that support navigation as well. User engagement is also higher, although adoption curves suffer a steep drop-off that starts in amatter of hours. Part of resolving this effort is in having a smooth onboarding experience driven by orienting an application on customer actions rather than business logic. A strong usability testing program and user research effort is key to a successful long-term app adoption.

If there is a business need for a great deal of independent control, with maximum security benefit and maximum performance potential, strict control on external dependencies, and a benefit of platform security and support, then native applications are the best path forward.

Functionality includes:

Native applications
Native applications functionality illustration

Development characteristics

Discoverability: App marketplace; search engines; direct links to the app marketplace stores

If app marketplace presence is essential, this is the quickest way to go from a web app to app marketplace stores.

App updates: Requires app update
App updates are managed and approved by the respective platforms.

Supported devices: Each platform requires a single app
Native applications are, by their nature, native to one platform at a time.

Network dependency: Offline functionality possible
With access to local storage, native APIs, and device hardware, many tasks can be completed
offline if they do not require fetching new data from the server.

Certification: Apps certified and approved by the respective platform processes
Several days to potential weeks should be set aside for the app approval process. Budgeting for extra time allows the chance to address any possible objections that might be surfaced.

Codebase: Each require a single codebase
Code sharing between native apps can be supported by abstracting business logic to back
end services and sharing server-side logic. This may limit the amount of offline capability.

Performance: Strongest (potentially)
Maximize the use of native UI elements and affordances to optimize performance.

Time to market: Varies by app complexity
Native apps need to be built and maintained independently. Efficiency comes from using
native libraries and native app development support.

Native development characteristics
Native development characteristics illustration

Continue to:The mobile device development plan reference guide