This is a showcase app demonstrating a few of the current best practices for Android development.
Instead of using a ViewPager with Fragments I decided to use the new PagerSnapHelper in conjunction with a RecyclerView. This allows avoiding the horrid Fragment APIs. RecyclerView comes with efficient view recycling, built in animation and better APIs to add/remove/move cells, or in this case 'Pages'.
- Dagger 2 for dependency injectio n
- RxJava Reactive Extensions for the JVM
- AutoValue preprocessor to create immutable classes - used in conjunction with AutoParcel to create Parcelable class implementation
- AdapterDelegates "favour composition over inheritance" for RecyclerView Adapters
- ButterKnife annotation processing to generate boilerplate code
- RxBinding reactive binding APIs for Android UI widgets
- Retrofit 2 type-safe HTTP client
- Picasso image downloading and caching library
- Android Support Libraries just awesome ¯_(ツ)_/¯