Hello, again! This article is somehow related to a workshop I made a few months ago, so if you are one of those TL;DR people, you can jump directly the open source demo app I prepared which also have the tools included: GitHub
What this is all about
This topic has crossed my mind after noticing that many users with “entry-level” or budget devices are struggling with a disastrous user experience while using many popular apps. When you see users face sluggish or even not responding UI while trying to perform basic operations like opening/closing the app or scrolling down list of items, you almost immediately get the feeling that there is something wrong or missing. Here I am trying to get to the bottom of this issue with many apps.
Most companies, entrepreneurs ,and startups know that it is a no-brainer that one of the most critical things before starting the development phase is selecting the target platform and audience. We all go through the “Smartphone Market shares” to see which platform can help us reach our target audience but we mostly giving relatively a less thought to the users with low-specs devices. If we target Android platform for our app, we need to make sure that the majority of Android users can use it more or less smoothly on their 1Gb RAM devices for example. Not all Android users have flagships 🙂
Know your audience
It is obvious that fellow developers and people who are passionate by technology or electronics have their criteria for choosing the right device that satisfies their needs. In the other hand many other people that are not quite up to date with tech news or those who are interested in a completely different fields, want something that just works and also easy on their wallets, those people deserve a decent experience too and are the big majority of smartphone user base because, again, not every one can afford a high-end flagship device.
Make everyone happy, almost.
Have you ever been like: “Oh my app works great on my new flagship smartphone I think I am ready to release it on Google Play!”? we all feel that way the urge to share what we made and all the excitement by that! but wait a second.. How about those 4″-inch screen, 1Gb RAM smartphones from 2013?! We almost forgot that there is millions of users out there that would be happy to use our apps if it would not drain their battery in a few hours or wouldn’t lag just after being launched 🙁
An app should be tested on multiple screen sized smartphones with different memory sizes as well; If we don’t want that our app gets deleted from many users’ devices since day one, of course 🙁
How to achieve that
We are always in a hurry to make the perfect app and release it to “the wild” as soon as possible. Whether you are a developer or a company you must be tied to a budget and a deadline since more time = less resources, and you cannot expect a mid-sized company or a freelancer to test on 99 devices as well, but it might be crutial to remember that it is better to spend a few days on testing and optimization and save months of bad rating and complains or -even worse- the bad reputation that your app will gain over the time because it is easier to just uninstall an app than sending feedbacks and waiting for future updates.
Remember that you can always ask your friends to test your app on their devices before release to make sure you have some precious feedback.
Memory leaks is one of the scariest 2 words for every programmer, especially Android developers because of ,*sigh* .. JAVA, and its terrible garbage collector. This is a very serious matter since the less RAM size, the sooner the app will be terminated in case of memory leak.
Tools and links
I will share some tools that help me during testing process and that can come in handy for you too!
all this tools can be found in a demo app I made for those who want to see how things work. You can find it under open-source GPL license on Github.
an awesome toll that, among numerous things, will help you take a closer look at your app’s memory management
Stetho helps you build, monitor your app from Google Chrome using Google DevTools. Stetho is easy to use/integrate.
- DDMS official guide
If you have been developing on Android Studio you most likely know DDMS but it might be worth giving a shot although it will take some time to get used to.