-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
124559a
commit 9904a9d
Showing
15 changed files
with
53 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,60 @@ | ||
# Compose Multiplatform Application | ||
# Splashy | ||
|
||
## Before running! | ||
- check your system with [KDoctor](https://github.com/Kotlin/kdoctor) | ||
- install JDK 8 on your machine | ||
- add `local.properties` file to the project root and set a path to Android SDK there | ||
- run `./gradlew podInstall` in the project root | ||
[![Check](https://github.com/ishubhamsingh/Splashy/actions/workflows/Check.yaml/badge.svg?branch=main)](https://github.com/ishubhamsingh/Splashy/actions/workflows/Check.yaml) | ||
|
||
## :scroll: Description | ||
An Unsplash based wallpaper app built with Compose Multiplatform and KMP for Android and iOS. | ||
|
||
## :hammer_and_wrench: Tech Stack | ||
|
||
- [Kotlin Mutliplatform](https://kotlinlang.org/lp/multiplatform/) | ||
- [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/) | ||
- [Ktor Client](https://ktor.io/) | ||
- [SQLDelight](https://cashapp.github.io/sqldelight/2.0.0/) | ||
- [Precompose](https://github.com/Tlaster/PreCompose) | ||
- [Koin](https://insert-koin.io/) | ||
- [Kamel](https://github.com/Kamel-Media/Kamel) | ||
- [Napier](https://github.com/AAkira/Napier) | ||
- [Compose Icons](https://github.com/DevSrSouza/compose-icons) | ||
- [Moko Permissions](https://github.com/icerockdev/moko-permissions) | ||
- [Moko MVVM](https://github.com/icerockdev/moko-mvvm) | ||
|
||
## :camera_flash: Screenshots | ||
|
||
### Android | ||
To run the application on android device/emulator: | ||
- open project in Android Studio and run imported android run configuration | ||
|
||
To build the application bundle: | ||
- run `./gradlew :composeApp:assembleDebug` | ||
- find `.apk` file in `composeApp/build/outputs/apk/debug/composeApp-debug.apk` | ||
<img src="/assets/screenshots/android/Screenshot_2.png" width="260"> <img src="/assets/screenshots/android/Screenshot_3.png" width="260"> <img src="/assets/screenshots/android/Screenshot_5.png" width="260"> | ||
|
||
### iOS | ||
To run the application on iPhone device/simulator: | ||
- Open `iosApp/iosApp.xcworkspace` in Xcode and run standard configuration | ||
- Or use [Kotlin Multiplatform Mobile plugin](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile) for Android Studio | ||
|
||
<img src="/assets/screenshots/ios/Screenshot_2.png" width="260"> <img src="/assets/screenshots/ios/Screenshot_4.png" width="260"> <img src="/assets/screenshots/ios/Screenshot_6.png" width="260"> | ||
|
||
## :gear: Build | ||
|
||
The app uses Unsplash API, hence you need to get your own API key from [here](https://unsplash.com/documentation). | ||
In order to sign your builds generate `splashy.jks` keystore and add keystore password, alias and store password in `secrets.properties`. | ||
|
||
secrets.properties would look like this: | ||
``` | ||
unsplash.access.key=#Add your unsplash key | ||
splashy.keystore.password=#Add your keystore password | ||
splashy.key.alias=#Add your key alias | ||
splashy.key.password=#Add your key password | ||
``` | ||
|
||
## License | ||
``` | ||
Copyright Shubham Singh | ||
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 | ||
https://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. | ||
``` |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.