All Projects → anderscheow → WhatsNew

anderscheow / WhatsNew

Licence: MIT License
Beautiful way to showcase new features of your app.

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Android Arsenal Build Status PayPal

What's New

Beautiful way to showcase new features of your app.

💻 Installation

dependencies {
  implementation 'io.github.anderscheow:whatsnew:1.0.1'
}

Usage

Setup features

val features = ArrayList<Feature>().apply {

    // Recommended: Use builder (Support more configurations)
    this.add(Feature.Builder()
            .setIconRes(R.drawable.access_point)
            .setIconColor(Color.RED)
            .setTitleRes(R.string.title_one)
            .setTitleTextColor(Color.BLACK)
            .setDescriptionRes(R.string.description_one)
            .setDescriptionTextColor(Color.BLACK)
            .build())

    // or use constructor
    this.add(Feature(R.drawable.account, Color.RED, R.string.title_two, Color.BLACK, R.string.description_two, Color.BLACK))
}

Setup and show What's New

// Only show partial configurations, please refer WhatsNew.Builder to view more configurations
WhatsNew.Builder(this)
        .setTitleRes(R.string.app_name)
        .setTitleColor(Color.BLACK)
        .setBackgroundRes(android.R.color.white)
        .setPrimaryButtonBackgroundColor(Color.RED)
        .setPrimaryButtonTextColor(Color.WHITE)
        .setPrimaryButtonTextRes(R.string.lets_go)
        .enablePrimaryButtonAllCaps(false)
        .setSecondaryButtonTextColor(Color.RED)
        .setSecondaryButtonTextRes(R.string.learn_more)
        .enableSecondaryButtonAllCaps(false)
        .enableFadeAnimation(true)
        .setFadeAnimationDuration(500L)
        .setFeatureItemAnimator(FeatureItemAnimator.FADE_IN_UP)
        .setFeatureItemAnimatorDuration(500L)
        .setFeatures(features)
        .setListener(object : WhatsNewListener {
            override fun onWhatsNewShowed(whatsNew: WhatsNew) {
                Log.d(TAG, "onWhatsNewShowed")
            }

            override fun onWhatsNewDismissed() {
                Log.d(TAG, "onWhatsNewDismissed")
            }

            override fun onPrimaryButtonClicked(whatsNew: WhatsNew) {
                Log.d(TAG, "onPrimaryButtonClicked")
            }

            override fun onSecondaryButtonClicked(whatsNew: WhatsNew) {
                Log.d(TAG, "onSecondaryButtonClicked")
            }
        })
        .build()

Support different animation when display features.

Thanks to RecyclerView Animators by wasabeef

  • NONE
  • SCALE_IN
  • SCALE_IN_TOP
  • SCALE_IN_BOTTOM
  • SCALE_IN_LEFT
  • SCALE_IN_RIGHT
  • FADE_IN
  • FADE_IN_UP
  • FADE_IN_DOWN
  • FADE_IN_LEFT
  • FADE_IN_RIGHT
  • SLIDE_IN_UP
  • SLIDE_IN_DOWN
  • SLIDE_IN_LEFT
  • SLIDE_IN_RIGHT
  • OVERSHOOT_IN_LEFT
  • OVERSHOOT_IN_RIGHT

Changelog

1.1.0

  • Updated Gradle and Kotlin version
  • Changed Android Support artifacts to AndroidX
  • Removed some install dependencies from README

1.0.1

  • Add support for AndroidX

1.0.0

  • Introduce What's New library

Contributions

Any contribution is more than welcome! You can contribute through pull requests and issues on GitHub.

License

What's New is released under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].