Saturday, February 23, 2019

An open letter to fellow Android app developers

Dear Android App developers,

    As all app developers find out eventually, the app manifest file specifies certain properties about your application, one of these things is where the application shall be stored on the users device. As some users know, Android supports using external storage such as an SD card, but they soon find that only some apps are able to be moved to the SD card. This is completely up to us, we decide how our apps are stored. The user may not be aware of how this works but aside from rooting their device they have no choice if we don't allow them.

    This feature of Android was intended to allow developers to ensure certain applications are on storage that is typically soldered into their device. This is really good for applications such as custom launcher screens, live wallpapers, custom keyboards, and background services. Apps that need to be accessible at all times should be stored on the user's internal storage, however this storage is very valuable because it cannot be upgraded. Most applications such as games, many social media apps, web browsers, some media players, and most utility tools like databases and tutorials should allow the user to store them on their SD card. My two apps for instance are very tiny to install but they are set to prefer the user's SD card, the user is allowed to move them but by default they shall not take up any valuable space on the user's internal storage, we developers should allow the user to move the app to their preferred storage whenever possible and some apps should prefer the external storage as mine do. Most users won't move our apps to the external storage but for the users with limited space, a large SD card, and/or basic technical knowledge the option to move apps to the SD card is a welcome freedom and will allow them to keep your app even after their internal space is used up.

    The SD cards are getting cheaper and many Android phones and tablets accept them as storage. Allowing the user to choose which storage will hold our apps is a basic courtesy in my view and most of the time the user will leave the apps installed to their internal storage so there is little reason to force the user to keep their app library on the internal storage unless the app is something like a background service program or a keyboard. Developers don't need to rebuild their apps to allow users to store it on the SD card, I can conform that you merely need to change one line in the manifest file. Here is a link to Google's documentation.

    Please allow users to move our apps to their SD cards, it's easy in nearly all cases as you only need to change one line in one file. Allowing users the option to move the app to the SD card but installing to the internal storage by default won't harm their performance in any way but it does allow them to use cheaper storage on apps that take a lot of space. The only time a user would have an issue is if they unmount the SD card or put the phone into USB storage mode (to my knowledge this is deprecated by MTP), in this case the app would be temporarily unavailable until the SD card is mounted again along with everything else on the SD card such as their media library. Most if not all users who know how to put an app on the SD card will also know about this issue with the SD card when it's unmounted and would not find it an issue, and with MTP the majority of users won't ever have their SD unmounted unless they are swapping it for a larger one, in which case they would also be copying all their data to the new card.

    If we allow users the option to save their stuff to the SD card then they can save their valuable space for apps such as keyboards and will be able to keep our apps longer than apps that hog the internal storage. Since I have made this point, I will continue to allow users to move my apps to their SD card, with the exception of certain services which need to be always there. Any games and apps I make that can be stored on the SD card will be either set to prefer the SD card or merely set to allow the user to move them at their digression, and other than a keyboard or launcher there really isn't much out there that needs the internal storage. It doesn't take very long to add a single line to the manifest or gradle file that allows the app to be moved to the SD card.

Latest Post

Steam on Linux Mint Cinnamon

Most viewed