GitXplorerGitXplorer
t

topcorn

public
227 stars
48 forks
4 issues

Commits

List of commits on branch master.
Unverified
0bbe8556ab38cf61a8193e8b5cc9ec670f0a2f34

🆙 update download link

ttheapache64 committed 4 years ago
Unverified
df05ea7645907cbc5247744ba4b640b1e5e3b775

🐛 fix year issue

ttheapache64 committed 4 years ago
Unverified
7c4cf8381dfd2045d2273b2c8327e4feee439883

◀️ backup

ttheapache64 committed 5 years ago
Unverified
ab02c1efab25a5c1178932eb2e8189dd5a25caef

🐛 fix sort issue

ttheapache64 committed 5 years ago
Unverified
eb59189e05b6bf0de2252c927754f4c0a9480af2

💚 fix tests

ttheapache64 committed 5 years ago
Unverified
3f0237f924d876d40af8daef057dc88888ca252e

🎉 release v1.0.4-alpha02

ttheapache64 committed 5 years ago

README

The README file for this repository.

title GitHub issues GitHub forks GitHub stars GitHub license Twitter

light_screenshots

TopCorn 🍿

A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with latest hot-trending Android development tools.

Dark Mode Available 🌙

dark_screenshots

Download 📥

  • Download latest APK from here

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • Room - SQLite object mapping library.
  • Dagger 2 - Dependency Injection Framework
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Moshi - A modern JSON library for Kotlin and Java.
  • Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
  • Glide - An image loading library for Android backed by Kotlin Coroutines.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • TwinKill - A simple library, a collection of utility classes wrapped around JetPack components
  • MaterialColors - Android material color palettes

Architecture 🗼

This project follows the famous MVVM architecture and best practices from Google's GithubBrowserSample

Project Structure 📂

.
├── App.kt
├── data
│   ├── local
│   │   ├── AppDatabase.kt
│   │   ├── Converters.kt
│   │   ├── daos
│   │   │   └── MoviesDao.kt
│   │   └── entities
│   ├── remote
│   │   ├── ApiInterface.kt
│   │   └── Movie.kt
│   └── repositories
│       └── movies
│           └── MoviesRepo.kt
├── di
│   ├── components
│   │   └── AppComponent.kt
│   └── modules
│       ├── ActivitiesBuilderModule.kt
│       ├── AppModule.kt
│       ├── DatabaseModule.kt
│       ├── NetworkModule.kt
│       ├── RepoModule.kt
│       └── ViewModelModule.kt
├── models
│   └── FeedItem.kt
├── ui
│   ├── activities
│   │   ├── feed
│   │   │   ├── FeedActivity.kt
│   │   │   └── FeedViewModel.kt
│   │   ├── movie
│   │   │   ├── MovieActivity.kt
│   │   │   └── MovieViewModel.kt
│   │   ├── splash
│   │   │   ├── SplashActivity.kt
│   │   │   └── SplashViewModel.kt
│   └── adapters
│       ├── FeedAdapter.kt
│       └── MoviesAdapter.kt
└── utils
    ├── BindingAdapters.kt
    ├── NetworkBoundResource.kt
    ├── retrofit
    │   ├── FlowResourceCallAdapterFactory.kt
    │   └── FlowResourceCallAdapter.kt
    └── test
        ├── EspressoIdlingResource.kt
        └── OpenForTesting.kt

21 directories, 30 files

Credits 🤗

TODO 🗒️

  • [x] Improve algorithms and code review
  • [x] Add test cases
  • [ ] Integrate OMDB API to add search feature
  • [ ] Add favorites

Author ✍️

  • theapache64