A simple demo project based on MVVM clean architecture and material design & animations.

Overview

GithubFollows

license Build Status

A simple demo project based on MVVM clean architecture and material design & animations.

gif0 gif1

Architecture

architecture

Specs & Open-source libraries

  • Minimum SDK 16
  • Kotlin based, anko
  • MVVM Architecture
  • Architecture Components (Lifecycle, LiveData, ViewModel, Room Persistence)
  • DataBinding
  • Material Design & Animations
  • Github Api
  • Dagger2
  • Retrofit2 & Gson for constructing the REST API
  • PreferenceRoom for efficient managing SharedPreferences
  • Glide for loading images
  • LeakCanary for memory leak detection
  • AndroidSVG for transcoding SVG
  • AndroidVeil for implement skeletons and shimmer effect
  • PowerMenu for implementing material popup dialog
  • RecyclerViewPaginator for api paging
  • ripple animation, Circular revealed animation, Shared element transition
  • Mockito for Junit mock test

Posting

Medium - Android MVVM Architecture Components using Github API

Find this library useful? ❤️

Support it by joining stargazers for this repository.

Supports

If you feel like support me a coffee for my efforts, I would greatly appreciate it.

Buy Me A Coffee

License

The MIT License (MIT)

Copyright (c) 2018 skydoves

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Comments
  • Kotlin Runtime Version

    Kotlin Runtime Version

    I am very grateful for your awesome project template. It is very useful.

    This issue is only a warning that I have tried to solve too many times and perhaps it does not depend on this project, but sincerelly I am so lost now... :-(

    Your version of Kotlin runtime in 'kotlin-stdlib-1.1.51' library is 1.1.51, while plugin version is 1.2.41-release-Studio3.1-1. Moreover, I do not find 1.1.51 in any place on the project.

    Any idea?

    opened by soygabimoreno 4
  • Refactor Code

    Refactor Code

    https://github.com/skydoves/GithubFollows/blob/966f1a36ca70b3bbdc4a49916ba49a66bb3f50d1/app/src/main/java/com/skydoves/githubfollows/ApplicationClazz.kt#L24

    Here you are calling

    DaggerAppComponent.builder()
                    .application(this)
                    .build()
                    .inject(this)
    

    and then you are returning

    override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
            return DaggerAppComponent.builder().application(this).build()
        }
    

    can't you just make a var for DaggerAppComponent.builder().application(this).build() and then just call inject on that above.

    opened by devKshitijJain 4
  • Android 'P'VERSION 대응코드 수정

    Android 'P'VERSION 대응코드 수정

    Android 'P'Version HTTPS No defense code was fixed.

    • I've added the code below.

     android:usesCleartextTraffic="true"
    

    Please correct any failures before requesting a review.

    opened by mkw8263 1
  • Fixed bug that search wasn't working if username was written in lower…

    Fixed bug that search wasn't working if username was written in lower…

    …case. Github ignores case when searching by users. But request to the database required username to be typed exactly. So when case didn't matched app wasn't working and thrown no error message.

    opened by GaidamakUA 0
  • General Refactoring of Application Class and AppModule

    General Refactoring of Application Class and AppModule

    Generally, to name Application class we should follow the convention as AppName+Application. In AppModule we can use [] instead of arrayOf Extract the following code to a variable to use at multiple places

    DaggerAppComponent.builder()
               .application(this)
               .build()
    
    opened by devKshitijJain 0
Owner
Jaewoong Eum
Android and open source software engineer.❤️ Digital Nomad. Love coffee, music, magic tricks, and writing poems. Coffee Driven Development
Jaewoong Eum
This is an example of a simple application with layered software base on clean-architecture as application architecture and mvvm as presentation architecture

This is an example of a simple application with layered software base on clean-architecture as application architecture and mvvm as presentation archi

null 3 Jul 2, 2021
🗡️ Deddit demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack, and Material Design based on MVVM architecture

Deddit demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (ViewModel,Paging3), and Material Design based on MVVM

