Built with OpenAI Codex
Eine moderne Wetter-App, entwickelt mit React Native und Expo, die aktuelle Wetterdaten für beliebige Städte weltweit anzeigt.
- 🌍 Weltweite Wettersuche nach Städten
- 📍 GPS-basierte Standortermittlung - Automatisches Wetter für den aktuellen Standort
- 💾 Persistente Standort-Speicherung - Bis zu 5 zuletzt gesuchte Orte werden gespeichert
- 🌡️ Anzeige von Temperatur, Luftfeuchtigkeit und Windgeschwindigkeit
- 🎨 Dynamische Icons je nach Wetterlage (sonnig, bewölkt, regnerisch, schneefall)
- 📱 Responsive Design für iOS, Android und Web
- 🇩🇪 Vollständige deutsche Übersetzungen für alle Wetterbedingungen
- ⚡ TypeScript für bessere Code-Qualität
- 🧪 Jest Testing Setup mit Coverage
Die App zeigt verschiedene Wettericons abhängig von den aktuellen Bedingungen:
- ☀️ Sonnig
- ☁️ Bewölkt
- 🌧️ Regnerisch
- ❄️ Schneefall
- 📍 "Meinen Standort verwenden" - Button für GPS-basierte Wetterabfrage
- 💾 Gespeicherte Orte - Schnellzugriff auf die letzten 5 gesuchten Standorte
- 🌐 Deutsche Wetterbeschreibungen - Alle Wetterbedingungen in deutscher Sprache
- Node.js (Version 18 oder höher)
- npm oder yarn
- Expo CLI (
npm install -g @expo/cli) - iOS/Android Gerät oder Emulator für GPS-Funktionalität (nicht im Web verfügbar)
- Repository klonen oder Ordner herunterladen
- In das Projektverzeichnis wechseln:
cd expo-weather - Abhängigkeiten installieren:
npm install
- Manuelle Suche: Geben Sie einen Städtenamen ein und drücken Sie "Suchen"
- GPS-Standort: Klicken Sie auf "Meinen Standort verwenden" für automatische Standortermittlung
- Gespeicherte Orte: Schnellzugriff auf Ihre letzten 5 gesuchten Standorte
- Standort speichern/entfernen: Lange drücken zum Entfernen gespeicherter Orte
# Expo Development Server starten
npm start
# Direkt im Web Browser starten
npm start -- --web
# Spezifische Plattformen
npm run ios # iOS Simulator
npm run android # Android Emulator
npm run web # Web Browser
yarn start --web # Web Browser# Tests mit Coverage ausführen
npm test
# TypeScript Typ-Checking
npm run typecheck
# Code Linting
npm run lintDie App verwendet die OpenWeatherMap API. Der API-Schlüssel ist bereits konfiguriert, für Produktionsumgebungen sollte dieser jedoch durch einen eigenen ersetzt werden.
- Standort (GPS): Erforderlich für die "Meinen Standort verwenden" Funktion
- Speicher: Für das Speichern der bevorzugten Standorte
expo-weather/
├── App.tsx # Haupt-App-Komponente
├── assets/ # Bilder und Ressourcen
│ ├── bg.png # Hintergrundbild (optional)
│ └── img/ # Wetter-Icons
│ ├── sunny.png
│ ├── cloudy.png
│ ├── rainy.png
│ └── snowy.png
├── __tests__/ # Test-Dateien
├── package.json # Projekt-Konfiguration
├── app.json # Expo-Konfiguration
└── tsconfig.json # TypeScript-Konfiguration
- React Native: Cross-Platform Mobile Development
- Expo: Entwicklungsumgebung und Build-Tools
- TypeScript: Statische Typisierung
- OpenWeatherMap API: Wetterdaten
- expo-location: GPS-Standortermittlung und Reverse Geocoding
- @react-native-async-storage/async-storage: Lokale Datenpersistierung
- Jest: Testing Framework
- ESLint: Code-Qualität
- Verwendet
expo-locationfür präzise Standortbestimmung - Automatisches Reverse Geocoding für lesbare Standortnamen
- Fehlerbehandlung für fehlende Berechtigungen
- Fallback auf manuelle Eingabe bei GPS-Problemen
- Speichert bis zu 5 zuletzt gesuchte Orte
- Verwendet AsyncStorage für plattformübergreifende Persistierung
- Automatisches Hinzufügen neuer Standorte
- Long-Press zum Entfernen gespeicherter Orte
- Vollständige Übersetzung aller OpenWeatherMap Wetterbedingungen
- Unterstützt über 50 verschiedene Wetterzustände
- Fallback auf englische Originalbeschreibung bei unbekannten Zuständen
Das Projekt verwendet ESLint mit Universe-Konfiguration für konsistente Code-Standards.
Umfassende Test-Suite mit Jest und React Native Testing Library für zuverlässige Funktionalität.
- iOS (iPhone & iPad) - Vollständige GPS-Unterstützung
- Android - Vollständige GPS-Unterstützung
- Web (Progressive Web App) - Nur manuelle Suche und gespeicherte Orte
Hinweis: Die GPS-Funktionalität ist nur auf mobilen Geräten verfügbar. Im Web-Browser funktionieren nur die manuelle Suche und gespeicherte Standorte.
Dieses Projekt ist unter der MIT License lizenziert - siehe die LICENSE Datei für Details.
Die MIT License erlaubt die freie Nutzung, Modifikation und Verteilung des Codes für private und kommerzielle Zwecke.
Hinweis: Bitte beachten Sie die Nutzungsbedingungen der OpenWeatherMap API bei der Verwendung.
Verbesserungen und Bugfixes sind willkommen! Bitte erstellen Sie einen Pull Request oder öffnen Sie ein Issue.
