Reviewed-on: #1
Watcher Mobile
Android Mobile App für das Watcher Monitoring System
Übersicht
Watcher Mobile ist eine native Android App, die mit dem Watcher Monitoring System kommuniziert. Die App ermöglicht es, Monitoring-Daten von Agents abzurufen, den System-Status zu überwachen und Alerts zu verwalten.
Features
-
Dashboard: Übersicht über den aktuellen System-Status
- Anzahl aktiver/inaktiver Agents
- Aktuelle Alerts und kritische Meldungen
- System-Health Status
-
Agent-Verwaltung: Übersicht aller Monitoring Agents
- Status-Anzeige (Online/Offline/Warning/Error)
- Grundlegende Metriken (CPU, RAM, Disk)
- Letzte Verbindungszeit
-
Alerts: Benachrichtigungen und Warnungen
- Nach Schweregrad gefiltert (Info, Warning, Critical)
- Zeitstempel und Details
-
Settings: Konfiguration der App
- API URL Einstellungen
- API Key Verwaltung
- Refresh-Intervall
- Benachrichtigungseinstellungen
Technologie-Stack
- Sprache: Kotlin
- UI Framework: Jetpack Compose
- Architecture: MVVM (Model-View-ViewModel)
- Networking: Retrofit + OkHttp
- JSON: Gson
- Async: Kotlin Coroutines + Flow
- Storage: DataStore Preferences
- Minimum SDK: 24 (Android 7.0)
- Target SDK: 34 (Android 14)
Projektstruktur
app/src/main/java/com/watcher/mobile/
├── data/ # Datenmodelle
│ └── MonitoringData.kt
├── network/ # API Service und Retrofit Client
│ ├── ApiService.kt
│ └── RetrofitClient.kt
├── repository/ # Repository Pattern für Datenzugriff
│ └── MonitoringRepository.kt
├── viewmodel/ # ViewModels für UI State Management
│ ├── DashboardViewModel.kt
│ └── AgentsViewModel.kt
├── ui/ # Compose UI Komponenten
│ ├── DashboardScreen.kt
│ ├── AgentsScreen.kt
│ └── theme/
│ ├── Theme.kt
│ └── Type.kt
├── utils/ # Hilfsfunktionen
│ └── PreferencesManager.kt
├── MainActivity.kt # Haupt-Activity
└── WatcherApplication.kt # Application Class
Setup & Installation
Voraussetzungen
- Android Studio Hedgehog (2023.1.1) oder neuer
- JDK 17
- Android SDK mit API Level 34
- Gradle 8.2+
Installation
-
Repository klonen
git clone <your-repository-url> cd Watcher-Mobile -
Projekt in Android Studio öffnen
- Android Studio starten
- "Open an Existing Project" auswählen
- Zum Watcher-Mobile Ordner navigieren
-
API URL konfigurieren
Bearbeite
app/build.gradle.ktsund setze die Base URL deiner API:buildConfigField("String", "API_BASE_URL", "\"https://your-api.com/api/\"") -
Build & Run
- Sync Project with Gradle Files
- Build → Make Project
- Run → Run 'app'
API Integration
Die App kommuniziert mit der WebApp über eine REST API. Folgende Endpunkte werden verwendet:
Dashboard
GET /api/dashboard- Dashboard Summary
Agents
GET /api/agents- Liste aller Agents (mit Pagination)GET /api/agents/{id}- Details zu einem AgentGET /api/agents/{id}/metrics- Metriken eines Agents
Alerts
GET /api/alerts- Liste aller Alerts (mit Pagination)GET /api/alerts/{id}- Details zu einem AlertPOST /api/alerts/{id}/acknowledge- Alert bestätigen
Health
GET /api/health- Health Check
API Response Format
Die API sollte folgendes Response-Format verwenden:
{
"success": true,
"data": { ... },
"error": null,
"timestamp": 1234567890
}
Authentication
Die App unterstützt API Key Authentication über den Authorization Header:
Authorization: Bearer YOUR_API_KEY
Die API URL und der API Key können in den App-Einstellungen konfiguriert werden.
Entwicklung
Code Style
Das Projekt folgt den offiziellen Kotlin Coding Conventions.
Build Variants
- Debug: Entwicklungsversion mit Logging
- Release: Produktionsversion mit ProGuard/R8 Optimierung
Logging
Im Debug-Build sind HTTP Requests vollständig geloggt (via OkHttp Interceptor).
Zukünftige Features
- Push-Benachrichtigungen für kritische Alerts
- Detaillierte Metriken-Grafiken
- Alert-Filter und -Suche
- Dark Mode Toggle
- Offline-Cache mit Room Database
- Widget für Quick-Status
- Biometrische Authentifizierung
Lizenz
[Hier deine Lizenz einfügen]
Kontakt
[Hier deine Kontaktinformationen einfügen]