# Simple Notes - Android App ## 🚧 Development Setup ### Voraussetzungen - Android Studio Hedgehog (2023.1.1) oder neuer - JDK 17 - Android SDK 34 - Min SDK 24 ### Projekt in Android Studio ΓΆffnen ```bash # In Android Studio: # File β†’ New β†’ New Project # Template: Empty Views Activity # # Settings: # Name: Simple Notes # Package: com.example.simplenotes # Save location: /home/liq/gitProjects/simple-notes-sync/android/ # Language: Kotlin # Minimum SDK: API 24 # Build configuration: Kotlin DSL ``` ### Dependencies Siehe `ANDROID_GUIDE.md` in project-docs fΓΌr vollstΓ€ndige `build.gradle.kts`: **HauptabhΓ€ngigkeiten:** - Sardine Android (WebDAV Client) - Kotlin Coroutines - Gson (JSON) - WorkManager (Background Sync) - Material Design Components ### Projektstruktur ``` android/ └── app/ └── src/ └── main/ β”œβ”€β”€ AndroidManifest.xml β”œβ”€β”€ java/com/example/simplenotes/ β”‚ β”œβ”€β”€ MainActivity.kt β”‚ β”œβ”€β”€ NoteEditorActivity.kt β”‚ β”œβ”€β”€ SettingsActivity.kt β”‚ β”œβ”€β”€ models/ β”‚ β”‚ β”œβ”€β”€ Note.kt β”‚ β”‚ └── SyncStatus.kt β”‚ β”œβ”€β”€ storage/ β”‚ β”‚ └── NotesStorage.kt β”‚ β”œβ”€β”€ sync/ β”‚ β”‚ β”œβ”€β”€ WebDavSyncService.kt β”‚ β”‚ β”œβ”€β”€ WifiSyncReceiver.kt β”‚ β”‚ β”œβ”€β”€ SyncWorker.kt β”‚ β”‚ └── ConflictResolver.kt β”‚ β”œβ”€β”€ adapters/ β”‚ β”‚ └── NotesAdapter.kt β”‚ └── utils/ β”‚ β”œβ”€β”€ DeviceIdGenerator.kt β”‚ β”œβ”€β”€ NotificationHelper.kt β”‚ β”œβ”€β”€ Extensions.kt β”‚ └── Constants.kt └── res/ β”œβ”€β”€ layout/ β”œβ”€β”€ values/ └── drawable/ ``` ## πŸ“– Development Guide VollstΓ€ndige Code-Beispiele und Implementation: - [ANDROID_GUIDE.md](https://github.com/inventory69/project-docs/blob/main/simple-notes-sync/ANDROID_GUIDE.md) - [IMPLEMENTATION_PLAN.md](https://github.com/inventory69/project-docs/blob/main/simple-notes-sync/IMPLEMENTATION_PLAN.md) ## πŸ—οΈ Build ```bash # Debug Build ./gradlew assembleDebug # Release Build ./gradlew assembleRelease # Install on connected device ./gradlew installDebug ``` ## πŸ§ͺ Testing ```bash # Run unit tests ./gradlew test # Run instrumented tests ./gradlew connectedAndroidTest ``` ## πŸ“ TODO - [ ] Projekt in Android Studio erstellen - [ ] Dependencies einrichten - [ ] Models implementieren (Note.kt, SyncStatus.kt) - [ ] Storage Layer (NotesStorage.kt) - [ ] UI Layouts erstellen - [ ] Activities implementieren - [ ] Sync Service (WebDavSyncService.kt) - [ ] WLAN Detection (WifiSyncReceiver.kt) - [ ] WorkManager Setup (SyncWorker.kt) - [ ] Notifications (NotificationHelper.kt) - [ ] Error Handling - [ ] Testing --- **Next Step:** Projekt in Android Studio erstellen und Code aus ANDROID_GUIDE.md ΓΌbernehmen.