I was using an English dictionary app and that was the time when a question came into my mind. The question was : how do small apps accumulate so much data. The dictionary app which I was using was of only 50 MBs but it had collected millions of words and their description along with highlighted information. It really shocked me.
I started searching on this topic and what I learned from different sources is: it can be done with the help of dynamic loading, compression of data, binary format or with the help of a database.
There can be any technique used by the app for achieving this goal. Even when I used to write computer program it took massive space on drive when compared to an app. In this article we will dig out how small apps store large amount of data. Let’s check.
Ways by which apps store much data in just few Megabytes
There is no one and only way which is used during app development for reducing app storage size. There are different techniques which are used for this purpose.
With the help of DBMS
In this technique an app uses Data Base Management System to reduce storage size. DBMS technique uses a combination of different techniques for achieving this task.
It normalizes data in a structured form after reducing redundancy in data, compresses data before storing, purges outdated data, archives some files of data and caches.
It is a complete system which helps in storage of huge data sets in small storage size.
External data storage source
This method is used in apps which work on Internet connection only. Many apps use this technique and in this technique they don’t need to compress data. However, caching is important in such a technique.
External data storage source can be an online server on which entire data is stored and the data is accessed from these servers whenever a request is issued. Not only websites but some apps also use this method.
Data compression and file compression technique
This is the most common technique for representation of data in low storage volume. In data compression, data is compressed using different algorithms like GZIP. The data is compressed in a way that it does not lose essential part of the information. For example if we have a string “CCCCCCCCCC ” then a data compression algorithm will change this information in “10C” which can be decompressed to get the recent form of data. In this method essential information is not lost however in some cases quality of data gets decreased. Many apps use this technique for reducing data size.
Similarly file compression technique is used to compress files.
Caching of data
It is most common in web applications. In this method, most commonly used data is stored in a separate file and when someone requests that data it is loaded easily.
Caching technique is used by many applications and it helps in data storage and access.
Partial data synchronization technique
In this technique only a portion of data, which is added or modified recently, will be synced rather than syncing all data. This method helps in reducing space and it is often used in app development. Instead, differential synchronization technique is also used and it depends on the type of application being developed.
The difference between these two techniques is that in the first method only a portion of data is synced while in the other method only changes are synced.
Removing redundancy and Data duplication
Sometimes we have a large amount of data and many parts of such a big data file contain small pieces of data which are repeated throughout the file.
In DBMS technique redundancy is removed automatically. However if an app does not use DBMS for data compression and normalization then it can use any other technique for removing redundant data which will help in saving storage.
Above we have discussed various techniques used by apps for reducing storage space and the most commonly used techniques are DBMS, data compression and partial data synchronization. Which technique will be used by an app, it is completely decided by the type of the application.
We hope this article will be helpful in making your idea clear about this concept.