Thinkrchive-Multiplatform
Thinkrchive-Multiplatform copied to clipboard
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android and Desktop. It uses Kotlin Multiplatform to share code.
๐ ThinkRchive
Light | Dark |
---|---|
![]() |
![]() |
An app showing all details for various Lenovo Thinkpad models. Made to try out Jetpack Compose for Android and Desktop. This repo is a Multiplatform version of the initial Thinkrchive which was Android-centric
โจ Documentation
๐คณ Screenshots
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- More Coming Soon
๐ป Install
Platform | Download | Status |
---|---|---|
Android | ๐งช Beta | |
Desktop - Windows | ๐งช Experimental | |
Desktop - macOS | ๐งช Experimental | |
Desktop - Linux | ๐งช Experimental |
โน๏ธ Compose Debug apks are sometimes laggy as they contain a lot of debug code.
โน๏ธ The apk above is a signed release version and should perform as expected.
๐ Dependency
- Java 11 or above
- Android Studio Bumblebee | 2021.1+
๐๏ธ๏ธ Built with
Compared to Thinkrchive which was Android-centric
Component | Thinkrchive | Thinkrchive-Multiplatform |
---|---|---|
๐ญ User Interface | Jetpack Compose | Compose Multiplatform |
๐ Architecture | MVVM | MVI |
๐ง Backend | Thinkrchive Ktor Server | Thinkrchive Ktor Server |
๐ DI | Hilt | Koin |
๐ฃ๏ธ Navigation | Compose Navigation | Compose Navigation, Decompose |
๐ Async | Coroutines + Flow + StateFlow + SharedFlow | Coroutines + Flow + StateFlow + SharedFlow |
๐ Networking | Ktor Client | Ktor Client |
๐ JSON | Kotlin Serialization | Kotlin Serialization |
๐พ Persistence | Room + Preference DataStore | SQLDelight, Multiplatform Settings |
โจ๏ธ Logging | Timber | Timber - Android, slf4j + logback, Kermit |
๐ธ Image Loading | Coil | Coil |
๐ง Supplementary | Accompanist | Accompanist |
๐งช Testing | Mockito + JUnit + Robolectric | Mockk, JUnit, Turbine, Kotlin Test |
๐ง Fun Facts
-
ThinkRchive originally used a google sheet as the backend via Retrosheet
-
ThinkRchive now uses a custom Ktor powered server client as the backend. The backend is hosted on Heroku
-
I mocked the designs for this app on Figma and the finished app looks better than my initial designs
โ TODO
- Add more Tests (UI Tests & Integration Tests)
- Add more features
- Support for more platform
- ~Fully switch to MVI~
๐ Credits
- Special thanks to @theapache64 for readgen
- Thanks to all amazing people at Twitter for inspiring me to continue the development of this project.
๐ค Contributing
- See CONTRIBUTING
โค Show your support
Give a โญ๏ธ if this project helped you!
๐ License
- Full License
ThinkRhcive - An app showing all details for various Lenovo Thinkpad models.
Copyright (C) 2021 racka98
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Made With โค From Tanzania ๐น๐ฟ
This README was generated by readgen โค