Files
Watcher-Mobile/README.md
2026-01-12 14:07:48 +01:00

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

  1. Repository klonen

    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:

    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:

{
  "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]