Android Showcase is a project that exhibits how to implement common Android stuff in proper and structured way. To do that, it provides a list of small sub-apps, each of which is implemented utilizing libraries & components that Android developers use on daily basis.
This project is under constant development. Please feel free to provide suggestions for improvements and point out any flawed approach you see. Every contribution is appreciated!
Following is the list of sub-apps showcased in this project:
A multi-fragment app that lets you play with counters while wandering through fragments
Key libraries showcased:
- FragNav - Android library for managing multiple stacks of fragments
- StateSaver - A utility library for Android to save objects in a
Bundle
without any boilerplate
An MVVM app that lets you search for movies through a REST movie API (with local db cache support)
Key libraries showcased:
- Retrofit - Type-safe HTTP client for Android and Java by Square, Inc.
- MMKV - An efficient, small mobile key-value storage framework developed by WeChat
- MultiStateView - Android View that displays different content based on its state
- BRVAH - Powerful and flexible RecyclerAdapter
A grid-like app that uses Google's Flexbox layout to display images
Key libraries showcased:
- FlexboxLayout - A library project which brings the similar capabilities of CSS Flexible Box Layout Module to Android
- Picasso - A powerful image downloading and caching library for Android
All the libraries and components used throughout the app are as follows:
- Dagger - A fast dependency injector for Android and Java
- Data Binding - A support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically
- Architecture Components
- AndroidUtilCode - A library that encapsulates the functions that are commonly used in Android development
- RxJava - A library for composing asynchronous and event-based programs by using observable sequences
- RxAndroid - Android specific bindings for RxJava 2
- Retrofit - Type-safe HTTP client for Android and Java by Square, Inc.
- MMKV - An efficient, small mobile key-value storage framework developed by WeChat
- StateSaver - A utility library for Android to save objects in a
Bundle
without any boilerplate
- FragNav - Android library for managing multiple stacks of fragments
- BRVAH - Powerful and flexible RecyclerAdapter
- Picasso - A powerful image downloading and caching library for Android
- Picasso Transformations - An Android transformation library providing a variety of image transformations for Picasso
- Android-SpinKit - Android loading animations
- MultiStateView - Android View that displays different content based on its state
- FlexboxLayout - A library project which brings the similar capabilities of CSS Flexible Box Layout Module to Android
- Barista - A library built on top of Espresso, that provides a simple and discoverable API, removing most of the boilerplate and verbosity of common Espresso tasks
- Mockito - Most popular mocking framework for Java
Proguard is enabled and proguard file covers all libraries used in this project.
The file is configured on top of the proguard file provided in the following Medium article: Android: My “default” Proguard configuration file
Copyright 2018 UGURCAN YILDIRIM
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.