Founder and CEO of Artisan, an innovation consultancy supporting global leaders with technology strategy and solution services.
Mobile phones have come a long way in the past two decades. Long gone are the days when we used mobile devices simply to make phone calls and respond to SMS messages. Modern phones are also our mobile offices, shopping carts, GPS devices, gaming centers and primary cameras. The fact that we still refer to them simply as “phones” is almost laughable. Today, according to Comscore (via MarketingCharts), Americans spend 70% of digital time on mobile devices, and eMarketer found that 88% of mobile time is spent using apps. Research by App Annie suggests that mobile app downloads will reach 258 billion by 2022, a 45% increase since 2017.
One reason for this dramatic increase in mobile app usage is the quality of apps available. The evolution of enabling front-end and back-end mobile technologies has been significant in recent years. Advances in architectural methods and increasing reliability of third-party tools and services empower product engineers to create more impressive, user-friendly applications than ever before.
While these rapid advances in mobile tech are exciting, they also add increased pressure for those designing and building mobile applications. As the standard of excellence continues to rise, those who do not keep up will quickly earn themselves one-star reviews in the app stores. To capture users’ attention, we must develop excellent mobile experiences that are fast and responsive for users yet sustainable for the technology teams maintaining the app. Here are three ways you can do that:
1. Prioritize an offline-first experience.
The gold standard in application development has shifted from mobile-first to offline-first. Today, users expect to access an application wherever they are, including places with intermittent connectivity like the subway or a park. If an app requires connectivity to function, a bad connection can quickly translate to a poor user experience. An offline-first approach enables an app to run offline until an internet connection is reestablished. From a development perspective, this requires implementing access to local storage.
While architecting this type of solution used to be cumbersome, the reality is that mobile developers no longer need to spend precious time tinkering with the offline-first plumbing of an application. Instead, they can leverage existing and mature tools like AWS Amplify or Google Firebase to provide offline-first capabilities. Developers can then spend their own energy perfecting the front-end user experience and implementing smart business logic to create something responsive, fast and available offline.
2. Push business logic to the back end.
Another often-overlooked advantage of using AWS Amplify or Google Firebase is the built-in benefits of a forward cache. Many teams will neglect to take full advantage of this implicit benefit. Instead, they resort to writing most of their business logic directly in the front end and using either Dynamo DB or Google Firestore as the underlying record of truth. While this can be a viable solution, in doing so, they miss the opportunity to create a far more scalable and maintainable solution.
Alternatively, by using Dynamo DB or Google Firestore as a forward cache that the front end uses to display data, you can push the business logic to the back end, which provides a host of benefits. For example, you can push out changes to business logic without necessitating a new release of your mobile app. This means existing users do not need to download a new version of the app to get the update. Additionally, it eliminates the need to go through app stores’ code review processes, saving valuable time. In the same way, if the back end goes down for maintenance periodically, it will largely go unnoticed by users because the forward cache will still be alive and serving data. That gives you more flexibility when pushing out business logic updates.
Using a forward cache can also save time and facilitate flexibility by giving front-end engineers the freedom to work with data in its most convenient and efficient form. The back end becomes responsible for translating its data into front-end friendly models and then pushing updates into the forward cache for display.
Lastly, when the chatter back and forth between clients and the forward cache is handled by either AWS Amplify or Google Firebase, back-end engineers are freed up to focus more on getting the business logic right and less on the scale required to serve thousands of concurrent users. Scale will always be a concern for an engineering team, but why not put the horizontal scale requirements for concurrent access to the forward cache on either Google or Amazon?
3. Leverage cross-platform development technologies.
Finally, cross-platform development technologies have matured dramatically in recent years and are now viable for most applications. While there are some situations in which an application must get very close to specific hardware, writing device-specific code is unnecessary for the vast majority of apps.
Instead, frameworks like React Native and Flutter give you the ability to create solutions that span a broad spectrum of devices running on either iOS or Android. The benefits are clear: With cross-platform development technologies, you can support two platforms with one code base, reducing the need for additional engineering resources and multiplying the opportunity for adoption. This means you can do more with less, reducing the total cost of ownership and remaining lean in order to move quickly to market.
Increased Adoption, Delighted Users And Happy Teams
In the end, adoption is the goal. No one wants to spend time and money building an application only to see it tank in rankings in the app store. Regardless of the type of app, the aim is to delight end users and keep them coming back. However, successful adoption and world-class offline-first user experience simply cannot happen without a sustainable architecture.
In today’s fast-paced technology environment, we must set our engineering teams up for success by allowing them the freedom to focus on creating amazing experiences for the user rather than reinventing tools and services that already exist.