2026-01-12 16:04:59 +01:00
2026-01-12 16:04:59 +01:00
2026-01-12 16:04:59 +01:00
2026-01-12 14:07:48 +01:00
2026-01-12 14:07:48 +01:00
2026-01-12 14:07:48 +01:00
2026-01-12 14:07:48 +01:00
2026-01-12 14:07:48 +01:00
2026-01-12 14:07:48 +01:00
2026-01-12 14:07:48 +01:00

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]

Description
No description provided
Readme MIT 50 KiB
Languages
Kotlin 100%