GithubHelp home page GithubHelp logo

irfanfadhilah48 / movie-catalog-dicoding-kejar-2019 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yudikarma/movie-catalog-dicoding-kejar-2019

0.0 1.0 0.0 9.51 MB

submision modul dicoding, Program Google Developer Kejar 2019

Kotlin 99.74% Java 0.26%

movie-catalog-dicoding-kejar-2019's Introduction

Movie-Catalog-Dicoding-Kejar-2019

API API

Movie-Catalog-Dicoding-Kejar-2019 is android Application for get Movie & TV Show from MovieDB

visit Medium Stories -> https://medium.com/@yudikarma/android-mvvm-with-jetpack-component-and-dagger2-dcfab5b29c22

ScreenShot

351a424e-69b8-419b-b10a-d1594ca99b52.jpg cdf3606e-7589-450e-8d35-e7420da9cebc.jpg d6258f7a-36c7-4348-9e6c-9f742c76cefb.jpg a7a1c452-453b-4a7a-a866-6f8af84a8892.jpg

Learn Refrence

https://developer.android.com/jetpack https://blog.mindorks.com/ https://codingwithmitch.com/blog/

Basic Explained

/ architecture              / Description
/-------------------------------------------
/ Model              / Response or entity
/ View               / Fragment or Activity (UI)
/ ViewModel          / Busines Logic
/ Repository         / Door to get data (from network or local database or prefrence)

Basec Rules

> - Ui just Acces repository via ViewModels
> - every UI (activity or Fragment) should have ViewModel or androidViewmodel
> - do not edit Base Class (*BaseActivity *BaseFragment *BaseViewmodel)
> - whats should i do if wanna add news activity or fragment ??
>     1. if your activity need Inject module (need repository or viewmodel) 
>       - dont forget add your activity in ActivityBuilder
>       - if need viewmodel. please this activity extend : BaseAcitivytyViewModel.kt
>       - if this activity has fragment. please change extends to : BaseActivityhasFragment.kt
>       - if just need inject. only need to extends : BaseActivity.kt
>     2. if you fragment need inject module (need repository or viewmodel use network request)
>       - dont forget to create your FragmentProviders and add your fragment providers to Youractivity module in ActivityBuilder.kt
>       - if need to inject and need viewmodel ? extends : BaseFragment.kt
> - whats shoud i do if wanna add news ViewModel ?
>     1. if your viewmodel need inject module (repository and other)
>        - add inject constructor to viewmodel > see sample at my viewmodel
>        - extends : BaseViewmodel.kt
>        - add your viewmodel to ViewModelModule.kt 
> - what should i do if wanna add news WorkManager class ?
>       - dont forget add your register to Worker Module 
>       - put your workmanager class in package "utils/worker"
> - put Model class in Model Package at Data. local for model local and network for model response   
> - if your class need Serialize or deserialize JSON GSON. dont forget add keep your class in proguard-Rules.pro
> - whats should i do if wanna add news Service ? 
>     - if your service need inject ? dont forget add your service class in ServiceBuilder.kt
> - if you wanna add news Library. please check for proguard rules that library and dont forger to Proguard-rules.pro    

Explained Structur Package

/ Package       / description
/--------------------------------
/ DATA          / all class about need Data (model,api client,room,Prefrence helper,dll
/ DI            / Depedencies Injection Package
/ UI            / All about UI, like activity or fragment
/ Utils         / Common class, like Helper class,object, ekstension, custom class and more
----------------------------------------------------------------------------------------------

Libraries

Zonapets uses a number of open source projects to work properly:

  • Glide - An image loading and caching library for Android focused on smooth scrolling
  • Android Jetpack Architecture Components - Jetpack is a suite of libraries, tools, and guidance to help developers write high-quality apps easier
  • Retrofit /OkHttp - MA type-safe HTTP client for Android and Java
  • Gson - A Java serialization/deserialization library to convert Java Objects into JSON and back
  • Dagger 2 - Dagger is a fully static, compile-time dependency injection framework for both Java and Android. It is an adaptation of an earlier version created by Square and now maintained by Google.
  • Anko - Pleasant Android application development
  • Coroutines - Library support for Kotlin coroutines with multiplatform support. This is a companion version for Kotlin
  • Espresso - for UI tests
  • shimmer - An easy, flexible way to add a shimmering effect to any view in an Android app.
  • guava - Google core libraries for Java
  • eventbus - Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.
  • material search view - Cute library to implement SearchView in a Material Design Approach

movie-catalog-dicoding-kejar-2019's People

Contributors

yudikarma avatar

Watchers

 avatar

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.