A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with Jetpack Compose.

Overview

GitHub Cards Preview

TopCorn 2 🍿

A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with Jetpack Compose.

GitHub issues GitHub forks GitHub stars GitHub license Twitter

Try latest TopCorn2 app apk from below πŸ‘‡

TopCorn2


Designs - Dark Mode Available πŸŒ™

dark_screenshots dark_screenshots


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.
  • Compose - Android’s modern toolkit for building native UI.
  • Navigation - A set of libraries, a plugin, and tooling that simplifies Android navigation.
  • 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.
    • Room - SQLite object mapping library.
  • Hilt - 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.
  • Coil - An image loading library for Android.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

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
β”‚   β”œβ”€β”€ remote
β”‚   β”‚   β”œβ”€β”€ ApiInterface.kt
β”‚   β”‚   └── Movie.kt
β”‚   └── repo
β”‚       └── MoviesRepo.kt
β”œβ”€β”€ di
β”‚   └── modules
β”‚       β”œβ”€β”€ DatabaseModule.kt
β”‚       β”œβ”€β”€ NetworkModule.kt
β”‚       └── PreferenceModule.kt
β”œβ”€β”€ model
β”‚   └── Category.kt
β”œβ”€β”€ ui
β”‚   β”œβ”€β”€ common
β”‚   β”‚   β”œβ”€β”€ Fakes.kt
β”‚   β”‚   β”œβ”€β”€ Poster.kt
β”‚   β”‚   └── RetryMessage.kt
β”‚   β”œβ”€β”€ main
β”‚   β”‚   β”œβ”€β”€ MainActivity.kt
β”‚   β”‚   └── MainViewModel.kt
β”‚   β”œβ”€β”€ screen
β”‚   β”‚   β”œβ”€β”€ detail
β”‚   β”‚   β”‚   β”œβ”€β”€ MovieDetailFragment.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ MovieDetailScreen.kt
β”‚   β”‚   β”‚   └── MovieDetailViewModel.kt
β”‚   β”‚   β”œβ”€β”€ movies
β”‚   β”‚   β”‚   β”œβ”€β”€ MoviesFragment.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ MoviesScreen.kt
β”‚   β”‚   β”‚   └── MoviesViewModel.kt
β”‚   β”‚   └── splash
β”‚   β”‚       β”œβ”€β”€ SplashFragment.kt
β”‚   β”‚       β”œβ”€β”€ SplashScreen.kt
β”‚   β”‚       └── SplashViewModel.kt
β”‚   β”œβ”€β”€ test
β”‚   β”‚   β”œβ”€β”€ TestActivity.kt
β”‚   β”‚   └── TestViewModel.kt
β”‚   └── theme
β”‚       β”œβ”€β”€ Theme.kt
β”‚       └── Typography.kt
└── utils
    β”œβ”€β”€ calladapter
    β”‚   └── flow
    β”‚       β”œβ”€β”€ FlowResourceCallAdapterFactory.kt
    β”‚       β”œβ”€β”€ FlowResourceCallAdapter.kt
    β”‚       └── Resource.kt
    β”œβ”€β”€ flow
    β”‚   └── EventFlow.kt
    └── NetworkBoundResource.kt

21 directories, 34 files

Ohh you hate Compose? NP 🀷

Well, we've XML version here, The TopCorn 1

Credits πŸ€—


TODO πŸ—’οΈ

  • Improve algorithms and code review
  • Add test cases
You might also like...
This repo is to demonstrate the jetpack compose 's canvas api's usage and creating an icon pack using the basic functions.
This repo is to demonstrate the jetpack compose 's canvas api's usage and creating an icon pack using the basic functions.

Jetpack Compose Canvas API Demo App We all know that Jetpack Compose has now reached the 1.0.0 release milestone. This is a huge change we can say for

Jetpack-compose-uis - A collection of some UIs using Jetpack Compose. built using Katalog

Jetpack Compose UIs This is a collection of some UIs using Jetpack Compose. It i

Simple app to consumer api movies with retrofit and save result in database with room using android jetpack
Simple app to consumer api movies with retrofit and save result in database with room using android jetpack

MoviesCompose Simple app to consumer api movies with retrofit and save result in database with room using android jetpack Instruccions Log Up in https

