What's New

Showcase What's New on your app

License

License

GroupId

GroupId

io.github.anderscheow
ArtifactId

ArtifactId

whatsnew
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

aar
Description

Description

What's New
Showcase What's New on your app
Project URL

Project URL

https://github.com/anderscheow/WhatsNew
Source Code Management

Source Code Management

https://github.com/anderscheow/WhatsNew

Download whatsnew

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.anderscheow/whatsnew/ -->
<dependency>
    <groupId>io.github.anderscheow</groupId>
    <artifactId>whatsnew</artifactId>
    <version>1.1.0</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/io.github.anderscheow/whatsnew/
implementation 'io.github.anderscheow:whatsnew:1.1.0'
// https://jarcasting.com/artifacts/io.github.anderscheow/whatsnew/
implementation ("io.github.anderscheow:whatsnew:1.1.0")
'io.github.anderscheow:whatsnew:aar:1.1.0'
<dependency org="io.github.anderscheow" name="whatsnew" rev="1.1.0">
  <artifact name="whatsnew" type="aar" />
</dependency>
@Grapes(
@Grab(group='io.github.anderscheow', module='whatsnew', version='1.1.0')
)
libraryDependencies += "io.github.anderscheow" % "whatsnew" % "1.1.0"
[io.github.anderscheow/whatsnew "1.1.0"]

Dependencies

compile (10)

Group / Artifact Type Version
androidx.databinding » databinding-common jar 3.3.2
androidx.databinding » databinding-runtime jar 3.3.2
androidx.databinding » databinding-adapters jar 3.3.2
androidx.multidex » multidex jar 2.0.0
org.jetbrains.kotlin : kotlin-android-extensions-runtime jar 1.3.21
androidx.appcompat » appcompat jar 1.0.2
androidx.constraintlayout » constraintlayout jar 1.1.2
com.google.android.material » material jar 1.0.0
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.3.21
jp.wasabeef : recyclerview-animators jar 2.3.0

Project Modules

There are no modules declared in this project.

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

Versions

Version
1.1.0
1.0.1
1.0.0