Skip to content

ugurcany/Android-Showcase

Repository files navigation

Android Showcase

Build Status Android Arsenal

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!

List of Apps

Following is the list of sub-apps showcased in this project:

1. Multi-Counter

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

2. Movie Search

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

3. Flex Images

A grid-like app that uses Google's Flexbox layout to display images

Key libraries showcased:

More coming soon...

List of All Libraries & Components

All the libraries and components used throughout the app are as follows:

General purpose

  • 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
    • LiveData - Used to build data objects that notify views when the underlying database changes
    • ViewModel - Used to store and manage UI-related data in a lifecycle conscious way; allows data to survive configuration changes such as screen rotations
  • 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

User-interface related

Testing related

  • 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

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

License

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.