Making App Name Configurable for Open Event Organizer App
Open Event Organizer is a client side android application of Open Event API server created for event organizers and entry managers. The application provides a way to configure the app name via environment variable app_name. This allows the user to change the app name just by setting the environment variable app_name to the new name. I will be talking about its implementation in the application in this blog.
Generally, in an android application, the app name is stored as a static string resource and set in the manifest file by referencing to it. In the Organizer application, the app name variable is defined in the app’s gradle file. It is assigned to the value of environment variable app_name and the default value is assigned if the variable is null. The relevant code in the manifest file is:
def app_name = System.getenv('app_name') ?: "eventyay organizer"
The default value of app_name is kept, eventyay organizer. This is the app name when the user doesn’t set environment variable app_name. To reference the variable from the gradle file into the manifest, manifestPlaceholders are defined in the gradle’s defaultConfig. It is a map of key value pairs. The relevant code is:
defaultConfig { ... ... manifestPlaceholders = [appName: app_name] }
This makes appName available for use in the app manifest. In the manifest file, app name is assigned to the appName set in the gradle.
<application ... ... android:label="${appName}"
app/src/main/AndroidManifest.xml
By this, the application name is made configurable from the environment variable.
Links:
1. ManifestPlaceholders documentation
2. Stackoverflow answer about getting environment variable in gradle