FullMangement - an application that helps you manage your tasks effectively. built with the latest tachs like Compose UI, Jetpack libraries, and MVVM design pattern.
FullMangement - an application that helps you manage your tasks effectively. built with the latest tachs like Compose UI, Jetpack libraries, and MVVM design pattern.

Full Management is an application that helps you manage your tasks effectively. built with the latest tachs like Compose UI, Jetpack libraries and MVVM design pattern.

A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose
A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose

Authentication A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose Scree

A simple Snake application to demonstrate the use of Compose for Desktop platform with Kotlin
A simple Snake application to demonstrate the use of Compose for Desktop platform with Kotlin

Snake App using Compose for Desktop A simple Snake desktop application to demonstrate the use of Compose UI toolkit for Desktop platform with Kotlin.

πŸ“± WhatsApp clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat SDK for Compose.
πŸ“± WhatsApp clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat SDK for Compose.

This is a WhatsApp clone app built with Jetpack Compose and Stream Chat SDK for Compose. The purpose of this repository is to demonstrate below: Imple

This is a sample app(For beginners - App #1) built using Jetpack Compose
This is a sample app(For beginners - App #1) built using Jetpack Compose

This is a sample app(For beginners - App #1) built using Jetpack Compose. It is a simple - single screen app to demonstrate use of basic Jetpack Compose UI elements like Text, Image and Button & LazyColumn (Vertical Recyclerview). It also demonstrates how compose manages state with a Boolean State.

An Android application consuming the GitHub API to search for users on Github, display their followers, following and repositories. The project is built with Compose, MVVM pattern as well as other architectural components and libraries.
Releases(v1.0.0-alpha04)
Owner
The Code Monks
πŸŒ€Our Next Gen Open source is starts here...
The Code Monks
ToDo-Task-App - An Android App built to demonstrate the use of Jetpack Compose, Material You, Room Database, and MVVM

ToDo Task App ToDo Task App is a sample Android app built with Jetpack Compose.

null 0 Jan 17, 2022
πŸ”– A Quotes Application built to Demonstrate the Jetpack Compose UI

?? A Quotes Application built to Demonstrate the Jetpack Compose UI

Sanju S 466 Dec 27, 2022
A sample project in Kotlin to demonstrate Jetpack Compose, MVVM, Coroutines, Hilt, Room, Coil, Retrofit, Moshi, Leak Canary and Repository pattern

Jetpack-Compose-Boilerplate This repository contains a sample project in Kotlin to demonstrate Jetpack Compose, MVVM, Coroutines, Hilt, Room, Coil, Re

Areg Petrosyan 14 Dec 12, 2022
This sample Android app lets user browse trending "language" related repositories on Github.

?? Alligitor An alligator exploring github repositories This sample Android app lets users browse trending "language" related repositories on Github.

Yousuf Sohail 5 Oct 17, 2022
πŸ”– A Quotes Application built to Demonstrate the Compose for Desktop UI

?? JetQuotes A Quotes Application built to Demonstrate the use of Jetpack Compose for building declarative UI in Desktop. Made with love ❀️ by Spikeys

Sanju S 60 Sep 9, 2022
A simple path finding visualizer mobile app to demonstrate the use of Jetpack Compose UI toolkit in Android.

Path Finding Visualizer App using Jetpack Compose A simple path finding visualizer mobile app to demonstrate the use of Jetpack Compose UI toolkit in

Serge Nino Martin Villasica 33 May 6, 2022
Simple superhero lexicon app to demonstrate Jetpack Compose.

Superhero Lexicon ??‍♂️ Simple and Pretty Superhero App developed using Jetpack Compose UI Technologies Used ?? Kotlin - First class and official prog

Unaisul Hadi 22 Jan 5, 2023
🎞 A demo movie app using Jetpack Compose and Hilt based on modern Android tech stacks.

MovieCompose is a small demo application based on modern Android tech-stacks especially focus on Jetpack Compose UI using The Movie DB API.

Jaewoong Eum 399 Jan 3, 2023
This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Compose.

JetBMICalculator This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Co

BHAVNA THACKER 3 Dec 31, 2022
A Jetpack Compose Collapsing Top Bar, that expands or collapses based on the scrolling of a content

CollapsingTopBarCompose A Jetpack Compose Collapsing Top Bar, that expands or collapses based on the scrolling of a content Centered expanded title an

Germain Kevin 139 Dec 26, 2022