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).
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.