GithubHelp home page GithubHelp logo

piashcse / hilt-mvvm-compose-movie Goto Github PK

View Code? Open in Web Editor NEW
157.0 5.0 31.0 213.64 MB

Movie World πŸ“± android app built with Compose, Hilt and MVVM Architecture recommended by Google

Kotlin 100.00%
jetpack-compose mvvm hilt navigation-component viewmodel coroutines compose flow mvvm-architecture kotlin

hilt-mvvm-compose-movie's Introduction

Movie World (Jetpack Compose)

Jetpack Compose badge-Android API Kotlin GitHub license License

Movie World app using The Movie DB built with jetpack Compose and MVVM architecture.

Main Features

  • Movie List
  • Filter with genre
  • Pagination with paging3
  • Movie detail
  • Artist info and artist detail
  • Bottom navigation
  • Search filter for movie
  • Genre movie in the navigation drawer
  • Network connection state with SnackBar

Architecture πŸ—οΈ

  • MVVM Architecture (Model - ComposableView - ViewModel)
  • Repository pattern
  • Hilt - dependency injection

Fig. MVVM (Model - ComposableView - ViewModel) design pattern.

Built With πŸ› 

  • Kotlin - First class and official programming language for Android development.
  • Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI.
  • 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.
    • Paging3 - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network
  • Dependency Injection
    • Hilt - Easier way to incorporate Dagger DI into Android apps.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • Timber - A logger with a small, extensible API which provides utility on top of Android's normal Log class.

πŸ‘¨ Developed By

Mehedi Hassan Piash

Twitter Web Medium Linkedin

License

Copyright 2023 piashcse (Mehedi Hassan Piash)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

hilt-mvvm-compose-movie's People

Contributors

piashcse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

hilt-mvvm-compose-movie's Issues

Recomposition issue

Hello @piashcse ,

I followed the tutorial for my project, and while the pagination API and normal DataState API calls are functioning correctly, I'm encountering an issue where the page refreshes every 30 sec or some certain time, causing it to reinitialize. I would appreciate any guidance or assistance in resolving this matter.

Thank you,

Public API key

Hi,

First of all, I would like to say nice work ! :)

I suggest you remove your API key inside ApiURL . It is really a bad practice ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.