Krish Parekh 9 Sep 2, 2022
Learning Project (Story App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin

Learning Project (Story App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin. Implemented by Clean Architecture, Hilt, MVVM, LiveData, Coroutines, Retrofit2, Glide

Samad Talukder 4 Sep 27, 2022
A movie & TV show exploration app that implements MVVM design pattern by following the clean architecture principles, using TMDB API.

?? Movie App ?? A movie & TV show exploration app that implements MVVM design pattern by following the clean architecture principles, using TMDB API.

Bora Bor 11 Dec 22, 2022
Michal Kubele 0 Jan 6, 2022
My own approach to what I think an Android MVVM project with Clean Architecture should look like with Dagger-Hilt as Dependency Injector engine

MVVM Project Hilt Introducción Este proyecto es mi visión particular, ni mejor ni peor (sólo una más) que cualquier otra aproximación a lo que yo enti

Antonio Fdez. Alabarce 7 Dec 16, 2022
Simple Note App With MVVM Clean Architecture

NoteWakeup Simple Note App With MVVM Clean Architecture ✍?? Simple Note App. Here i demonstrate the use of Modern Android development tools - (Kotlin,

Arvind Meshram 9 Aug 15, 2022
Movie Android App written in Kotlin, MVVM, Clean Architechture, Modularized, Coroutines, Android Architecture Components and Hilt

Movie Android App written in Kotlin, MVVM, Clean Architechture, Modularized, Coroutines, Android Architecture Components and Hilt.

Klejvi Kapaj 16 Dec 27, 2022
A program written entirely in Kotlin using the principles of Clean Architecture according to the MVVM pattern

A program written entirely in Kotlin using the principles of Clean Architecture according to the MVVM pattern. An application that shows a list of ani

Yusuf Ruziev 2 Apr 26, 2022
A demo project which demonstrates the work of javax.servlet.Filter capable of escaping / modifying / removing a part of JSON request based on specified criteria.

Replace Filter Demo A demo project which demonstrates the work of javax.servlet.Filter capable of escaping / modifying / removing a part of JSON reque

Vlad Krava 1 Jan 17, 2022
Kotlin backend based on the Clean Architecture principles. Ktor, JWT, Exposed, Flyway, KGraphQL/GraphQL generated endpoints, Gradle.

Kotlin Clean Architecture Backend Kotlin backend based on the Clean Architecture principles. The application is separated into three modules: Domain,

null 255 Jan 3, 2023
Kotlin multi platform project template and sample app with everything shared except the UI. Built with clean architecture + MVI

KMMNewsAPP There are two branches Main News App Main The main branch is a complete template that you can clone and use to build the awesome app that y

Kashif Mehmood 188 Dec 30, 2022
Shreyas Patil 2.2k Jan 4, 2023
Quiz Zone is a simple ✅ Quiz Android application 📱 using Firbase Firestore Database and Material Design.

Quiz Zone Quiz Zone is a simple ✅ Quiz Android application ?? using Firbase Firestore Database and Material Design. You can Install and test Quiz Zone

MOHIT GUPTA 6 Dec 24, 2022
ToDo App based on Modern Android Application tech-stacks and MVVM architecture.

ToDo App Task Management App based on Modern Android Application tech-stacks and MVVM architecture. Techs Used ?? Kotlin - First class and official pr

Rohit Sharma 12 Jul 22, 2022
🛒 Mercado Libre App Clone using modern Android development with Hilt, Coroutines, Jetpack (Room, ViewModel), and Jetpack Compose based on MVVM architecture.

Meli Clone ?? Mercado Libre App Clone using modern Android development with Hilt, Coroutines, Jetpack (Room, ViewModel), and Jetpack Compose based on

Esteban Aragon 7 Sep 22, 2022
❤️ A sample Marvel heroes application based on MVVM (ViewModel, Coroutines, LiveData, Room, Repository, Koin) architecture.

MarvelHeroes MarvelHeroes is a demo application based on modern Android application tech-stacks and MVVM architecture. Fetching data from the network

Jaewoong Eum 1.2k Dec 19, 2022
🦁 A Disney app using transformation motions based on MVVM (ViewModel, Coroutines, Flow, LiveData, Room, Repository, Koin) architecture.

DisneyMotions A demo Disney app using transformation motions based on MVVM architecture. The motion system is included in the 1.2.0-alpha05 released m

Jaewoong Eum 1.4k Jan 2, 2023