In today’s world, smartphones power every aspect of our financial lives.They enable us to close deals from anywhere in the world on Zoom, send money quickly with Cash App, and grow our wealth through Robinhood.
For the first time in history, studies show that the average US adult will spend more time engaging with their mobile device than watching TV. On top of that, more than 52 percent of all web traffic globally is initiated on a smartphone rather than other electronic devices.
In this ever-growing mobile landscape, it’s clear that smartphone applications should be the primary focus for companies to acquire users. However, the mobile space is growing more saturated each day, and it’s becoming more challenging to stand out from the crowd. We see evidence of this difficulty in the user retention of mobile apps. Statistics show:
Incumbent banking applications are losing market share to disruptive fintech products like Venmo and Cash app. So how can you convince users to stick around in the financial space? Well, a modern application requires a modern architecture; one that is built to deliver better performance and a richer user experience.
Let's explore what this modern architecture looks like. How we can improve current designs and deliver a faster application that keeps users engaged and coming back for more?
As we saw in the graph above, first-day user retention is a vital first step to transitioning new users to loyal brand ambassadors. Here are the top characteristics that attract and retain users:
These characteristics can be divided into two categories: design and performance.
Front-end design encompasses the visual experience a user sees as they interact with your app.
In front-end design, your highest priority should be in removing friction. Removing friction by minimizing the number of clicks, displaying only the necessary information, and simplifying navigation between screens are valuable guidelines to building a great visual experience.
From start to finish, your app should either solve a problem or create an experience for the user. And it should do so through an accessible and friendly interface. Doing this well attracts users, creates excitement, and drives retention.
Cash App provides an impressive example of stellar front-end design. The home screen is simple, yet powerful. It displays the user's balance (what the user wants to see) and allows the user to send money (what the user wants to do).
Often overlooked, performance is a valuable differentiator that directly influences user experience. App crashes, slow load times, and failed actions impact usability and drive users to look for alternatives.
Consequently, you need to build a resilient mobile app that performs well in any condition if you want to dethrone the top applications of today.
To increase performance, modern architectures need to optimize for variable networks.
Smartphones are constantly switching network connections when you’re on the go. Mobile error rates vary between 3 percent and 12 percent globally depending on the country and the network. But even if you have a great cell phone provider, large crowds, connection strength, and remote areas all limit the network accessibility of your mobile application.
Your app architecture needs to optimize for any network. An application that works in limited or zero coverage will drive improvements to user retention and loyalty.
Functionality 'that just works' is an underrated metric for mobile products. Consistent responsiveness sets your application apart from the competition. Hence, it’s important to invest in a modern architecture that actually delivers the user experience that you envision.
Building a modern architecture that addresses variable networks boils down to two requirements:
Let's take a look at how most applications operate today and then explore how we can solve for these two requirements.
Many applications today run like websites - every time you open the app, it requests the server to send it updated information to display on the screen. This is called the request-response pattern that is used in most apps. As the user swipes between screens or searches for new information, the app is continuously making requests in the background and waiting for responses.
In fintech applications for example, balances, transactions, and account info are repeatedly being sent from the server to the application.
Although building apps using request-response is an accepted standard in software development today for its simplicity, it is not necessarily the best choice for use cases where:
MQTT, a messaging protocol, addresses both our fundamental requirements when we couple it with local storage. MQTT is efficient despite network conditions and it provides low-latency, assured messaging over fragile networks.
Instead of the request-response pattern, MQTT provides two-way publish/subscription messages over a single connection. Although other protocols like gRPC, AMQP are also viable options when developing a modern architecture, in this article we talk about MQTT because it is efficient, and is built to be resilient in poor network conditions.
Let's explore the differences between response-request and MQTT architecture for a simple financial transaction.
Dylan wants to send Tina $10.
To accomplish this action, a request-response based application performs the following steps:
Of course, this is a simplified description of what’s happening in the background, but what’s important to highlight is the number of times the app is talking to the server and what data is being sent from the server to the application.
In the traditional architecture above, the app and server communicate at least 7 times between Dylan and Tina combined. This in turn increases load times and limits application performance, and therefore user experience.
In comparison, the same transaction on using MQTT requires only 3 messages and doesn’t send redundant data:
With an MQTT architecture, a real-time connection is maintained between the app and server. New data is pushed to devices when available instead of waiting for the application to request it. As a result, the application is less dependent on network conditions and has faster load times.
Note that the above use case only highlights the efficiency improvements of a single transaction.
If Dylan has 1000 transactions, each time he scrolls to view older transactions, the app would need to request data from the server to display it on the screen. Instead, by storing (caching) data locally, we can avoid delays to server. Hence, only new transactions are sent from the server, and old transactions that have been stored on the device are available for instantaneous access.
This MQTT architecture combines the benefits of local storage and minimizes app-to-server communication. Together this design effectively reduces network communication by over 50% and reduces load times by ~20x ( 1 sec / 50 ms ). It reduces the impact of variable networks and in turn optimizes user experience. What this means is your app loads instantly and you will retain more users.
In summary, we talked about how to increase mobile app retention by optimizing design and performance. We covered a lot! Here are the highlights:
If you remember one thing from this article it should be that a user’s experience doesn’t stop at the front-end design of your app. Your app’s performance across a range of network strengths affects user retention equally as much as the design and functionality.
Contact us to learn more about the performance benefits of a modern mobile architecture and how Abstrakt makes it simple to implement it in your app.