Why should your android app speed matter?
I made a tweet some weeks back about how some mobile apps take long to load up. Asides the poor user experience, this can affect your bottom line.
In this article, I’ll show you how we upped Cowrywise android app speed. The app has tons of modules (Savings, Investments, Circles, Stash, Profile, etc). Hence, there’s a lot of data flows at any point in time. Given that, it won’t be fair to have a user wait for all pages to load before they make a specific action.
Android app speed starts with the SSOT (Single Source of Truth)
Simply put, the SSOT refers to having accurate data in one place. That way, any needed data is simply referenced from that source. This works better than having your data scattered around multiple places.
On the Cowrywise app, We always display the data from the app’s local database which lives on the user’s phone. Once the user logs in, We fetch recent (and most important) data in the background with the WorkManager API.
The WorkManager API makes it easy to schedule multiple tasks that are expected to run even if the app exits or device restarts.
Android Developer Documentation
That way, the load on the app’s interface thread is reduced. In turn, the user is able to switch between screens as fast as possible. Once the user gets to the page they are looking for, data required for that page would have already been fetched. We also offload certain one-off tasks to WorkManager.
The app fetches what is in the local database while displaying progress indicators/placeholders where necessary.
How we handle state changes
Using LiveData and Coroutines, We’re able to keep track of the loading, success and error states in the app. Data for UI is wrapped with a Resource class which has 4 states.
In the Fragment, we can then observe different states and update the UI respectively.
Placeholders and your android app speed
Sometimes your android app speed can be an illusion. When a task is going to take a while, there’s a need to inform the user without blocking interaction with other parts of the app. To do this, many make use of progress indicators and progress Dialogs. While these are good, they pose two problems:
- The user has no expectation of what is to come
- They are boring and plain
The combination of both problems can mess with the user’s mind. Yes, the process is taking time but it can feel longer with those. On the other hand, using skeleton screens, a mind game is played. As we move on, you’ll see how we have applied this approach.
Skeleton screens vs progress indicators
Skeleton screens are another way to focus on progress instead of wait times. A skeleton screen is essentially a blank version of a page into which information is gradually loaded. This creates the sense that things are happening immediately as information is incrementally displayed on the screen. With a skeleton screen, the focus is on content being loaded not the fact that its loading and that’s real progress.
Luke Wroblewski
Loading appears faster to the user because the focus has shifted from loading progress to the content that is being loaded. Some examples are shown below


Still on Placeholders: Spinners vs Progress Dialogs
We also got rid of 95% of all ProgressDialogs in the Cowrywise android app (iOS also). Then, we replaced them with progress indicators as recommended by Google:
ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instead of using this class, you should use a progress indicator like ProgressBar, which can be embedded in your app’s UI. Alternatively, you can use a notification to inform the user of the task’s progress.
Android Developer Documentation
The login screen is an example of this. We show the progress indicator on the button. That way, the user can still interact with the app despite the loading process.

Got questions for me? You can drop a comment or ask me on twitter. If you’d love to read more about my team’s work at Cowrywise, check out how we managed to keep the android app size small here.


