I bet, all of us have faced a situation when a smartphone refuses to shoot the video or application cannot be started because of the insufficient disk space. A chance is wasted, frustration - increased, and the phone - broken. Of course, this is the worst possible scenario. And we are not going to follow it in this article. Instead, we will look at the option that will save you from manual cleaning of the phone and enable a full automation of the process, thus, maintaining an appropriate level of your peace of mind.
Utility App Development: Smart Answers to Tricky Questions
The magic wand to help you in this matter is a utility app (aka phone optimizer). There are plenty of them both in Google Play and App Store. I propose to pick up the best one and study it. Also, we are going to answer the most captious questions related to the process of development.
What do utility apps do?
First of all, let's try to find out what the purpose of phone cleaner app development is. When you install it on your phone, it detects different services and files and proposes to launch a deletion. What does it do it for? The answer is simple: it intends to get your phone free from the unnecessary data and clear the space for the things which are of a greater importance at the moment. Thus, the purpose of such application is to make sure that you can seamlessly use the apps and services that you need due to the fact that non-demanded data is automatically deleted or sorted in a certain way.
What are the most popular phone optimizers?
Utility apps are rather different from the other apps, like social media or messengers, in the sense of recognition and popularity. If their main functions are performed efficiently, the optimizers are hardly remembered. The greatest honor they receive implies not being removed from the smartphone.
Do you always look for alternatives? Learn How to Choose Alternative App Stores
Could you answer which phone cleaner is the best one among those ones you used? I bet you would not remember a single name. That is why I propose to refer to the top rated applications both from Google Play and App Store and consider their functionality.
Clean Master app is ranked first in the list of optimizing applications in Google Play. Let's make a brief overview of it's options.
Clean Master as the most popular uttility app
When you open it you will see all functions divided into four groups. They are Junk Files, Phone Boost, Antivirus, CPU Cooler. Also, the app shows the percentage of Storage and RAM usage.
The junk files are unnecessary files which hold no value for your device. The examples of junk files are temporary or idle files. They occupy a place in your storage but are never used. With the help of this option you can delete all of them or select the particular ones which belong to a certain application.
Phone Boost measures the CPU temperature and enables the CPU Cooler option which detects and shuts down the intensive applications to reduce the load on the processor and lower the temperature of the phone. In the last version, CPU Cooler feature is available separately.
Antivirus scans installed apps and detects the dangerous ones (e.g., apps that break into the system). It describes which exactly harm the detected app may cause to the device and proposes possible ways of fixing the problem.
The iOS version of Clean Master is Cheetah Mobile.
Unlike the Android app, iPhone application does not cover all the functional completeness described above. In fact, it's options are limited to the Gallery pics scanning and cleaning. Cheetah Mobile smartly detects identical or very similar photos and deletes the unnecessary copies after your confirmation.
How does rooting matter?
You must be wondering, where the name of the topic concerns the development of utility app. Before delving into this question, remember the app examples described above. The Clean Master from Google Play has a variety of options, whereas, Cheetah Mobile from App Store offers a very simple and limited functionality. What is the reason for that, in your opinion? Right you are, it lies in the essential differences between two operating systems.
Do you want to develop an app like WhatsApp? Then learn more about How to Make a Messenger App
As you know, Android is more free and open to experimentation than it's Apple competitor. Being an open source, Android doesn't mind the changes made in it's system. iOS, on the contrary, does not tolerate such interventions and prevents any alterations to the OS root.
Rooting in Android-based phone vs jailbreaking in iPhone
So, how is it related to the cleaner apps? This is very simple: utility applications often need to root the operating system in order to perform specific actions. Look at the cleaning apps in Google Play. You will see that a lot of them are posted with a notification "Root is required". However, you will not ever find a similar title about jailbreaking in the App Store because Apple is totally against this.
Note that rooting and jailbreaking are not identical concepts. While each of them involves a kind of intrusion into the system, the first one does it on a deeper level, allowing you to modify the source code of the system, and the second - on a surface, opening the possibility for users to install applications from the app stores alternative to the official one and to some extent customize the phone.
At the same time, rooting is considered to be almost a standard operation. But the jailbreaking is a dangerous procedure, which can cause significant harm to your device.
That is why, rooting Android smartphone, you get access to literally any customization you like. But, jailbreaking iPhone, you risk to get the operating system infected by the malicious software and other viruses.
Do you plan to create an iOS-based application? Learn everything about iOS Development with a Secure Background
In view of this, I propose to consider the development process of optimizer and measurement app exactly on Android since this operating system proposes much wider sphere of possible activities.
How to settle down to development?
Let's consider the main features to be included in the utility app and technologies to be involved during this process. The Clean Master functionality described above will be taken as a basis.
Displaying allocated status of the device
First of all, your memory optimizer should be able to show how many space is available both on the device storage and the RAM. Thus, the users will get a precise information whether the cleaning is needed and how many place can be further filled in.
For this purpose, you can use Android Storage Options which include such classes as Shared Preferences, Internal Storage, External Storage, SQLite Databases, and others.
Allocated status in utility app
To detect a space (total and free) in the memory section, you can take any file in Storage and apply a couple of methods to it:
getTotalSpace - will help you to find out the total space of the Storage in bytes;
getUsableSpace - will detect the space filled in with a certain data (in bytes);
getFreeSpace - will get a precise estimation of the bytes not being used.
Implementing memory optimization
This option mainly implies deleting temporary files created by the applications, browsers, and other tools installed on your device. Just imagine how many of them can be accumulated during the time you use your smartphone. The clogged-up storage is likely to have a negative impact on the device.
Pay a careful attention to the cache cleaning. Android has a special method getCacheDir that initiates a cleaning process by Android itself. In case you use any other method, Android would not understand that the files should be deleted and the application would gradually fill in the storage with a garbage.
This option is very important since often users remember that the deleted file was not that unnecessary. However, in case, backup was not applied, there is no way recover it. Thus, keeping the deleted files, at least, for some time, you show your customers that you care about them and improve their attitude towards your application.
For creating this option you can use either Android mechanism or create your own one.
Backup in utility apps
Android service provides you with the opportunity to keep the backup files in a remote storage in a so-called "cloud". Even if the application is reinstalled the users are able to recover the data and do not lose it completely.
You can still make your own backup tool which will go throughout the file system, gather, collect, and pack the files (e.g., into a zip). Afterward, the files will be sent either to a specially allotted server or kept directly in a device memory. The last option is suitable for common files, such as photos and videos. It can serve in case the user wants to reset the phone and not to lose the important data.
Detecting highly intensive processes
The option is intended to improve the phone performance by turning off applications that overload the processor.
Typically, the optimizer apps simply show a list of running applications and services, but do not show the CPU percentage. The point is that the kernel configuration in modern smartphones is so complex that it is very difficult to implement correct calculation. For example, a system utility "Top" is able to show what exactly loads the processor. But it can easily display the total load of 350% if, for instance, the processor has 4 cores.
That is why your task is not to show the CPU % but display a list of running apps and services with the ability to stop each of them.
For getting the CPU usage statistics you can apply this template.
Utility apps often have a built-in option of antivirus which helps to detect and block malicious software.
For switching it on you can involve third party services which have already implemented ready mechanisms. Your task is to integrate them into your app.
Antivirus in utility app
As an example, take a look at the Cloud Antivirus SDK. This is a toolkit designed specially for Android platform. It allows to easily integrate antimalware option into your app thus significantly reducing the cost of the independent development.
In addition to specific options, do not forget about the standard settings, which take place in nearly each application. For example, you will have to integrate push notifications and allow users to disable them. For that, refer to the Google Cloud Messaging (GCM) mechanism.
Also, it would be nice to offer users a possibility to make shortcut icons related to the certain features on the Home screen of the device. When implementing it, note that Android applications have one or more parts called Activity. Some of them can work as points of entry (at least one point of entry is obligatory). You can make several points and for each of them set the icon and title.
Which way to earn?
Probably, this is the key question which arises when deciding to launch a development. Even though optimizing apps are quite specific ones, their monetization model slightly differs from the applications of different types. Among the possible ways of raising money you can consider the following ones:
How you should monetize your utility app
Earn from advertising. This is a safe and proven method of getting income. Include ads into your app and receive some tips for it.
Charge for extra content. For example, you can offer users more space in order to backup their data. Looking back at the Clean Master app example, it is worth mentioning that 2Gb goes for free. However, if you want to occupy more space you should pay $2 per month for 20Gb and $6 for 1000GB.
Sell additional features. Think of advanced functionality which can be distributed for money. For instance, you can extend the existed options and launch the data scanning at a deeper level or offer totally new capabilities enabling, say, monitoring battery status in order to prevent overcharging.
These are just a few examples. There are much more which can be considered. Our managers will be happy to share their thoughts with you and hear fresh ideas from your side, so just contact us. Don't miss a chance of the most productive collaboration in your practice! By the way, subscribe to our blog as well - you will be able to find more answers to different questions related to software development!