Implemented systematic type safety improvements across the codebase to eliminate all 78 strict analysis errors: ## Phase 1: Quick Wins (Redux & Model Fixes) - Added explicit type annotations to Redux reducer parameters - Fixed copyWith() methods in FireNotification and YourLocation models with proper nullable types - Fixed BasicLocation field initializers with type casts (num to double) - Fixed context parameter inference in IntroPage and PrivacyPage - Regenerated .g.dart files with build_runner ## Phase 2: JSON Deserialization - Fixed homePage.dart Firebase message parameter casting (9 errors) - Fixed firesApi.dart JSON parsing: - Added explicit casts for num to double/int conversions - Fixed array iteration with proper List<dynamic> casting - Added return type annotation to objectIdFromJson() - Fixed nested JSON access in getMonitoredAreas() - Fixed globalFiresBottomStats.dart dynamic to int/String casting - Fixed locationUtils.dart string assignments ## Phase 3: Config & Redux Middleware - Fixed mainCommon.dart config map access with explicit String casts - Fixed mainProd.dart Sentry DSN casting - Fixed fetchDataMiddleware.dart: - Added Store<AppState>, String type annotations to createUser() - Added Function(YourLocation) type to subscribeViaApi callback - Added Exception type to catchError handler - Fixed fireMapReducer.dart restoreStatusAfterSave parameter type - Fixed persist files with Map<String, dynamic> type annotations ## Phase 4: Edge Cases - Fixed slider.dart method return types (Widget sizeText, Widget warningText) - Fixed mainDrawer.dart Key? parameter type annotation Result: 78 errors → 0 errors |
||
|---|---|---|
| android | ||
| assets | ||
| images | ||
| ios | ||
| lib | ||
| res/values | ||
| test | ||
| .flutter-plugins-dependencies | ||
| .gitignore | ||
| .metadata | ||
| build.yaml | ||
| fires_flutter.iml | ||
| fires_flutter_android.iml | ||
| pubspec.yaml | ||
| README.md | ||
Tod@s contra el Fuego (All Against Fire) mobile
This is app that notifies about fires detected in an area of your interest. It helps the early detection of fires and facilitates local mobilization, while the professional extinction services arrive.
Install
Via Play
Development
This app is developed with flutter. So if you want to contribute, please install it.
You also needs a:
assets/private-settings.jsonseeassets/private-settings-sample.json.google-services.jsonprovided by firebase console (see also the sample).
Some json related code is generated via
flutter packages pub run build_runner build --delete-conflicting-outputs
also you can run with watch instead of build to build with any code change.
Generate apk with:
flutter build apk -t lib/mainProd.dart --flavor production
also you can run with -t lib/mainDev.dart --flavor development. More info about flavors here.
Testing
Run flutter test for doing unit testing.
Data source acknowledgements
We acknowledge the use of data and imagery from LANCE FIRMS operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.
License
GNU APLv3. See our LICENSE, for a complete text.
Thanks & other acknowlegments
(...)