All Projects → mohammedgmgn → Movieapp Clean Architecture

mohammedgmgn / Movieapp Clean Architecture

Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Movieapp Clean Architecture

Mvvmframe
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。
Stars: ✭ 218 (+77.24%)
Mutual labels:  dagger2, mvvm, mvvm-architecture, viewmodel, architecture-components, livedata, databinding
Kotlinjetpackinaction
🔥🔥 Kotlin Jetpack zero to hero. 新手到高手
Stars: ✭ 264 (+114.63%)
Mutual labels:  coroutines, mvvm, clean-architecture, viewmodel, livedata, databinding
Coolweather
Weather App that uses Android best practices. Android Jetpack, clean architecture. Written in Kotlin
Stars: ✭ 154 (+25.2%)
Mutual labels:  coroutines, mvvm, clean-architecture, viewmodel, architecture-components, databinding
Simple-Notes-Kotlin-App
✍️ Simple Note Making App use mvvm architecture , dagger , coroutines and navigation component. Features includes 🗒️ create , edit and ❌ delete notes
Stars: ✭ 40 (-67.48%)
Mutual labels:  coroutines, dagger2, viewmodel, mvvm-architecture, livedata, architecture-components
News Sample App
A sample news app which demonstrates clean architecture and best practices for developing android app
Stars: ✭ 334 (+171.54%)
Mutual labels:  dagger2, clean-architecture, mvvm-architecture, viewmodel, architecture-components, livedata
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (+233.33%)
Mutual labels:  dagger2, mvvm, viewmodel, architecture-components, livedata, databinding
Harrypotter
🧙🏻 Sample HarryPotter application based on MVVM architecture (ViewModel, LiveData, Repository, Coroutines, Koin or Dagger-Hilt)
Stars: ✭ 116 (-5.69%)
Mutual labels:  coroutines, mvvm, mvvm-architecture, livedata, databinding
modern-android
Modern Android Project Skeleton
Stars: ✭ 17 (-86.18%)
Mutual labels:  coroutines, mvvm, clean-architecture, viewmodel, databinding
Kodein Mvvm
Example app using Kodein for dependency injection with MVVM and Architecture Components
Stars: ✭ 26 (-78.86%)
Mutual labels:  mvvm, mvvm-architecture, viewmodel, architecture-components, databinding
Wanandroid
Jetpack MVVM For Wanandroid 最佳实践 !
Stars: ✭ 1,004 (+716.26%)
Mutual labels:  coroutines, mvvm, viewmodel, livedata, databinding
Simple-Note-App-with-Online-Storage
✍️ Simple Note Making App use Sqllite Room 🧰 for caching the notes and 📥 Firebase Database for online storage
Stars: ✭ 42 (-65.85%)
Mutual labels:  coroutines, dagger2, viewmodel, mvvm-architecture, livedata
Kotlin Modular Tdd Coroutines Mvvm
A sample Kotlin app which was built with modular structure, Kotlin DSL, Kotlin Coroutines, TDD and MVVM patterns.
Stars: ✭ 256 (+108.13%)
Mutual labels:  coroutines, dagger2, clean-architecture, mvvm-architecture, databinding
Sample Code Movies
This repository contains sample code. Its purpose being, to quickly demonstrate Android and software development in general, clean code, best practices, testing and all those other must know goodies.
Stars: ✭ 81 (-34.15%)
Mutual labels:  coroutines, mvvm, clean-architecture, viewmodel, livedata
Base Mvvm
App built to showcase basic Android View components like ViewPager, RecyclerView(homogeneous and heterogeneous items), NavigationDrawer, Animated Vector Drawables, Collapsing Toolbar Layout etc. housed in a MVVM architecture
Stars: ✭ 18 (-85.37%)
Mutual labels:  dagger2, mvvm, viewmodel, architecture-components, livedata
WanAndroidJetpack
🔥 WanAndroid 客户端,Kotlin + MVVM + Jetpack + Retrofit + Glide。基于 MVVM 架构,用 Jetpack 实现,网络采用 Kotlin 的协程和 Retrofit 配合使用!精美的 UI,便捷突出的功能实现,欢迎下载体验!
Stars: ✭ 124 (+0.81%)
Mutual labels:  coroutines, viewmodel, mvvm-architecture, databinding, livedata
Blockchain Tracker
A blockchain market tracking app. Example implementation of reactive clean architecture and testing.
Stars: ✭ 30 (-75.61%)
Mutual labels:  dagger2, mvvm, clean-architecture, architecture-components, databinding
Superhero-App
🦸🏻‍♂️🦹🏻‍♀️Superhero app built with Kotlin, ViewModel, LiveData, ViewBinding, Room, and Hilt
Stars: ✭ 27 (-78.05%)
Mutual labels:  coroutines, dagger2, viewmodel, livedata, architecture-components
Moko Mvvm
Model-View-ViewModel architecture components for mobile (android & ios) Kotlin Multiplatform development
Stars: ✭ 329 (+167.48%)
Mutual labels:  coroutines, mvvm, viewmodel, livedata, databinding
Tdcapp
Sample app which access the TDC (The Developer's Conference) REST API.
Stars: ✭ 55 (-55.28%)
Mutual labels:  mvvm, clean-architecture, viewmodel, architecture-components, livedata
ChatApp
Chat app based on Firebase tools.
Stars: ✭ 88 (-28.46%)
Mutual labels:  coroutines, dagger2, mvvm-architecture, databinding, livedata

MovieApp

Project Overview

This project aims to demonstrate the usage of Android Architecture Components and how this components can be used in an application with a MVVM architecture in Kotlin

Project Description

First of all, I would like to show how I made the packages structure of the project For achieving The separation of concerns

  • Presentation layer

    will include normal Activities , Fragments and ViewModels which will only handle rendering views and will follow MVVM pattern.

  • Domain layer

    With the Use Cases that will include all business logic and interact between Data and Presentation layer by means of interface and interactors. The objective is to make the domain layer independent of anything, so the business logic can be tested without any dependency to external components.

  • Data layer

    With the Repositories.

Let's explore Architecture Components

According to Android Documentation, Architecture Components are a set of Android libraries for structuring your app in a way that is robust, testable, and maintainable

UI Controllers

are activities or fragments. The only job of UI controllers is to know how to display data and pass on UI events, such as the user pressing a button. UI Controllers neither contain the UI data, nor directly manipulate data.

ViewModels and LiveData

These classes represent all of the data needed for the UI to display. You'll learn exactly how these two classes function together in this Project.

Repository

This class is the single source of truth for all of our app's data and acts as a clean API for the UI to communicate with. ViewModels simply request data from the repository. They do not need to worry about whether the repository should load from the database or network, or how or when to persist the data. The repository manages all of this. As part of this responsibility, the repository is a mediator between the different data sources.

Remote Network Data Source

Manages data from a remote data source, such as the internet.

Model - Manages local data stored in the database.

Used libraries:

Refrences:

License:

Copyright 2018 Mohammed Mahmoud 

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].