Dicoding belajar fundamental aplikasi android
Submission Dicoding Belajar Fundamental Aplikasi Android
This repository is the result of my submission in [Dicoding](https://www.dicoding.com) class [Learn Fundamental Android Application](https://www.dicoding.com/academies/14) that implements MVVM(Model View ViewModel) architecture using the components ViewModel, LiveData, Dagger2, Room, RxJava, etc. *Hopefully my repository can be useful to be used as a reference all friends.* The project is written primarily in Kotlin, distributed under the Apache License 2.0 license, first published in 2020. Key topics include: android, android-architecture, android-mvvm-architechture, dagger2, dagger2-mvvm.
Dicoding Submission: Belajar Fundamental Aplikasi Android
This repository is the result of my submission in Dicoding class Learn Fundamental Android Application that implements MVVM(Model View ViewModel) architecture using the components ViewModel, LiveData, Dagger2, Room, RxJava, etc.
Hopefully my repository can be useful to be used as a reference all friends.
Installation
Clone this repository and import into Android Studio
https://github.com/dimas-nur/dicoding-bfaa.git
NOTE : This repository have 4 branch
- Master - consists of a combination of branches 1, 2 and 3
- Submission1 - contains tasks from submission 1 ( Get 5 Star )
- Submission2 - contains tasks from submission 2 ( Get 5 Star )
- Submission3 - contains tasks from submission 3 ( Get 5 Star )
Demo
<h3 align="center"> Search Screen </h3> <p align="center"> <img src="assets/app-search-waiting.png" alt="Search Screen Waiting" style="margin-right: 10px;" width="200" /> <img src="assets/app-search.png" alt="Search Screen Loaded" style="margin-right: 10px;" width="200" /> <img src="assets/app-search-error.png" alt="Search Screen Error" style="margin-right: 10px;" width="200" /> <img src="assets/search.gif?raw=true" alt="Search Screen Action GIF" style="margin-right: 10px;" width="200" /> </p> <h3 align="center">Notification Reminder </h3> <p align="center"> <img src="assets/app-notification.png" alt="Notification" style="margin-right: 10px;" width="200" /> <img src="assets/notification.gif?raw=true" alt="Notification Action GIF" style="margin-right: 10px;" width="200" /> </p> <h3 align="center">Profile Screen </h3> <p align="center"> <img src="assets/app-profile.png" alt="Profile Screen" style="margin-right: 10px;" width="200" /> <img src="assets/app-profile-scroll.png" alt="Profile Screen Scroll" style="margin-right: 10px;" width="200" /> <img src="assets/follow.gif?raw=true" alt="Profile Screen Click Favorite" style="margin-right: 10px;" width="200" /> <img src="assets/profile.gif?raw=true" alt="Profile Screen Action GIF" style="margin-right: 10px;" width="200" /> </p> <h3 align="center">Favorite Screen </h3> <p align="center"> <img src="assets/app-favorite.png" alt="Favorite Screen Empty" style="margin-right: 10px;" width="200" /> <img src="assets/app-favorite-empty.png" alt="Favorite Screen Loaded" style="margin-right: 10px;" width="200" /> </p> <h3 align="center">Setting Screen </h3> <p align="center"> <img src="assets/app-setting.png" alt="Setting Screen" style="margin-right: 10px;" width="200" /> <img src="assets/setting.gif?raw=true" alt="Search Screen Action GIF" style="margin-right: 10px;" width="200" /> </p> <h3 align="center">Widget </h3> <p align="center"> <img src="assets/app-widget.png" alt="Widget Loaded" style="margin-right: 10px;" width="200" /> <img src="assets/app-widget-empty.png" alt="Widget Empty" style="margin-right: 10px;" width="200" /> <img src="assets/app-widget-create.png" alt="Create Widget" style="margin-right: 10px;" width="200" /> </p> <h3 align="center"> Consumer App </h3> <p align="center"> <img src="assets/consumer-data-empty.png" alt="Consumer Screen Empty" style="margin-right: 10px;" width="200" /> <img src="assets/consumer-data.png" alt="Consumer Screen Loaded" style="margin-right: 10px;" width="200" /> </p>Feature :
- Using MVVM (Model-View-ViewModel) Architecture
- Using Dagger2 as dependency injection
- Using Single activity and using navigation component to manage fragment operations
- Using localization for support Indonesian and English Language
- Using Room Persistence for local database
- Using ViewBinding & DataBinding
- Using RxJava2 to handle data flow
- Using Retrofit to request api network
- Using Glide for load and caching image from url
- There is an explanatory comment on each function, making it easier to understand the flow of the application
Dependencies :
- Lifecycle & Livedata
- Navigation Component
- Dagger 2
- Retrofit 2
- OkHttp 3
- RxJava2
- RxKotlin2
- RxAndroid
- Glide
- AndroidX
- Sweet Alert
- Fancy Toast
Pull Requests
I encourage all the developers out there to contribute to the repository and help me to expand it. To contribute just think up of an example which could be a feature or some demo to how to use a library. Develop the demo and create a pull request and you are in.
Support me
Just star or fork this repository, and follow my github. You have supported me!
Author
Dimas Nur Alif Rochmadtulloh - dimasnur.dev@gmail.com
License
Copyright © 2020 Dimas Nur Alif Rochmadtulloh
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.
Contributors
Showing top 1 contributor by commit count.
