{"id":23101417,"url":"https://github.com/poppsya/mediateka","last_synced_at":"2025-08-16T14:32:28.349Z","repository":{"id":143525704,"uuid":"132759831","full_name":"PopPsyA/Mediateka","owner":"PopPsyA","description":"The app demonstrates principles of usecases with RxJava2 , Dagger2 , Room , MVP , Mockito and Clean Architecture in Android.  📚","archived":false,"fork":false,"pushed_at":"2020-06-03T08:57:04.000Z","size":679,"stargazers_count":37,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T13:21:40.721Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PopPsyA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-05-09T13:18:39.000Z","updated_at":"2025-03-13T20:24:36.000Z","dependencies_parsed_at":"2023-07-19T04:04:24.775Z","dependency_job_id":null,"html_url":"https://github.com/PopPsyA/Mediateka","commit_stats":null,"previous_names":["poppsya/mediateka"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/PopPsyA/Mediateka","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopPsyA%2FMediateka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopPsyA%2FMediateka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopPsyA%2FMediateka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopPsyA%2FMediateka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PopPsyA","download_url":"https://codeload.github.com/PopPsyA/Mediateka/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopPsyA%2FMediateka/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270723283,"owners_count":24634354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-12-16T23:51:48.040Z","updated_at":"2025-08-16T14:32:27.942Z","avatar_url":"https://github.com/PopPsyA.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Open Source Love svg1](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/Devit951/Mediateka)\n![Travis-ci](https://api.travis-ci.org/Devit951/Mediateka.svg)\n[![GitHub license](https://img.shields.io/github/license/dcendents/android-maven-gradle-plugin.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) \n\n![3512px](https://user-images.githubusercontent.com/34313493/40320871-f2835e0e-5d4e-11e8-9fb0-5f0482d410e3.png)\n\n[![Google-Play](https://user-images.githubusercontent.com/21290800/83616881-04f18700-a591-11ea-8171-f2d4f319a7cc.png)](https://play.google.com/store/apps/details?id=com.ru.devit.mediateka)\n\n\n# Mediateka\n## About\nThe app demonstrates principles of Clean Architecture in Android.\n\nBased on data from https://www.themoviedb.org/\n\n\n## Screenshots\n![1](https://user-images.githubusercontent.com/21290800/41730825-30b29168-7596-11e8-9e67-a0ed2f254971.png)\n![4](https://user-images.githubusercontent.com/21290800/41730828-32aec50e-7596-11e8-8492-0e9224e188d1.png)\n![6](https://user-images.githubusercontent.com/21290800/41730831-3427bbac-7596-11e8-8367-08bce68c80cc.png)\n\n\n\n## Simple illustrate demo app https://www.youtube.com/watch?v=mIP0qA8URfE\n\n## Current functuonality : \n* First tab (ActualCinemas) : filter cinemas and show actual cinemas \n* Second tab (TopRatedCinemas) : filter cinemas and show top rated cinemas\n* Third tab (UpComingCinemas) : filter cinemas and show future cinemas\n* 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\n* 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\n* CinemaDetailActivity gives possibility to schedule cinema time\n* Mediateka perfectly work without internet connection(Need first time to download data)\n* [Realized search functionality (cinemas , actors)](https://github.com/Devit951/Mediateka/blob/master/app/src/main/java/com/ru/devit/mediateka/presentation/search/SearchActivity.java)\n* Realzied database with many-to-many relationship's\n* Realized Transtition animation's between screen's\n* All screen's have progress bar for responsiveness\n* Support android version from 4.4\n* Presintation layer work with [MVP](https://android.jlelse.eu/android-mvp-for-beginners-25889c500443) pattern\n\n-------\n## Clean diagram\n![Clean-diagram](https://github.com/android10/Sample-Data/raw/master/Android-CleanArchitecture-Kotlin/architecture/clean_architecture_reloaded_main.png)\n\n## Data Layer\n![Data-layer](https://github.com/android10/Sample-Data/raw/master/Android-CleanArchitecture-Kotlin/architecture/clean_archictecture_reloaded_repository.png)\n-------\n\n## Coming soon \n1. Add the service which handle new cinams and create notification to show user\n2. Add Advanced Search screen.\n3. Support landscape orientation and tablets.\n4. And more , more some beatiful features...\n\n## Technology\n1. [Retrofit 2](https://github.com/square/retrofit) is the #1 library for network calls at the moment.\n2. [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.\n3. [Dagger 2](https://github.com/google/dagger) helps to achieve Dependency Inversion principle through Dependency Injection mechanisms.\n4. [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.\n5. [Picasso](https://github.com/square/picasso) a powerful image downloading and caching library for Android\n6. [Pallete](https://developer.android.com/training/material/palette-colors) beatiful support libary for dynamic change background view color\n\n## Testing\n100% Unit tested presentation layer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoppsya%2Fmediateka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoppsya%2Fmediateka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoppsya%2Fmediateka/lists"}