
RepoExplorer MVVM
Open source GitHub client for android built using MVVM design pattern.
2GiantTurtle · com.opensource.giantturtle.clientapp
UpdatedJun 7, 2024
PublishedDec 15, 2023
Packagecom.opensource.giantturtle.clientapp
MD5f9d4d1e8b9e4ec0175c224990cb09bd0
SHA1 (signer)F7:2E:A7:B0:71:B4:69:42:04:65:E3:5A:C4:BB:D2:B8:8B:F8:E3:DA
Signed byCN=Giant Turtle, OU=2GiantTurtle software, O=2GiantTurtle, L=Belgrade, ST=Serbia
Malware scanTRUSTED
Contact[email protected]
What's new
Added feature to add or delete bookmarks from project details screen, not just from projects list screens (depending on screen user comes from).
Description
GitHub client for android built using MVVM design pattern, reactive programming with LiveData, repository pattern, Room Persistence Library.
Features: Pagination, caching search results and option to add bookmarks.
Code is packaged by feature. Data package contains local database model classes, web service and repository wich is used as a single source of truth.
UI package contains VIEW (Activities) and VIEW MODEL (AndroidViewModel)code for each screen in the app. VIEW MODEL don't hold any references to the VIEW or the MODEL classes in data package so the code is modular and it is easy to change the screens and add features.
LiveData is used to communicate between app layers. Any changes in the MODEL layer are propagated via LiveData to VIEW MODEL and then to the VIEW layer.
In Utils class there is Configuretion interface in wich you can configure default search term, results per page and for how long should results be kept in local cache, before trying to update with new ones.
Check out source code at: https://github.com/giantturtle/RepoExplorerMVVM
Features: Pagination, caching search results and option to add bookmarks.
Code is packaged by feature. Data package contains local database model classes, web service and repository wich is used as a single source of truth.
UI package contains VIEW (Activities) and VIEW MODEL (AndroidViewModel)code for each screen in the app. VIEW MODEL don't hold any references to the VIEW or the MODEL classes in data package so the code is modular and it is easy to change the screens and add features.
LiveData is used to communicate between app layers. Any changes in the MODEL layer are propagated via LiveData to VIEW MODEL and then to the VIEW layer.
In Utils class there is Configuretion interface in wich you can configure default search term, results per page and for how long should results be kept in local cache, before trying to update with new ones.
Check out source code at: https://github.com/giantturtle/RepoExplorerMVVM
Required features
- Faketouch android.hardware.faketouch
- Wifi android.hardware.wifi
Permissions (3)
RepoExplorer MVVM requests the following Android permissions:
- Access Network State android.permission.ACCESS_NETWORK_STATE
- Access Wifi State android.permission.ACCESS_WIFI_STATE
- Internet android.permission.INTERNET