14 months into development, a new language to learn and 111 commits later, today I am happy and proud to annouce my new app called
YAC - Yet Another Cleaner. This post will start a series telling how and why I have taken some decisions during development of the app. And the first part of the app will tell you why this app exists.
Before I jump into details, let me tell you what the app does, and will give you some birds' eye view of it’s technical aspects. YAC is designed to Expect some directories which it will listen for new files and will remind you to clean those directories on timely basis. The directories can be selected from internal storage + SD Card. The scans and reminders are totally battery friendly. It is such a way that I have set hourly scanning period in one early alpha and even with that “short” period, this app is not even listed in top 5% battery usage. Plus unlike other apps, this app does not blindly delete all the files, it can Keep some files while others are deleted or you can move them to any desired location including your SD Card.
Technically this app is developed in Kotlin from it’s first day. It’s local database is Realm. And this app is powered by Firebase for Analytics and Database. During alpha and beta stage, this app was A/B tested using Firebase Remote Config and I am hosting an App page + FAQ page using Firebase Hosting right now. Lately I have used Firebase Cloud Functions to generate a short url for Firebase Dynamic Link per user.
But why this app? Why in the land of so many cleaners I spent a whole year to develop one app which is just another cleaner? The answer lies in daily usage of our phones and our social lives with it. In India (and in almost everywhere) our most social circle is on WhatsApp, chatting and sharing lots of Images. And If we can’t pay attention, it easily occupies GBs in our phone’s internal memory.
This shuold not be a problem in a phone whose internal memory starts with 16 GBs, but those phones are expensive and the affordable ones have less internal memory in their phones, which starts from 2 GBs to run max 8GBs of internal memory. Sadly, many of the apps does not (or can not) write on external storage yet. While there are 66% devices where apps can write on External Storage natively and properly. In this scenario we need a cleaner to clean many of the files from our devices, because we don’t need all those beautiful good morning images dumped in our phones every day.
And that’s why we need cleaners, and those cleaners are one of the most popular apps here in India. People here love clean master and it’s friends but (as per my experience) half of their work is pretty useless and much of their functionalities are misguided for mobile. There are some apps which can clean files properly, designed beautifully and they just work.
CCleaner is one of them, which I use regularly.
CCleaner is better then 80% of lot in that category. It looks beautiful, it cleans almost all un-needed files, they have one beautiful section dedicated to WhatsApp, and we can provide specific folder which they can clean. It was one of the first App for which I spent some money on Google Play.
But all these cleaners have one flow, Whatever they clean, they clean blindly. In those tons of Good Morning pics, child pics and overly circulated jokes, there are some pictures which are imprtant to us. From the people who are important to us. There can be some shared pics of a re-union or some child-hood pics of yours which your uncle shared with you, or a video of your niece’s poem reciting, or a lost-song shared by your friend. We need to save these things before our cleaners remove them from devices. We need to filter out those beautiful moments from those useless junks and save them to some safe place. And sadly, no app could do that.
I have been at those places, It used to be a Pain to remember to move some files before invoking CCleaner or a pain to see that file being removed. And that’s why I developed YAC, for me, to relieve my self from this pain. And then published it, hoping it can help more people.
If you came here for technical specs, you would have been disappointed by now. Hold on, this is just a starting of a series. In which, I will explore technical details and challenges I have faced, which might be more interesting for you.
This Series states some stories behind the App I have developed,
to try the app, click below to download it from playstore…
Next In the series: Why api 20+ and What is the deal with Kotlin in YAC?