All Projects → rodrigobressan → Android_tmdb_clean_architecture

rodrigobressan / Android_tmdb_clean_architecture

Licence: mit
Showcase of clean architecture concepts along with Continuous Integration and Development for modular Android applications. Includes test suits (functional and unit tests) along with code coverage.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Android tmdb clean architecture

Android-Starter-Kit
This is up-to-date android studio project for native android application, that is using modern tools and libraries.
Stars: ✭ 16 (-74.6%)
Mutual labels:  mvp, clean-architecture, mockito, dagger2, robolectric, retrofit2, mvp-android
Mvvm Kotlin Android Architecture
MVVM + Kotlin + Retrofit2 + Hilt + Coroutines + Kotlin Flow + mockK + Espresso + Junit5
Stars: ✭ 1,014 (+1509.52%)
Mutual labels:  rxjava, mvp, android-architecture, espresso, mockito, retrofit2
Githubprojectbrowser
This is a sample Android Project that is based on Clean Architecture
Stars: ✭ 64 (+1.59%)
Mutual labels:  dagger2, clean-architecture, room, espresso, mockito, retrofit2
Marvel
Marvel Characters Android Application Assigned by smava GmbH
Stars: ✭ 227 (+260.32%)
Mutual labels:  rxjava, mvp, espresso, mockito, robolectric, retrofit2
Mvparms
⚔️ A common architecture for Android applications developing based on MVP, integrates many open source projects, to make your developing quicker and easier (一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架).
Stars: ✭ 10,146 (+16004.76%)
Mutual labels:  rxjava, dagger2, mvp, android-architecture, mvp-android, retrofit2
Mvpandroid
Sample app to demonstrate MVP (Model - View - Presenter) architecture in android
Stars: ✭ 91 (+44.44%)
Mutual labels:  rxjava, dagger2, mvp, mvp-android, espresso, mockito
Kotlinrxmvparchitecture
Clean MVP Architecture with RxJava + Dagger2 + Retrofit2 + Mockito + Fresco + EasiestGenericRecyclerAdapter using Kotlin. Includes Unit Tests(Kotlin Tests)!
Stars: ✭ 94 (+49.21%)
Mutual labels:  rxjava, dagger2, mvp, clean-architecture, mvp-android, retrofit2
Just Another Android App
An Android base app with loads of cool libraries/configuration NOT MAINTAINED
Stars: ✭ 1,654 (+2525.4%)
Mutual labels:  rxjava, dagger2, android-architecture, mvp-android, robolectric, retrofit2
TDDWeatherApp
Android App trying to apply TDD and using MVVM, Kotlin Coroutines
Stars: ✭ 38 (-39.68%)
Mutual labels:  mockito, android-architecture, espresso, dagger2, retrofit2
GithubApp-android-architecture
Let's learn a deep look at the Android architecture
Stars: ✭ 16 (-74.6%)
Mutual labels:  mvp, clean-architecture, android-architecture, dagger2, retrofit2
Weather-Guru-MVP
Sample Material-design Android weather application build with MVP architectural approach using Dagger2, RxJava2, Retrofit2, Event-Bus, GreenDao, Butterknife, Lottie etc.
Stars: ✭ 15 (-76.19%)
Mutual labels:  mvp, mockito, dagger2, robolectric, retrofit2
Kotlin Android Starter
[Kotlin Android] Kotlin Android starter based MVP/Dagger2/RxJava2/Robolectric/Espresso/Mockito. It provides a generator to fast create a Kotlin Android project.
Stars: ✭ 589 (+834.92%)
Mutual labels:  rxjava, mvp, espresso, mockito, robolectric
BESTV
Android TV App powered by TMDb. It is a easy way to find the best TV content, the top movies, series... all of that in your TV.
Stars: ✭ 49 (-22.22%)
Mutual labels:  clean-architecture, mockito, dagger2, retrofit2, mvp-android
Business Search App Java
Showcases object oriented programming in Java, Java Swing, Kotlin, and Android
Stars: ✭ 53 (-15.87%)
Mutual labels:  dagger2, mvp, clean-architecture, travis-ci, retrofit2
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+669.84%)
Mutual labels:  rxjava, mvp, clean-architecture, android-architecture, room
mvp-sample
Demonstrates how to implement MVP (Model View Presenter) pattern using Kotlin, RXJava, Retrofit, Dagger and DataBinding
Stars: ✭ 35 (-44.44%)
Mutual labels:  mvp, mockito, espresso, dagger2, retrofit2
AndroidTutorials
Ejemplos Android [Dagger2,RxJava,MVP,Retrofit2,SQLite]
Stars: ✭ 22 (-65.08%)
Mutual labels:  sqlite, rxjava, dagger2, retrofit2, mvp-android
AndroidMVPArchitecture
Android MVP architecture sample project with or without RxJava and Dagger2 and Kotlin
Stars: ✭ 78 (+23.81%)
Mutual labels:  rxjava, mvp, mockito, dagger2, retrofit2
mvp-android-template
MVP Android Template to give you a Quick Head Start for your next Android Project. It implements MVP Architecture using Dagger2, Room, RxJava2 , Retrofit2
Stars: ✭ 20 (-68.25%)
Mutual labels:  room, mvp, dagger2, retrofit2, mvp-android
Clean Mvvm Archcomponents
👽 Android app consuming Star Wars API.Built with clean architecture ,MVVM pattern, Koin , Coroutines + Flows ,Architecture Components, Data Binding , Firebase , Unit/UI Tests ,Motion Layout
Stars: ✭ 285 (+352.38%)
Mutual labels:  clean-architecture, android-architecture, espresso, robolectric, retrofit2

