A Kotlin Multiplatform sample that mirrors the architecture of a production-level app! 🚀
🗡️ Spotify-KMP is a Kotlin Multiplatform sample that mirrors the architecture of a production-level app!
token.properties
in top level folder.client_id=your_client_id_here
client_secret=your_client_secret_here
grant_type=client_credentials
NOTE: You can register your app on spotify dashboard & generate above credentials.
Minimum SDK level
Language
UI Framework
Architecture
Coroutines + Flow for asynchronous.
Ktor: HTTP Client Franework for REST Apis.
SKIE: SKIE is a tool for Kotlin Multiplatform development that enhances the Swift API published from Kotlin.
KMMBridge: KMMBridge is a set of Gradle tooling that facilitates publishing and consuming pre-built KMM Xcode Framework binaries.
Kotlinx.serialization: A modern JSON serialization library for Kotlin.
Coil: Loading and caching images images from network (Android).
Kingfisher: Loading and caching images images from network (Ios).
Kermit: Multiplatform centralized logging utility.
Paging3: Multiplatform Paging Library
Multiplatform-Settings: Multiplatform library for saving simple key-value data (SharedPreferences / NSUserDefaults)
BuildKonfig: BuildConfig for Kotlin Multiplatform Project + Product Flavour in Shared Module
Koin : A pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform
Store : A Kotlin Multiplatform library for building network-resilient applications (Build offline first apps)
SqlDelight: Multiplatform SQLite Database (Generates typesafe Kotlin APIs from SQL)
Android |
IOS |
Android |
IOS |
Android |
IOS |
Spotift-KMP adopted modularization strategies below:
NOTE: The same modularization strategies are used for shared module as well
For more information, check out the Guide to app modularization.
Support it by joining stargazers for this repository. :star:
Also, follow me on GitHub for my next creations! 🤩
Designed and developed by 2024 AshuTyagi16 (Ashu Tyagi)
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.