https://github.com/poppsya/mediateka
The app demonstrates principles of usecases with RxJava2 , Dagger2 , Room , MVP , Mockito and Clean Architecture in Android. 📚
https://github.com/poppsya/mediateka
android android-application android-cleanarchitecture clean-architecture dagger2 gson java kotlin kotlin-android mockito-framework mvp mvp-android retrofit room room-android room-persistence-library rxjava-android rxjava2 testing unit-testing
Last synced: 4 months ago
JSON representation
The app demonstrates principles of usecases with RxJava2 , Dagger2 , Room , MVP , Mockito and Clean Architecture in Android. 📚
- Host: GitHub
- URL: https://github.com/poppsya/mediateka
- Owner: PopPsyA
- License: apache-2.0
- Created: 2018-05-09T13:18:39.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-06-03T08:57:04.000Z (almost 5 years ago)
- Last Synced: 2023-07-19T03:53:58.329Z (almost 2 years ago)
- Topics: android, android-application, android-cleanarchitecture, clean-architecture, dagger2, gson, java, kotlin, kotlin-android, mockito-framework, mvp, mvp-android, retrofit, room, room-android, room-persistence-library, rxjava-android, rxjava2, testing, unit-testing
- Language: Java
- Homepage:
- Size: 663 KB
- Stars: 38
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/Devit951/Mediateka)

[](http://www.apache.org/licenses/LICENSE-2.0.html)
[](https://play.google.com/store/apps/details?id=com.ru.devit.mediateka)
# Mediateka
## About
The app demonstrates principles of Clean Architecture in Android.Based on data from https://www.themoviedb.org/
## Screenshots


## Simple illustrate demo app https://www.youtube.com/watch?v=mIP0qA8URfE
## Current functuonality :
* First tab (ActualCinemas) : filter cinemas and show actual cinemas
* Second tab (TopRatedCinemas) : filter cinemas and show top rated cinemas
* Third tab (UpComingCinemas) : filter cinemas and show future cinemas
* Each [CinemaDetail's](https://github.com/Devit951/Mediateka/blob/master/app/src/main/java/com/ru/devit/mediateka/presentation/cinemadetail/CinemaDetailsActivity.java) screen contain cinema info and all cast's to this cinema
* Each [ActorDetail's](https://github.com/Devit951/Mediateka/blob/master/app/src/main/java/com/ru/devit/mediateka/presentation/actordetail/ActorDetailActivity.java) screen contain actor info and all cinema's to this actor
* CinemaDetailActivity gives possibility to schedule cinema time
* Mediateka perfectly work without internet connection(Need first time to download data)
* [Realized search functionality (cinemas , actors)](https://github.com/Devit951/Mediateka/blob/master/app/src/main/java/com/ru/devit/mediateka/presentation/search/SearchActivity.java)
* Realzied database with many-to-many relationship's
* Realized Transtition animation's between screen's
* All screen's have progress bar for responsiveness
* Support android version from 4.4
* Presintation layer work with [MVP](https://android.jlelse.eu/android-mvp-for-beginners-25889c500443) pattern-------
## Clean diagram
## Data Layer

-------## Coming soon
1. Add the service which handle new cinams and create notification to show user
2. Add Advanced Search screen.
3. Support landscape orientation and tablets.
4. And more , more some beatiful features...## Technology
1. [Retrofit 2](https://github.com/square/retrofit) is the #1 library for network calls at the moment.
2. [RxJava 2](https://github.com/ReactiveX/RxJava) brings the possibility to work with streams of data and helps to connect different Clean Architecture layers with each other.
3. [Dagger 2](https://github.com/google/dagger) helps to achieve Dependency Inversion principle through Dependency Injection mechanisms.
4. [Room](https://developer.android.com/topic/libraries/architecture/room) persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
5. [Picasso](https://github.com/square/picasso) a powerful image downloading and caching library for Android
6. [Pallete](https://developer.android.com/training/material/palette-colors) beatiful support libary for dynamic change background view color## Testing
100% Unit tested presentation layer.