What | How |
---|---|
🎭 User Interface (Android,Desktop,iOS) | Jetpack Compose JB! |
🏗 Architecture | Decompose + Clean Architecture |
💉 DI (Android) | Koin |
🌊 Async | Coroutines + Flow |
🌐 Networking | gRPC |
📄 Pagination | moko-paging |
🪔 Lint | ktlint gradle plugin , ktlint Pinterest |
🤿 Testing with Turbine | Turbine |
local.properties
file to the project root and set a path to Android SDK thereTo run the application on android device/emulator:
To build the application bundle:
./gradlew :composeApp:assembleDebug
.apk
file in composeApp/build/outputs/apk/debug/composeApp-debug.apk
Run the desktop application: ./gradlew :composeApp:run
To run the application on iPhone device/simulator:
iosApp/iosApp.xcproject
in Xcode and run standard configurationMake sure to run envoy! Run the browser application: ./gradlew :composeApp:jsBrowserDevelopmentRun
The project supports android, compose iOS and jvm platform, make sure you match the ip:addr in the class GrpcCalls() once you run the slackserver locally!
https://user-images.githubusercontent.com/4393101/229371347-1cebf7bf-384d-4ec0-bfcf-19b1e34e6290.mp4
https://github.com/oianmol/SlackComposeMultiplatform/assets/4393101/05a37ed9-c27c-41dd-b493-26cb55506095
Copyright 2024 Anmol Verma
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.