This project has a pair of native mobile applications backed by the Sessionize data api for use in events hosted by the Sessionize web application. These are specifically for Droidcon events, but can be forked and customized for anything run on Sessionize.
Kotlin multiplatform libraries used:
-
KNarch.db - SQLite interaction library. Modeled on AOSP SQLite stack. From https://touchlab.co/ and yours truly. Click stars. Show some love.
-
SQLDelight - Amazing SQL model generator from Square and AlecStrong.
-
multiplatform-settings - Shared settings for Android and iOS from russhwolf.
-
kotlinx.serialization - JSON parsing provided by kotlinx.serialization. (Source copied directly due to packaging issues)
-
knarch.threads - Threading support library. Temporary until something more mature appears. Implements a simple LiveData analog and ThreadLocal helpers.
-
Timber - Popular logging library on Android/Java, now with more platforms!
As an aside, I added Timber, but I didn't exactly add much "logging". On the todo list.
Medium - Kotlin Multiplatform in the App Store!
Youtube - Kotlin Multiplatform @ Android Summit
Youtube - Droidcon App Kotlin Multiplatform
Clone, and at the base, run:
./gradlew generateSqlDelightInterface
then ...
./gradlew build
To see the project, use the latest Intellij EAP, and make sure Android and anything Kotlin related is installed and updated. There are modules for Android (app), iOS (ios), and the common code (src).
Until the new Multiplatform gradle plugins and dependencies are stable, you need to stick to Gradle 4.7.
The ios project is in the iosApp folder. CD into it and open the xcworkspace file with Xcode.
cd iosApp
open iosApp.xcworkspace
NOTE Originally you would've needed to run 'pod install'. We've included the full Pods folder in the repo because of some type of cocoapods issue. You shouldn't actually need to run 'pod install', but optionally you can to refresh.
If you're using Sessionize for your event, you can use the app pretty easily. Customized config is kind of spread throughout the app. Primarily you'll need to point to your data urls, change the data seed files for speakers/sessions/sponsors, and change the color settings.
The UI is in the process of being fully ported to Google's Material Components, with a centralized color and font theme. That's a work in progress, but eventually you should be able to modify central files for Android and iOS to provide for a specific look.
It would be super great if you could keep us in the about section of your app, though. We're a consulting company that turns project revenue into open source stuff, so we need eyeballs. Thanks XOXO. Speaking of...