Repositori d'aplicacions: cifo_flutter
Aplicació d'exemple per aprendre a utilitzar APIs externes amb Flutter i com accedir a la ubicació de l'usuari.
S'utilitza l'API 7timer per obtenir informació meteorològica.
La previsió meteorològica per les pròximes hores i dies es mostra en una llista amb diferents icones utilitzant la llibreria weather_icons.
Per cada dia es mostra també la sortida i posta de sol, utilitzant l'API Sunrise Sunset.
Es pot pulsar sobre la icona del temps d'una hora determinada per obtenir més informació com l'estat del vent en km/h o la pluja en mm/h, en cas de que siguin rellevants.
La ubicació de la previsió s'obté del dispositiu mitjançant la llibreria geolocator utilitzant coordenades latitud i longitud, i també es mostra el nom de la ciutat utilitzant reverse geocoding amb la llibreria geocoding.
Codi original: https://github.com/poqueque/cifo_2024s2_app_weather/
-
S'ha d'haver instal·lat el Flutter SDK.
-
Clonar el repositori:
git pull https://github.com/Carleslc/cifo_flutter_weather_example.git
# GitHub CLI: gh repo clone Carleslc/cifo_flutter_weather_example
cd cifo_flutter_weather_example- Instal·lar les dependències:
flutter pub get- Executar l'aplicació amb
flutter runo desde l'IDE.
lib
├── main.dart
├── models
│ ├── meteo.dart
│ ├── sunrise_sunset.dart
│ └── weather.dart
├── screens
│ └── weather_screen.dart
├── services
│ ├── location_service.dart
│ ├── sun_service.dart
│ └── weather_service.dart
├── utils
│ └── date_utils.dart
└── widgets
├── error_message.dart
├── forecast_day.dart
├── forecast_list.dart
├── forecast_location.dart
└── sun_widget.dart
L'inici de l'aplicació és a main.dart.
A models hi ha els models de dades com las clases Meteo i SunriseSunset que s'han generat amb l'ajuda de la web quicktype.
A screens està el codi de la pantalla WeatherScreen.
A services hi ha els serveis que obtenen les dades de les APIs externes (WeatherService i SunService) i de la ubicació del dispositiu (LocationService).
A widgets es troben els widgets propis que no corresponen a una pantalla determinada, com ForecastLocation que mostra el nom de la ciutat de la ubicació actual, ForecastList que obté les dades meteorològiques i mostra la llista de dies utilitzant el widget ForecastDay, que obté les dades de la sortida i posta de sol (SunWidget) i mostra la previsió de les hores del dia corresponent.
A utils hi ha una extensió per formatejar les dates i hores.
