This android application is for doing the QR code check in (and a bit more) for UniNow courses. It can be used for any booking system hosted by them, e.g. for the ZHS München.
This app is NOT affiliated with UniNow GmbH, the provider/developer of the booking system. If something with this app does not work, please contact me and NOT UniNow. They can't and won't help you.
- Multiple sites and accounts
- QR Code Check in (presenting and scanning)
- List courses/appointments
- Really fast, no ads, no trackers
- Simple and small (~4MB; most of it is due to qr code scanning from zxing-cpp)
- Completely offline (authenticate once)
The latest release is published on gitlab releases. and on F-Droid. F-Droid builds are reproducible,
and signed with my key (SHA512: f44dcdebfb54333fa205ff11eaa5aa1f47cde8217dd63a9fd979cd1fcf6d4241) too. F-Droid is the preferred way, then you don't need to worry about updates.
(This app is Android 9+ only at the moment).
There is a GitHub mirror. Its only for code preservation, please don't report issues nor publish pull requests there.
Course overview ![]() |
QR Code Check In ![]() |
|---|---|
Attendee List ![]() |
QR Code Scanning ![]() |
So, the original UniNow app is not that bad (tries to be privacy friendly, works offline), but there are a few points that really bother me:
Doing simple things needs a lot of user interaction (e.g. when I want to show my ticket for the check in): Open app -> (wait) -> No I am not interested in improving the app -> (Must look at ads) -> My Studies -> ZHS -> (wait) -> Find the course -> (wait) -> Scroll down -> QR Code -> (wait)
And I don't want anything on my phone that I don't essentially need and that is not open source*.
If somebody from UniNow sees this, please reach out before blocking the app off. I do not want to harm you (with this app).
(Everything as simple as possible)
- Webview for loading UniNow website + sniff (and store) cookie
- Fetch user and page details and extract them from html (this could be improved with a dedicated graphql query; but apparently there is none)
- Get courses and appointments with GraphQL (Schema)
- Store everything on your device in a SQL database
- QR code scanning: Local copy of all enrolled users, queue for offline synchronization and fts4 for searching (actually kinda complex)
Please report an issue (you must register for an account first), or send me a quick email to bixilon [a.t] bixilon [dot.] de. I also appreciate feedback (positive or negative) 😄
Every use case is different, mine is just checking in for sports courses and that works pretty much offline.
IntelliJ breaks reproducible builds, build with:
- Update version code in
app/build.gradle.kts - Create fastlane changelog
- Update fdroid.txt with version information (then fdroid will build and deploy it automatically)
git tag v1.2.3./gradlew app:assembleReleaseapksigner sign --ks ~/Dokumente/androidkey.jks --alignment-preserved app-release-unsigned.apk(app/build/outputs/apk/release/app-release-unsigned.apk)curl --location --header "PRIVATE-TOKEN: XXXXXX" --upload-file app-release-signed.apk "https://gitlab.bixilon.de/api/v4/projects/444/packages/generic/apk/VERSION/app-release.apk"git push --tags& create release