Thank you for this update,I was beginning to get worried but I kind of have a bit of faith in you guys.
Your customer service is superb
Keep up the good job.
Do they have a physical address, in case
Yes, we do. 5C reverend Ogunbiyi street, Ikeja GRA
1. You need a robust fraud management system to help manage customer’s patterns and behavior.
2. More is to be done to ensure that funds can only be transferred to the customer’s account used when registering or setting up account and extra layer of scrutiny when funds are to be transferred to another recipient.
3. Setup a fraud desk in order build relationship with all banks (this is essential and regulatory)
4. Review your architecture and see where you can seal-up leakages
5. You need to introduce another form of authentication when funds are to be withdrawn.
6. Ensure authentication is done when new card or new account is account is added to a profile.
Oga forget robust issues. Once one gain access to your account, the person will do away with your cash. At leadt cowrywise do send push notifications and the rest. Get your points please
Thank you for the update.
Egbon G-swag!!!
Thank you Cowrywise. As an advocate myself, I was taken aback when I read about Funmi’s experience.
Thankfully, we believe this ugly incident would not repeat itself.
Well done Guys!
Glad it worked out eventually, I am have almost beginning to lose faith.
Thanks for restoring our confidence.
It’s good to know you guys finally resolved the issue but customers need to know if the breach was as a result of her being careless with her login details or your system was accessed through a backdoor to get her login details. Who’s responsible for the breach, cowrywise or funmi?
Not sure you read the message distinctively.
Read bro!
Did you read the article at all?
Glad this came to a positive conclusion, a lot were really worried about this. Cowrywise should take note of the lapses and try as much as they to correct them. I trust your services and im sure it wont happen again
Not sure you read the message distinctively.
Better late than never. Happy you guys learnt vital lessons from this also. Kudos to the Cowrywise support team for the update.
Good job on allaying the concerns of many.
That your tweeter response was not it at all.
This does it.
Also, I support the notion that a more robust authentication is required.
People want to click away easily but when things like this happen, they suddenly expect to have been better secured.
Keep up the good job.
Thank God this has been resolved
Was scared when the tweet came up
Thanks for making us trust you
Good job!
Kudos CowryWise. Well done. I particularly like the fact that you were opened about the whole incident and the steps taken to resolve the issue. More impressing, was owing up on your areas of weakness. For me, this further instills confidence transacting with CowryWise. My advice: Quick resolution of client’s complaints is very key in gaining the confidence of existing customers and winning new ones. Constant improvement of your security checks & mechanism is equally important. Keep sensitizing your clients to remain security conscious so that their login details doesn’t get into the wrong hands as it’s clear that the perpetrator in this case had the correct details of this particular customer.
cowrywise,bravo for the good jobs you are doing, for the customers to receive her money back. please make sure you do more investigation to knowing who is at fault, is it cowrywise or fungi,so that others customers will learn from their mistakes
Fantastic! More authentication process required like Gmail and Yahoo mail does. Trust and faith ? restored
Good to see that this has been resolved, because I was beginning to wonder if I made a good choice moving my money here.
Reading this Article gave me a relief. Thanks guys for seeing this to the end . I was deeply worried wen this trend came up on twitter. But now I can seat back and ride with the company I can trust
Egbon G-swag!!!
Great Job Guys! I am rooting for you all.
Kudo Cowrywise… You did well on how you handle the case… I don’t know why people are blaming Cowrywise on this… Most of the fault is from Funmi… Her email was hacked, not cowrywise fault.. I’m a cowrywise user too… Before someone can withdraw money from your stash.. the person must be able to access your account. Via email and password after then have access to your your transaction pin.. that’s like 2 layer security… if she lost all those.. why is it cowrywise fault that she didn’t secure her email properly.. many of them when they Signup on a platform instead to be careful and read all instructions they will be clicking skip button… Two factor authentication would have help to protect her email if enabled…
The integrity of cowrywise has never been in question to me as an advocate of cowrywise
Thank you for getting it sorted.
My mind don rest for the chinkini money wey I get for cowrywise.
Since I read that tweet my heart be don dey do duduke.
Cowrywise una too much. I hail oh!
I’m glad a resolution was reached upon this issue. And I’m relieved knowing that my funds are in secure hands. Keep up with the good work Cowrywise. Thanks for restoring your good image
Awesome work resolving this in light of everything. Really glad to see how you guys handled it overall. Hope to see more updates
We appreciate your effort Cowrywise
Good job
Cowrywise should look into device authentication.
Also authenticate the withdrawal process and also limit the amount a person can transfer at a time
I know the goal is to be flexible with savings and payment but we are in Nigeria where fraud is high.
Hello Cowrywise,
Your genuine concern is very superb, I could recall back than earlier this year when I had some issues with my account and the Lady that responded to me really took Her time to explain to me like I was a Toddler (LOL). That was so Professional, please keep up with your good and GOD bless every one of you that have been working tirelessly for the growth of the Organisation and its Customers.
I’m so relieved this has been sorted out cos I ve always been an advocate of cowrywise.my friends have started using it cos i convinced them to..I also support the more robust authentication process.
Good thing it’s finally resolved and lessons learnt.
Let’s all ensure we safeguard our banking credentials at all times.
We move
Thank you for this update
I want to to thank yօu fօr thіs wonderful гead!! I certainly enjoyed every ⅼittle bіt of
it. I have got you book-marked to check оut new stuff yоu post?
Wow! After all I got a webpage from where I can in fact get useful data concerning my study and knowledge.
I was trying to put my girlfriend through on how to make transfer. My Account got flagged during the process. I need you guys to fix this problem I please ???
Why am I unable to change my mail on Cowrywise?
I can not top up my account, I need help too
I being debited twice from my account today
I did a transfer to my old cowrywise account number I saved on my phone pls help to reverse back to my present account cause you people changed the bank not know it sterling bank I thought is wema