Isn't it such a pleasure to know that the app you installed on your Android phone is movable to external SD card, especially those hundreds-mega-byte apps?
Why is external SD card needed in the first place?
While some Android phones have quite big internal storage spaces that you would think you don't have to worry about storage spaces, the default apps / services from Google, such as Google Play services, Google Play Store, and Google Text-to-speech engine can take up considerable amounts of internal storage spaces and they are not movable to external SD card.
Unfortunately, you can't really uninstall those default apps / services, even though you don't want to use some of them. You can try to 'Uninstall updates' and those default apps will be gone from your apps list. However, when your phone decides to update apps, it will automatically install those uninstalled default apps back again.
Additionally, some apps / services are using the internal storage by default, such as to store the photos from camera, screenshot images, sounds, messages, notes, schedules, alarms, phone books, saved web pages, etc.
In that situation, any additional apps that you install will take up the storage spaces in no time.
It's very logical to add external SD card and move as many resources as possible to the SD card / set the service to use SD card as default storage, including moving the installed apps to external SD card.
How to check if an Android app is movable to external SD card or not?
To check if an Android app is movable to external SD card or not, go to Settings > Apps > Click the app that you want to check > Under Storage section, see if the 'Move to SD card' button is grayed out or not.
If the 'Move to SD card' button is clickable / not grayed out, that means you can move the app to external SD card. Once you move it, the button will change to 'Move to phone', indicating the app has been moved to the external SD card.
Why Not Movable to External SD Card?
Considering how limited the internal storage spaces can be, it's understandable if we get disappointed when we found out some apps we just installed are not movable to external SD card.
However, before we blame or get angry with the app developers for not allowing their apps to be installed on external storage, we have to understand the reasons why the app developers do not make their apps movable to external SD card.
Connection between external SD card and the phone can be disrupted when you connect your phone to computer and enable the USB Mass storage, or when you unmount and remove the SD card. Every time the connection between external SD card and the phone is disrupted, some features / processes / services are killed - making some apps cannot work properly. This can be very troublesome for the app's users. For example, an app that have alarms feature will have the alarms cancelled when the SD card is unmounted - users have to re-register the alarms again after the SD card is remounted. Those kind of apps' developers then set their apps not to be movable to external storage to prevent their apps' features broken.
The complete list of the features that will be disrupted when the external SD cart is unmounted can be found on developer.android.com 'Applications That Should NOT Install on External Storage'.
So, next time you want to install an app, understand what the app will do and then you can expect whether the app will be movable to external storage or not.