Fiche 12.02 — PhotosPicker et caméra
Objectif
Savoir choisir une photo avec PhotosPicker et comprendre comment gérer la caméra si nécessaire.
1. PhotosPicker
PhotosPicker permet de sélectionner une image dans la galerie avec SwiftUI.
2. Récupérer un UIImage
Pour uploader vers Firebase Storage ou une API, tu as souvent besoin d’un UIImage ou de Data.
3. Upload après sélection
Le ViewModel peut ensuite envoyer l’image vers Firebase Storage ou vers une API REST.
4. Caméra
SwiftUI n’a pas toujours une solution native aussi directe que PhotosPicker pour la caméra.
Souvent, on utilise UIKit avec :
C’est pour ça que la partie UIKit interop est utile.
5. Permission caméra
Il faut ajouter dans Info.plist :
Exemple de texte :
6. Choisir entre galerie et caméra
Exemple de choix UX :
En SwiftUI, on peut présenter ce choix avec confirmationDialog.
En UIKit (rappel)
En UIKit, ces deux flux passent par des view controllers présentés que tu pilotes via leur delegate, et c'est toi qui gères ouverture, fermeture et récupération de l'image (impératif).
Galerie avec PHPickerViewController (moderne, depuis iOS 14) :
Caméra avec UIImagePickerController :
👉 En SwiftUI : la galerie devient PhotosPicker / le modifier .photosPicker (binding + async, plus de delegate) ; pour la caméra, on enveloppe UIImagePickerController dans un UIViewControllerRepresentable avec un Coordinator.
Résumé
PhotosPickerest la solution SwiftUI moderne pour choisir une image.- Pour uploader, il faut souvent récupérer
DataouUIImage. - La caméra peut nécessiter UIKit via
UIImagePickerController. - Il faut déclarer la permission caméra dans
Info.plist. - Le flux classique est : sélectionner image → convertir → uploader → sauvegarder URL.