This is a multiplatform frontend for chat-backend. It is written in Kotlin and uses Ktor for networking and Compose for the UI. It runs natively on Android and iOS, desktop via the JVM, and experimentally in a web browser with WebAssembly.
To run the project on your desktop:
./gradlew :composeApp:run
To build a distributable package:
./gradlew :composeApp:createDistributable
Open the project in Android Studio and run the "Android App" configuration.
iOS development requires a Mac with Xcode installed. The iOS build is untested due to me unfortunately not having a Mac, and may not work out of the box. Contributions are welcome to fix issues here.
To run a development server:
./gradlew :composeApp:wasmJsBrowserDevelopmentRun
For production, you should build the site and serve it with a proper web server:
./gradlew :composeApp:wasmJsBrowserDistribution
Before logging in or registering, you need to set up the API endpoints the client should use. This can be done by opening a "secret" configuration menu, which is done by clicking the logo on the login screen 8 times in a row. After this is done, you can log in or register with the chat-backend server.
Important
The Android & iOS apps don't support API endpoints without TLS. This is because they require secure connections by default.
The recommended IDE for this project is Android Studio. There are several run configurations set up for the different platforms.
This project is licensed under GPL-3.0. See the LICENSE file for details.