177 lines
4.5 KiB
Markdown
177 lines
4.5 KiB
Markdown
# 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
|
|
|
|
1. **Repository klonen**
|
|
```bash
|
|
git clone <your-repository-url>
|
|
cd Watcher-Mobile
|
|
```
|
|
|
|
2. **Projekt in Android Studio öffnen**
|
|
- Android Studio starten
|
|
- "Open an Existing Project" auswählen
|
|
- Zum Watcher-Mobile Ordner navigieren
|
|
|
|
3. **API URL konfigurieren**
|
|
|
|
Bearbeite `app/build.gradle.kts` und setze die Base URL deiner API:
|
|
```kotlin
|
|
buildConfigField("String", "API_BASE_URL", "\"https://your-api.com/api/\"")
|
|
```
|
|
|
|
4. **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 Agent
|
|
- `GET /api/agents/{id}/metrics` - Metriken eines Agents
|
|
|
|
### Alerts
|
|
- `GET /api/alerts` - Liste aller Alerts (mit Pagination)
|
|
- `GET /api/alerts/{id}` - Details zu einem Alert
|
|
- `POST /api/alerts/{id}/acknowledge` - Alert bestätigen
|
|
|
|
### Health
|
|
- `GET /api/health` - Health Check
|
|
|
|
### API Response Format
|
|
|
|
Die API sollte folgendes Response-Format verwenden:
|
|
|
|
```json
|
|
{
|
|
"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]
|