Android TMDB with Clean Architecture concepts

Build Status Known Vulnerabilities Codacy Badge codecov

What is this?

Just a simple project to try new stuff on Android showing some movies fetched from the TMDB (The Movie Database) API.

The purpose of this project is to show a real-world application example, from using modern architecture decisions, to having a good code coverage, as well as providing integrations with many third-party services (Travis CI, Firebase Test Lab, Google Play, Crashlytics, Slack, etc)

Feel free to use it just for learning or for your next Android application - I would be pretty honored!

  • Kotlin, because no one anymore likes to write huge classes for simple objects, right?
  • Clean Architecture Concepts
  • MVP (Model-View-Presenter)
  • RxJava, mostly for the whole reactive communication between the modules
  • Dagger 2 for Dependency Injection purposes
  • Retrofit for our HTTP requests
  • Room for our local persistence (if you want to check some of it using SQLite, you can check the commit history, there is also a previous implementation using it)
  • Mockito for mock some classes on our tests
  • Robolectric for our persistence layer (named as cache module) run our unit tests
  • Flavors & Build Types, so we can have our project generating many different artifacts, with it's own API endpoints, icons, etc
    • Flavors: Pro and Demo
    • Build Types: Debug, QA, Release
  • Espresso, for our instrumentation tests
  • Travis CI, for making a full build of our project, as well as run all tests (unit & instrumentation), once we have any push into the repo.
  • Firebase Test Lab, so we can have a place to run all our instrumentation tests properly.
  • CodeCov, for generating our code coverage in the project
  • Fabric/Crashlytics for providing statistics of our application, as well to provide an excellent Crash Report and release for QA team
  • Slack Notification, notifies your slack team if the build is done successfully - and also if it failed.
  • Google Play Publisher, for pushing your release artifacts directly into Google Play (beta channel)

In case of any questions, feel free to open an issue, I will be glad to help.

Requirements

Android Studio

JDK 1.8

Android SDK

Project Architecture

This project's architecture was heavily inspired by Bufferoos Clean Architecture (you can check it out here). The diagram for it is shown below:

Project Architecture

Continuous Integration Flow

Continuous Integration

Demo

Project Demo

Future improvements

  • [x] Add Room;
  • [x] Implementation of movie details section;
  • [ ] Architecture Components;
  • [ ] Auto-bump version;
  • [ ] Generate changelog based on the previous commits;
  • [ ] Open Movie in Netflix app, in case it's installed;

License

All code licensed under the MIT License. You are free to do whatever you want with this piece of code. Check it out the LICENSE.md file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].