GitPedia

Dicoding belajar fundamental aplikasi android

Submission Dicoding Belajar Fundamental Aplikasi Android

From dimas-nur·Updated November 3, 2025·View on GitHub·

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

Platform Kotlin Gradle

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

  1. Master - consists of a combination of branches 1, 2 and 3
  2. Submission1 - contains tasks from submission 1 ( Get 5 Star )
  3. Submission2 - contains tasks from submission 2 ( Get 5 Star )
  4. 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 :

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.

View all contributors on GitHub →

This article is auto-generated from dimas-nur/dicoding-belajar-fundamental-aplikasi-android via the GitHub API.Last fetched: 6/18/2026