If you've got someone you truly admire for their fiery passion in programming, hitting that 'follow' button on GitHub might not be enough. Don't settle for the minimal info on your feed! That's where this app comes in đ
Can be considered as a demo project to showcase MVVM with latest android development tools
- Install the latest APK from releases đĽ
- Add him/her to the list by entering the GitHub
username
- Done đ
Now you can see whatever he does đ
- Kotlin - First class and official programming language for Android development.
- Coroutines - For asynchronous and more..
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Room - SQLite object mapping library.
- Dagger 2 - Dependency Injection Framework
- Retrofit - A type-safe HTTP client for Android and Java.
- Moshi - A modern JSON library for Kotlin and Java.
- Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
- Glide - An image loading library for Android backed by Kotlin Coroutines.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- TwinKill - A simple library, a collection of utility classes wrapped around JetPack components
- MaterialColors - Android material color palettes
- Material Dialogs - A beautiful, fluid, and extensible dialogs API for Kotlin & Android.
- JUnit - A programmer-oriented testing framework for Java
- Mockito - Most popular Mocking framework for unit tests written in Java
- Mockito-kotlin - To use Mockito with Kotlin
- Expekt - BDD assertion library for Kotlin
- Android Arch Testing - To test android architectural components
- Kotlin Coroutines Test - Testing utilities for effectively testing coroutines.
- Robolectric - Android Unit Testing Framework
- DaggerMock - A JUnit rule to easily override Dagger 2 objects
- Espresso - To write concise, beautiful, and reliable Android UI tests.
- Barista - To make espresso tests faster, easier and more predictable
This project follows the famous MVVM architecture and best practices from Google's GithubBrowserSample
.
âââ androidTest
â  âââ java
â  âââ com
â  âââ theapache64
â  âââ tracktor
â  âââ ui
â  â  âââ activities
â  â  âââ splash
â  â  â  âââ SplashActivityTest.kt
â  â  âââ userdetail
â  â  â  âââ UserDetailActivityTest.kt
â  â  âââ users
â  â  âââ UsersActivityTest.kt
â  âââ utils
â  âââ DaggerMockRules.kt
âââ main
â  âââ AndroidManifest.xml
â  âââ ic_launcher-playstore.png
â  âââ java
â  â  âââ com
â  â  âââ theapache64
â  â  âââ tracktor
â  â  âââ App.kt
â  â  âââ core
â  â  â  âââ events
â  â  â  âââ BaseEventSupport.kt
â  â  â  âââ EventManager.kt
â  â  â  âââ issuecomment
â  â  â  â  âââ IssueCommentEventPayload.kt
â  â  â  â  âââ IssueCommentEventSupport.kt
â  â  â  âââ issues
â  â  â  â  âââ IssuesEventPayload.kt
â  â  â  â  âââ IssuesEventSupport.kt
â  â  â  âââ push
â  â  â  â  âââ PushEventPayload.kt
â  â  â  â  âââ PushEventSupport.kt
â  â  â  âââ watch
â  â  â  âââ WatchEventSupport.kt
â  â  âââ data
â  â  â  âââ local
â  â  â  â  âââ AppDatabase.kt
â  â  â  â  âââ daos
â  â  â  â  â  âââ UserDao.kt
â  â  â  â  âââ entities
â  â  â  â  âââ UserEntity.kt
â  â  â  âââ remote
â  â  â  â  âââ ApiInterface.kt
â  â  â  â  âââ events
â  â  â  â  â  âââ Event.kt
â  â  â  â  âââ user
â  â  â  â  âââ User.kt
â  â  â  âââ repositories
â  â  â  âââ EventsRepo.kt
â  â  â  âââ PrefRepo.kt
â  â  â  âââ UserRepo.kt
â  â  âââ di
â  â  â  âââ components
â  â  â  â  âââ AppComponent.kt
â  â  â  âââ modules
â  â  â  âââ ActivitiesBuilderModule.kt
â  â  â  âââ AppModule.kt
â  â  â  âââ DatabaseModule.kt
â  â  â  âââ NetworkModule.kt
â  â  â  âââ RepoModule.kt
â  â  â  âââ ViewModelModule.kt
â  â  âââ models
â  â  â  âââ UserEvent.kt
â  â  âââ ui
â  â  â  âââ activities
â  â  â  â  âââ splash
â  â  â  â  â  âââ SplashActivity.kt
â  â  â  â  â  âââ SplashViewModel.kt
â  â  â  â  âââ userdetail
â  â  â  â  â  âââ UserDetailActivity.kt
â  â  â  â  â  âââ UserDetailViewModel.kt
â  â  â  â  âââ users
â  â  â  â  âââ UsersActivity.kt
â  â  â  â  âââ UsersViewModel.kt
â  â  â  âââ adapters
â  â  â  âââ EventDetailsAdapter.kt
â  â  â  âââ UserEventsAdapter.kt
â  â  â  âââ UsersAdapter.kt
â  â  âââ utils
â  â  âââ DateTimeUtils.kt
â  â  âââ EventRepoUtils.kt
â  â  âââ NightModeUtils.kt
â  â  âââ StringUtils.kt
â  â  âââ test
â  â  âââ OpenForTesting.kt
â  âââ res
â  âââ drawable
â  â  âââ ic_baseline_add_24.xml
â  â  âââ ic_baseline_close_24.xml
â  â  âââ ic_baseline_delete_outline_24.xml
â  â  âââ ic_hacker_100.xml
â  â  âââ ic_launcher_foreground.xml
â  â  âââ ic_night_mode_24.xml
â  âââ drawable-night
â  â  âââ ic_night_mode_24.xml
â  âââ layout
â  â  âââ activity_splash.xml
â  â  âââ activity_user_detail.xml
â  â  âââ activity_users.xml
â  â  âââ item_event_detail.xml
â  â  âââ item_user_event.xml
â  â  âââ item_user.xml
â  âââ mipmap-anydpi-v26
â  â  âââ ic_launcher_round.xml
â  â  âââ ic_launcher.xml
â  âââ mipmap-hdpi
â  â  âââ ic_launcher.png
â  â  âââ ic_launcher_round.png
â  âââ mipmap-mdpi
â  â  âââ ic_launcher.png
â  â  âââ ic_launcher_round.png
â  âââ mipmap-xhdpi
â  â  âââ ic_launcher.png
â  â  âââ ic_launcher_round.png
â  âââ mipmap-xxhdpi
â  â  âââ ic_launcher.png
â  â  âââ ic_launcher_round.png
â  âââ mipmap-xxxhdpi
â  â  âââ ic_launcher.png
â  â  âââ ic_launcher_round.png
â  âââ values
â  â  âââ colors.xml
â  â  âââ dimens.xml
â  â  âââ ic_launcher_background.xml
â  â  âââ strings.xml
â  â  âââ styles.xml
â  âââ values-night
â  âââ colors.xml
â  âââ styles.xml
âââ sharedTest
â  âââ java
â  âââ com
â  âââ theapache64
â  âââ tracktor
â  âââ utils
â  âââ test
â  âââ observeForTesting.kt
âââ test
âââ java
â  âââ com
â  âââ theapache64
â  âââ tracktor
â  âââ data
â  â  âââ local
â  â  â  âââ daos
â  â  â  âââ UserDaoTest.kt
â  â  âââ repositories
â  â  âââ EventsRepoTest.kt
â  âââ ui
â  â  âââ activities
â  â  âââ splash
â  â  â  âââ SplashViewModelTest.kt
â  â  âââ userdetail
â  â  â  âââ UserDetailViewModelTest.kt
â  â  âââ users
â  â  âââ UsersViewModelTest.kt
â  âââ utils
â  âââ DateTimeUtilsTest.kt
â  âââ StringUtilsKtTest.kt
âââ resources
âââ robolectric.properties
77 directories, 88 files
- đ¤ Icons are from flaticon.com
- đď¸ Design inspired from AnimeXStream
- đ˝ Data from GitHub API v3
- Support more GitHub events
- Add more test cases
- theapache64