An Android library for remotely managing app alerts, optional updates, and mandatory version blocking via a hosted JSON file.
Gandalf is an Android library that enables remote management of app alerts, optional updates, and mandatory version blocking. It solves the problem of needing to communicate with users about maintenance, new features, or critical updates without requiring a new app release. Developers host a JSON file on a server, and Gandalf checks it at app launch to determine if an alert, update prompt, or version block should be shown.
Android developers who need to remotely control user notifications, optional updates, or mandatory version enforcement for their apps, especially those managing apps with frequent updates or security concerns.
Developers choose Gandalf because it eliminates boilerplate code for remote app management, offers high customization for UI and JSON parsing, and provides a straightforward way to handle critical scenarios like security updates or end-of-life transitions without redeploying the app.
Easily notify a user with a simple alert, inform them of an optional update, and in dire situations block the user from accessing older versions of the application completely.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The README shows a minimal setup in the Application class and SplashActivity, reducing boilerplate code for remote management with just a few lines of configuration.
Using DialogStringHolder, developers can override all dialog titles, messages, and button texts, allowing full branding control as demonstrated in the custom strings section.
Gandalf supports custom JSON deserializers, enabling integration with existing server APIs or complex data structures beyond the default format, as detailed in the custom deserializer section.
Developers can use the Gandalf class directly with callbacks instead of extending GandalfActivity, offering integration into custom logic without architectural constraints.
The library requires a publicly accessible JSON file; if the server is down or slow, it can disrupt app startup and user experience without built-in retry or fallback logic mentioned in the README.
Gandalf only handles basic dialogs for alerts and updates, lacking features for in-app updates, beta channels, or sophisticated rollout strategies that some apps may require.
For iOS, a separate library (LaunchGate) is needed, which can increase maintenance overhead and inconsistency for teams managing both platforms, as noted in the README's iOS counterpart mention.