Mobile applications are an essential communication channel between firms and their customers, employees, suppliers and other stakeholders. The COVID-19 pandemic has made mobile applications even more vital as companies rapidly pivot to new or modified business processes to minimize risk to their customers and team members.
As firms reset their technology portfolios to align with the new economy emerging from the pandemic, investments in their mobile app user experiences can help both with customer acquisition and customer retention. Ensuring an application has a low barrier to entry will appeal to even the least tech-savvy customers. Rich experiences including personalized features, community integration with check-ins, discussion forums, sharing of user-generated content, or customer loyalty programs can greatly increase engagement with customers. Integration of data collection and analytics can greatly enhance customer retention by enabling more data-driven marketing.
Although the mobile market has coalesced around two platforms (iOS and Android), there has been a huge proliferation of tools and techniques providing ever-richer experiences to mobile application users. Creating a mobile application is a serious investment of capital and can expose a firm to reputation risk if it does not deliver useful functionality with a high-quality user experience, and as such, selecting the best-fit architecture for a mobile application is an extremely important business decision.
Many application leaders might lean towards either the options that feel the most “future-proof” or those with the lowest price tag for development and maintenance. Others might choose a mobile application architecture based on what is newest or most popular in the technology blogs. We advise following a thoughtful, use-case focused approach to architecture selection to maximize business value while reducing the risk of over-promising and under-delivering.
There are four broad architecture categories for mobile applications to consider: mobile web apps, progressive web apps, native apps and hybrid apps. Each of these enables different functional use cases and may involve different programming languages and tools. It is also extremely likely there will be a need to simultaneously leverage aspects of more than one architecture category within an app to provide the full scope of functionality to intended users. Let’s look at several of the most common application design patterns.
Mobile Web Apps
Progressive Web Apps
This is a newer pattern that uses the same web development languages as a mobile web app, but which also enables capabilities for offline support, push notifications, home-screen icons and full-screen view features. PWAs can be largely implemented by skilled web developers and hosted on web servers. This pattern may also avoid the need for a mobile application container such as Apache Cordova or Adobe PhoneGap.
These are generally written in Swift (for iOS) or Java or Kotlin (for Android). Use this pattern to locally store large amounts of data, track high transaction rates or significant offline usage or to interact with external devices such as beacons or scanners. Dev teams can leverage native SDKs for each platform or use cross-compiler development tools. Tools such as Xamarin, Flutter or React Native allow teams to write the functionality once and target both iOS and Android to reduce future overhead and maintenance costs.
This is a combination of native capabilities and web technologies consisting of a web app wrapped in a native app container. Containers such as Apache Cordova or Adobe PhoneGap allow for web component user experiences that can leverage native functionality such as contextual keyboards, image gallery or contact list access. There will be a need for web developers to learn some mobile-specific skills to fully leverage this pattern. Adoption of a mobile UI framework such as Bootstrap, Ionic or Meteor when developing a hybrid app is also recommended.
Choosing the best-fit architecture for mobile applications is a vitally important decision. It is best for application leaders to examine their intended use cases and follow a design-thinking process for selecting among these platform options. It is also extremely likely that leaders will need to become capable of leveraging multiple patterns as their use cases expand over time. Being aware of these broad architecture patterns will help application leaders steer their teams towards the best fit for their application needs.