4.5 KiB
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]