android-architecture-resources
Articles
- Android Development Culture. The Document. #qualitymatters
- Ted Mosby - Software Architect
- Stinson's Playbook for Mosby
- Refactoring Plaid App - A reactive MVP Approach (Part 1)
- Refactoring Plaid App - A reactive MVP Approach (Part 2)
- Presenters don't need lifecycle events
- Model-View-Intent on Android
- Architecting Android... The clean way?
- Architecting Android... The evolution
- Hexawhat Architecture?
- Approaching Android with MVVM
- MVVM on Android using the Data Binding Library
- MVVM on Android: What You Need to Know
- What is all this Clean Architecture jibber-jabber about? - Part 1
- What is all this Clean Architecture jibber-jabber about? - Part 2
- MVP - Presenters That Survive Configuration Changes (Part 1)
- MVP - Presenters That Survive Configuration Changes (Part 2)
- Flux Architecture on Android
- Flux and Android
- M — Model in MVC, MVP, MVVC in Android
- Android Code That Scales, With MVP
- Android Application Architecture - Our journey from standard Activities and AsyncTasks to a modern MVP-based architecture powered by RxJava.
- MVP: The Missing Link
- Say goodbye to all main thread problems in MVP
- A brief introduction to a cleaner Android architecture: The MVP pattern
- MVPR: A Flexible, Testable Architecture for Android (Pt. 1)
- Introduction to Model View Presenter on Android
- Restoring state in Android MVP architecture
- Reactive Apps with Model-View-Intent - Part1 - Model
- Reactive Apps with Model-View-Intent - Part2 - View and Intent
- Reactive Apps with Model-View-Intent - Part3 - State Reducer
- Reactive Apps with Model-View-Intent - Part4 - Building UI Components
- Avenging - Android MVP without RxJava or Dagger
- RxJava: Android MVVM App structure with Retrofit
- Yet another MVP article — Part 1: Lets get to know the project
- Yet another MVP article — Part 2: How Dagger helps with the project
- Yet another MVP article — Part 3: Calling APIs using Retrofit
- Yet another MVP article — Part 4: RxJava and RxAndroid know how to response
- Yet another MVP article — Part 5: Writing Test using a mixture of Dagger and Espresso
- Introducing Bourbon: Dribbble, Android, MVP and a Common-Code Module
- On Navigation In Android-MVP
- Android MVP — An End to if (view != null)
- Let's make an MVVM at Android
- Model-View-Presenter: Android guidelines
- A detailed guide on developing Android apps using the Clean Architecture pattern
- Dagger 2 and MVP Architecture
Videos
- Marko Miloš from Undabot: Clean architecture on Android - Droidcon Zagreb 2016
- Building Maintainable Android Applications
- Robert C Martin - Clean Architecture
- Android Application Architecture (Android Dev Summit 2015)
- MVC, MVP, MVVM Design Patterns with Godfrey Nolan
Repositories
Libraries
- Android-ViewModelBinding - A lightweight library aiming to speed up Android app development by leveraging the new Android Data Binding together with the Model-View-ViewModel design pattern.
- AndroidViewModel - Separating data and state handling from Fragments or Activities without lots of boilerplate-code.
- Base - Base is a lightweight library that gives you a clean architecture foundation for your Android MVP's.
- Conductor - A small, yet full-featured framework that allows building View-based Android applications.
- Coordinators - Simple lifecycle for your MVWhatever on Android.
- EasyMVP - A full-featured framework that allows building android applications following the principles of Clean Architecture.
- kotgo -
🎏 An android development framwork on kotlin using MVP architecture. - mosby - A Model-View-Presenter library for modern Android apps.
- Moxy - Moxy is MVP library for Android.
- mv2m - Android MVVM lightweight library based on Android Data Binding.
- nimble - Nimble is a small, quick and flexible Model-View-Presenter(MVP) library for Android.
- Nucleus - Nucleus is a simple Android library, which utilizes the Model-View-Presenter pattern to properly connect background tasks with visual parts of an application.
- Phlux - Phlux is an Android library which helps to architect applications in a functional way.
- RoboMVVM - MVVM framework for Android.
- Robopupu - Robopupu is an Android library for architecting Android applications.
- RxViper - Android micro framework for developing apps based on clean VIPER architecture.
- scoop -
🍦 micro framework for building view based modular Android applications. - simple-mvp - Framework canônico para aplicação do padrão Model View Presenter no Android.
- Triad - Custom view based MVP for Android.
- LightCycle - LightCycle is an Android library that helps break logic out of Activity and Fragment classes into small, self-contained components called LightCycles.
- YaMvp - Yet another Mvp library. Super simple, but with enough functionality.
Examples
- Aizoban - An online and offline Manga reading application for Android.
- android-arch-sample - Sample app for MVP Architecture on Android.
- android-architecture - A collection of samples to discuss and showcase different architectural tools and patterns for Android apps.
- android-boilerplate - Android boilerplate app that showcases architecture and libraries used at ribot.
- android-clean-architecture-mvp - Sample Android project of how to apply Clean Architecture with MVP, and supporting configuration changes in a simple way.
- Android-Clean-Boilerplate - This is starter template for writing Android apps using Clean architecture.
- Android-Clean-Testing - Android Testing Sample Project.
- Android-CleanArchitecture - This is a sample app that is part of a series of blog posts I have written about how to architect an android application using Uncle Bob's clean architecture approach.
- android-flux-todo-app - Example of how to implement an Android TODO App using Facebook Flux Architecture.
- Android-ModelViewPresenter-Example - How to Adopt Model View Presenter on Android.
- android-mvvm-example - An example Application showing how to use MVVM (Model View ViewModel) on Android.
- Android-Testing-With-Kotlin - Android Clean Architecture tested with Kotlin.
- AndroidCleanMVP - Example of using MVP and Clean Architecture in Android.
- androidmvp - MVP Android Example.
- AndroidMvpStarter - Android App starter based on Android + MVP + Dagger2 + RxJava2 + Robolectric + Espresso + Mockito + JaCoCo.
- AndroidTDDBootStrap - A bootstrap project for TDD Android.
- archi - Repository that showcases 3 Android app architectures: "Standard Android", MVP and MVVM. The exact same app is built 3 times following the different patterns.
- Avengers - This project aims to work as a demo project and reference using the common frameworks and tools used in production enviroments.
- avenging - MVP pattern - Android no Dagger or RxJava example.
- bookdash-android-app - Book Dash is an Android App for the NPO where you can download books in different languages for free.
- Bourbon - An MVP Dribbble client for Android Mobile, Tablet, Wear and TV.
- Chateau - Chateau is a framework for adding (or improving) chat functionality in any Android app.
- chicago-roboto - The app uses an MVP architecture in which the interfaces, presenters and models are contained in a Java only core module, and the Android components, like Firebase integration (providers), custom View implementations, etc. are in the Android app module.
- clean-architecture - An example of the application built around clean architecture principles as defined. Uncle Bob.
- Clean-Architecture-Android - Example Android Clean Architecture used to explain how to use this architecture (rules) in our android applications.
- Clean-Contacts - Clean implementation on Android.
- CleanArchitecture.
- cleancodeapp
- Countries - An example Android app using Retrofit, Realm, Parceler, Dagger and the MVVM pattern with the data binding lib.
- CourseraDemoApp - Demo app to demonstrate creating Android app based on VIPER + MVVM
- dev-summit-architecture-demo - The demo application that we've used in the Architecture Talk @ Android Dev Summit 2015.
- EasyMVP - Model-View-Presenter Android implementation plus Dagger scoping and Material backwards compatibility.
- EffectiveAndroid - This sample project shows how to apply MVP and Clean architecture on an Android app.
- EffectiveAndroidUI - Sample project created to show some of the best Android practices to work in the Android UI Layer. The UI layer of this project has been implemented using MVP or MVVM (without binding engine) to show how this patterns works.
- Elephant - Elephant is PHPHub Community Android unofficial client, base on Material Design + MVP + RxJava + Retrofit.
- elm-architecture-android - An example of the ELM architecture on Android using Kotlin with Anko.
- ExampleGithubClient - This is an MVP example for Flowless, using Dagger2 subscoping and Bolts.
- exchange-rates-mvvm - Sample Android project which incorporates MVVM, databinding, RxJava2, Dagger2 and Clean Architecture approach.
- FastHub - FastHub the ultimate GitHub client for Android.
- Game-of-Thrones - Android Clean Architecture with MVP using Dagger2, RxJava and Espresso.
- GeekNews - A pure reading App based on Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide
- generator-android-hipster - Android generator based on MVP, Dagger2, RxJava, Java/Kotlin Stack and usefull libraries for Android.
- GithubClient - Example of Github API client implemented on top of Dagger 2 DI framework.
- GivesMeHopeAndroidClient - An unofficial Gives Me Hope Android client for educational purposes.
- hello-mvp.
- hello-mvp-dagger-2.
- hello-mvp-dagger-2 - Android MVP example code using RxJava, Retrolambda, Dagger 2, and more.
- hello-mvp-mortar.
- hexagonal-mvp-reactive-android - Android project using RxJava, Hexagonal architecture and MVP.
- Just-Another-Android-App - An Android base app with loads of cool libraries/configuration.
- kotlin-android-scaffolding - An android project structure using kotlin and most common libraries.
- marvel - Marvel Characters Android Application Assigned by smava GmbH.
- master-slave-clean-store - Master-slave template using Clean Architecture and https://github.com/NYTimes/Store.
- Material-Movies - An application about movies with material design.
- MovieGuide - An Android app that showcases the MVP pattern, Clean Architecture and RxJava.
- MVP-Pokemon - MVP Sample.
- MVP-Simple-Demo.
- MvpCleanArchitecture - A sample project using Clean architecture and MVP in Android.
- MvpLoaderSample - Sample project to showcase how to use Android Loaders with MVP to preserve Presenter across orientation changes.
- MVPSampleApplication - Sample application using MVP architecture.
- MVVMSampleApplication - Sample application using MVVM architecture.
- PopularMovies.
- Pokemon - This project shows how to implement MVP in Android.
- protohipster - This is an small example about use clean architecture on Android development.
- RoomBookerMVP.
- qualitymatters - Android Development Culture.
- Quality-Tools-for-Android - This is an Android sample app + tests that will be used to work on various project to increase the quality of the Android platform.
- reark - RxJava architecture library for Android.
- retro-dagger-example - MVP + Dagger2 + Retrofit.
- ribot-app-android - The ribot studio app for the Android Platform.
- RhymeCity - Sample Android app for aspiring lyricists.
- Rosie - Rosie is an Android framework to create applications following the principles of Clean Architecture.
- rx-mvvm-android - My way to MVVM using RxJava with new Android databinding.
- RxAndroidBootstrap - A project which showcases usage of Dagger 2, Rxjava and retrolambda among other open source libraries.
- RxJava-android-structure - RxJava: Android MVVM App structure with Retrofit
- RxJava2-MVVM-Android-Structure - This example is the implementation of a MVVM architecture for Android using RxJava 2 and Retrofit 2.
- RxMVP - Simple example of an application build with the MVP pattern using RxJava.
- RxMvpAndroid - Sample to show how MVP, Clean Architecture and RxJava can help you in building Android App.
- Search - viper architecture example.
- shoppinglist-clean-architecture-example - Example application that tries to make use of Clean Architecture.
- simple-stack-example-mvp
- T-MVP - Android AOP Architecture by Apt, AspectJ, Javassisit, based on Realm+Databinding+MVP+Retrofit+Rxjava.
- u2020 - A sample Android app which showcases advanced usage of Dagger among other open source libraries.
- UpcomingMoviesMVP - Sample project of MVP and Material Design using as repository a list of upcoming movies.
- ViperArchitectureExample - Viper architecture example.