Les paquets pub.dev
Flutter accède au matériel via des plugins publiés sur pub.dev : image_picker (photo), geolocator (position), permission_handler (permissions). On les ajoute à pubspec.yaml.
Les permissions
Caméra et localisation exigent l'autorisation de l'utilisateur, à déclarer dans AndroidManifest.xml / Info.plist et à demander à l'exécution.
Prendre / choisir une photo
image_picker ouvre l'appareil photo ou la galerie et renvoie un fichier.
final photo = await ImagePicker().pickImage(source: ImageSource.camera);
Obtenir la position
geolocator donne la position GPS courante — la clé de la recherche de campagnes « autour de moi ».
final pos = await Geolocator.getCurrentPosition(); // pos.latitude, pos.longitude → envoyés à l'API ($near côté Mongo)
Récupère la position du particulier avec geolocator (après permission), envoie-la à l'API, qui lance la requête géospatiale $near (parcours MongoDB, ch. 13) pour proposer les campagnes proches. Boucle complète GPS → API → Mongo.
- Le hardware s'utilise via des plugins pub.dev.
- Déclarer et demander les permissions ; gérer le refus.
image_picker(photo),geolocator(position GPS).