The menus of all mensas of ETHZ and UZH in Zürich in one app.
This app is heavily based on @famoser's work on his Mensa app. I modernized and rewrote the app using Jetpack Compose.
| Light mode | Dark mode |
|---|---|
Has a new mensa opened, or are the opening times no longer accurate? Feel free to directly submit a pull request!
For ETH, look at eth/locations.json. The infoUrlSlug
must match the hompage slug (e.g. zentrum/clausiusbar for
https://ethz.ch/de/campus/erleben/gastronomie-und-einkaufen/gastronomie/restaurants-und-cafeterias/zentrum/clausiusbar.html).
The facilityId must be the id of the menu plan (e.g. for Clausiusbar, the menu plan
linked here
has the URL
https://ethz.ch/de/campus/erleben/gastronomie-und-einkaufen/gastronomie/menueplaene/offerDay.html?date=2025-11-07&id=3).
For UZH, look at uzh/locations_zfv.json.The
infoUrlSlug must match the homepage slug (e.g. raemi59 for
https://www.mensa.uzh.ch/de/menueplaene/raemi59.html). The slug must match the slug used in the
GraphQL endpoint of ZFV (do a query on location and kitchen using
these values). Note that this API needs a key. There are other APIs (e.g.
food2050), but ZFV only needs one request.
For implementation details on how the links are constructed (to try it out yourself), check out ETHMensaProvider.kt and UZHMensaProvider.kt.
I have taken over development and maintenance of the Mensa app from @famoser. I will continue to provide updates for the Android version of this app in the next few years. If you are interested in helping with the development or even adding a iOS version using Compose Multiplatform, feel free to reach out, create an issue or submit a pull request.
- Update version in code
- Verify that the GitHub build passes
- Update
versionCodeandversionNameinapp/build.gradle.kts - Summarize changes in
metadata/[lang]/changelogs
- Play Store update
- Generate signed
abbapp bundle - Create a new release on Play Console and attach the signed app bundle
- Generate signed
- F-Droid/GitHub update
- Generate signed
apk - Create a new release on GitHub with the
versionName(tag and title) and attach the signedapk
- Generate signed