How to implement a changelog in android?

I found Michael Flisar's change log (https://github.com/MFlisar/changelog) extremely easy to use.

After an app update I show a "What's New" dialog by:

ChangelogBuilder builder = new ChangelogBuilder()
            .withTitle("What\'s New")
            .withUseBulletList(true)
            .withManagedShowOnStart(true)
            .buildAndShowDialog(activity, false);

And I can show an activity with the entire change log via:

ChangelogBuilder builder = new ChangelogBuilder()
            .withTitle("Change Log")
            .withUseBulletList(true)
            .buildAndStartActivity(context, true);

Easy peasy.


one option is to use Android Change Log.

With Android Change Log you can easily create, show and maintain an Android change log dialog.

Features

  • display only what's new or show the whole change log
  • display on first start of newly installed app or on new app version
  • write the change log in a simplified language but also use HTML and CSS if needed

You can store a value in SharedPreferences which version you showed the changelog last time.

E.g.: 'lastChangelogVersion' : '1.1.0'

When your MainActivity starts it compares this value with the current version of your software and if it differs the changelog popup appears (and sets the new value).

This value will not be overridden when a new version of your application is being installed.

UPDATE:

Also, you might encounter that the user cleared your application's data. In this case you can't decide whether the changelog was displayed before or not so you can show it again. Android Market works the same way: if you clear it's app data you will be facing with the Licence Agreement again when launching Market.


I found the following options for adding a changelog to your Android app. Using any of these libraries would definitely save time over implementing this yourself. They all follow the general approach that @papaiatis mentions in his answer.

  1. changeloglib
  2. ckChangeLog
  3. paperboy
  4. changelog
  5. android-change-log
  6. Appnouncements (Disclaimer: I'm the author of this one)