This is the official KotlinConf App! We hope you enjoy(ed) the conference and sessions. This repository contains the source code of the application.
All pieces of the application are implemented in Kotlin. Backend, frontend and mobile apps are Kotlin applications. Yes, Kotlin is powering all parts of the story. Did I already say that? Okay, let's get to the details:
KotlinConf App is connecting to the server running in the cloud to get information about sessions, speakers, favorites and votes. It is developed using Ktor, an asynchronous Kotlin web framework.
The server polls Sessionize service, which is used for planning the conference. Once in a while, it connects to APIs to get the latest information about sessions, speakers, and timeline. It then augments and republishes this information for clients to consume. It also provides a couple of extra APIs to save your favorites and accumulate votes.
All applications are developed within a single codebase using Kotlin Multiplatform technology. The UI is implemented using Compose Multiplatform UI framework.
- JDK >= 17
- Android Studio with Android SDK
- XCode with iOS SDK
- Create a file
local.properties
in the root directory of the project, pointing to your Android SDK installation. On Mac OS, the contents should besdk.dir=/Users/<your username>/Library/Android/sdk
. On other OSes, please adjust accordingly.
- Open the project in Android Studio or JetBrains Fleet and wait until the project finishes loading.
- In Android Studio, select the
androidApp
run configuration from the drop-down list within the toolbar. - Click on the run icon to start the simulator.
- Open the project in Android Studio or JetBrains Fleet and wait until the project finishes loading.
- In Android Studio, select the
KotlinConf
run configuration from the drop-down list within the toolbar. - Click on the run icon to start the simulator.
- Run
./gradlew :shared:run
to start the desktop application
- Run
./gradlew :backend:run
to start the server - All API will be available at
http://0.0.0.0:8080
- To run the web app in the browser, run
./gradlew :shared:wasmJsBrowserRun
. - Open
http://localhost:8000
in your browser after build to see the app.