Offizielle Campus App der Dualen Hochschule Baden-Württemberg Lörrach (DHBW Lörrach).
Die App wird plattformübergreifend mit React Native und Expo entwickelt und ist für Android-Geräte und das iPhone im PlayStore bzw. AppStore erhältlich.
Android: https://play.google.com/store/apps/details?id=de.dhbwloe.loerrach.campusapp
iPhone/iOS: https://itunes.apple.com/de/app/dhbw-lorrach-campus-app/id1106917276
-
Das Projekt mit git klonen:
git clone git@github.com:DHBWLoerrach/CampusApp.git -
In der Kommandozeilenumgebung in das Projektverzeichnis
CampusAppwechseln:cd CampusApp -
Die Abhängigkeiten bzw. npm-Pakete in Node.js installieren:
npm ciWichtig für das Team (macOS + Windows): Für das initiale Setup immer
npm civerwenden, nichtnpm install. So werden exakt die Versionen auspackage-lock.jsoninstalliert und unnötige Lockfile-Änderungen zwischen Betriebssystemen reduziert. -
Benötigte API-Keys (z.B. für die Mensa des SWFR) vom Projektverantwortlichen anfordern und in eine Datei
.enveintragen -
Development prebuild erstellen (erzeugt
android-Projektordner und auf macOS auch das iOS-Projekt im Ordnerios):npx expo prebuild -
Development build bauen und ausführen:
Vorbedingungen:
-
Android Studio bzw. das Android SDK muss für die Android-App installiert sein
-
Nur für macOS relevant: XCode muss installiert sein
-
Android
npx expo run:android -
iOS (nur auf macOS möglich):
npx expo run:ios
- Ein development build muss nur dann neu erstellt werden, wenn die (nativen) Abhängigkeiten sich geändert haben. Sobald auf dem Testgerät ein Dev-Build installiert ist, reicht
npx expo
womit der Entwicklungsserver (Metro-Bundler) für das Projekt gestartet wird (Ausgabe für Tipps zum Start der App beachten).
Kopiere .env.example nach .env und trage die Werte ein. Alle
EXPO_PUBLIC_*-Variablen werden beim Build in die App eingebettet.
| Variable | Erforderlich | Bedeutung |
|---|---|---|
EXPO_PUBLIC_SWFR_API_KEY |
Ja | API-Key für den Mensa-Speiseplan (SWFR). Beim Projektverantwortlichen anfordern. |
EXPO_PUBLIC_RIDES_ENABLED |
Nein | Zeigt die Mitfahr-Funktion im Stundenplan. Standard: false. |
EXPO_PUBLIC_RIDES_SOURCE |
Nein | Quelle der Mitfahr-Daten: remote (Standard) oder file (nur Dev). |
EXPO_PUBLIC_RIDES_URL |
Nein | Überschreibt die URL der Mitfahr-Daten. Standardwert ist fest hinterlegt. |
npm ci ist für ein reproduzierbares Setup gedacht.
Wenn Abhängigkeiten geändert werden sollen, erfolgt das bewusst mit npm install oder npm uninstall:
- Hinzufügen:
npm install <paket>(bzw.npm install -D <paket>für Dev-Dependencies) - Aktualisieren:
npm install <paket>@<version>odernpm update <paket> - Entfernen:
npm uninstall <paket>
Dabei werden package.json und package-lock.json aktualisiert.
Beide Dateien müssen gemeinsam committed werden.