Überblick
Diese App verwendet Capacitor 8 als Native-Shell für Android. Die Next.js Web-App wird als statischer Export gebaut und von Capacitor in eine echte APK/AAB-Datei verpackt. Lokale Benachrichtigungen werden über @capacitor/local-notifications mit exakten Alarmen und USE_EXACT_ALARM geplant.
Voraussetzungen installieren
- Node.js 20+ und pnpm installiert
- Android Studio (neueste Version) mit SDK Platform 35 installiert
- Java JDK 17+ (wird mit Android Studio geliefert)
- ANDROID_HOME und JAVA_HOME Umgebungsvariablen gesetzt
Next.js App deployen (Vercel)
git push origin main
- Die App muss auf Vercel deployed sein, damit die Gebetszeiten-API erreichbar ist.
- Notiere deine Vercel-URL (z.B. https://namaz-vakitleri.vercel.app).
- Trage die URL in capacitor.config.ts unter server.url ein.
Web-Assets für Capacitor bauen
pnpm install NEXT_OUTPUT=export pnpm build
- Erzeugt den out/ Ordner mit den statischen HTML/JS/CSS-Dateien.
- Alternativ: npx cross-env NEXT_OUTPUT=export pnpm build (Windows)
Android-Projekt synchronisieren
npx cap sync android
- Kopiert die out/ Dateien ins Android-Projekt und installiert alle Capacitor-Plugins.
- Muss nach jedem pnpm build erneut ausgeführt werden.
Adhan-Sound hinzufügen
- Lege eine kurze MP3-Datei als android/app/src/main/res/raw/adhan.mp3 ab.
- Maximal ~15 Sekunden empfohlen.
- Falls keine Datei vorhanden, verwendet Android den Standard-Benachrichtigungston.
App-Icon anpassen
- Ersetze die Launcher-Icons in android/app/src/main/res/mipmap-*/
- Empfohlen: Android Asset Studio (developer.android.com/studio/write/create-app-icons)
- Mindestgröße: 512×512px für den Play Store.
Debug-APK bauen und testen
npx cap run android
- Öffnet Android Studio und deployt auf einem angeschlossenen Gerät oder Emulator.
- Alternativ: npx cap open android → In Android Studio auf Run klicken.
- Teste die Benachrichtigung: Aktiviere sie in der App und warte auf die nächste Gebetszeit.
Release-APK / AAB für Play Store
# In Android Studio: # Build → Generate Signed Bundle/APK → Android App Bundle (AAB) # Oder per Kommandozeile: cd android ./gradlew bundleRelease
- Du benötigst einen Keystore für die Release-Signierung.
- Erstelle ihn in Android Studio unter Build → Generate Signed Bundle/APK → Create new key store.
- Die fertige .aab-Datei findest du unter android/app/build/outputs/bundle/release/
- targetSdkVersion=36 und compileSdkVersion=36 sind bereits gesetzt — Play Store-konform für 2025.
Play Store Upload
- Öffne play.google.com/console und erstelle eine neue App.
- Lade die .aab-Datei unter Production → Releases hoch.
- USE_EXACT_ALARM benötigt keine spezielle Play Store Genehmigung für Gebetstzeit-Apps — nutze die Kategorie "Kalender" oder "Lifestyle".
- Füge im Store-Eintrag "Gebetszeiten" und "Namaz" als Keywords hinzu.
Android-Berechtigungen (Manifest)
POST_NOTIFICATIONSPflicht ab Android 13 — zeigt Runtime-Dialog beim ersten Start.
USE_EXACT_ALARMExakte Alarme ab Android 13+ ohne User-Grant. Ideal für Gebets-Apps.
SCHEDULE_EXACT_ALARMExakte Alarme für Android 12 (API 31–32), User muss in Einstellungen bestätigen.
RECEIVE_BOOT_COMPLETEDGeplante Benachrichtigungen nach Geräterestart wiederherstellen.
WAKE_LOCKHält das Gerät kurz wach um die Benachrichtigung auszulösen.
VIBRATEVibrationsmuster bei Benachrichtigung.
SDK-Versionen
24
minSdkVersion
Android 7.0+
36
targetSdkVersion
Android 16
36
compileSdkVersion
Android 16
8.x
Capacitor
Latest
Capacitor 8 · @capacitor/local-notifications 8 · Next.js 16