SlideShare une entreprise Scribd logo
iOS App Group for
Debugging
@ Meetic
Sommaire
1. Le debugging chez Meetic
2. Démo
3. Les App Groups, qu’est-ce que
c'est ?
4. Comment les utiliser ?
5. Questions
Le debugging chez Meetic (Avant)
● Son but : Modifier le comportement de
l’application une fois compilé
● Comment : Développement d’un
ViewController.
● Caché par une gesture : Shake
● Inclus lors de la compilation en scheme
DEBUG avec le binaire de notre application
Et ça engendre…
Des fails
Du feature flipping commenté pour que le PO
puisse tester…
Pas décommenté
Menu Debug: Son historique chez Meetic
Démo
App Groups: Chez Meetic
Pour nos utilisateurs
● Partager le Keychain aux extensions
Pour les développeurs
● Pour nos développeurs back-end, tester que leurs
changements ne vont pas casser l’application en
production
● Changement d’URL serveur
● Feature Flipping
● Logging
● Langue de l’application sans changer la langue du
téléphone via AppleLanguages
● Récupérer le push token
● Supprimer le cache
● …
Que faire d’autre ?
● Récupérer un user id, le numéro de version
● Changer des UserDefaults spécifiques
● Ouvrir l’application principale via DeepLink
App Groups: Qu’est ce que c’est ?
● Moyen de partager des données
○ Entre applications du même App Group
○ Si elles ont les bons Entitlements et le bon Provisioning Profile
○ En dehors du sandboxing iOS
App Groups : Comment ça marche ?
App Group
Conteneur
App Groups: Comment partager des données
● Partager des données entre applications du même App Group en utilisant :
○ Keychain
○ Préférences: UserDefaults
○ Fichiers: FileManager
○ HTTPCookies: HTTPCookieStorage
Enregistrer un App Group 1/2
Enregistrer un App Group 2/2
Ajouter aux Entitlements 1/3
Ajouter aux Entitlements 2/3
Ajouter aux Entitlements 3/3
✅ Prêt à utiliser
Utiliser programmatiquement
let userDefaults = UserDefaults(suiteName: "group.com.meetic.ios.cocoaheads")
userDefaults?.bool(forKey: "SharedKey")
UserDefaults
let fileManager = FileManager.default
let containerURL = fileManager.containerURL(
forSecurityApplicationGroupIdentifier: "group.com.meetic.ios.cocoaheads"
)
FileManager
⚠ Important à savoir
● Le conteneur partagé n’est pas supprimé si encore une des applications de l’App Group est
installée
● Les applications d’un même App Group doivent être signé avec le même certificat pour accéder au
conteneur
Déploiement
● 20 utilisateurs et moins
○ Beta Testflight privée ✅
● 20 utilisateurs et plus
○ Beta Testflight privée ❌
○ Autre plateforme de déploiement (HockeyApp) ✅
○ Beta Testflight externe ⚠
Questions
Projet d’exemple & Slides
https://github.com/Valgrin/AppGroups

Contenu connexe

PDF
iOS App Group for Debugging
PPTX
Ateliers : Developpement mobile vs open source
PDF
REX Meetic, Comment la qualité reflète-t-elle nos organisations ?
PPTX
A search engine in a world of events and microservices - SF Pot @Meetic
PPTX
PHP Symfony MicroServices Migration @MeeticTech
PPTX
Meetup scala paris user group - conflation like @ meetic
PPTX
Paris Job Talk
PPTX
Transition Agile @ Meetic
iOS App Group for Debugging
Ateliers : Developpement mobile vs open source
REX Meetic, Comment la qualité reflète-t-elle nos organisations ?
A search engine in a world of events and microservices - SF Pot @Meetic
PHP Symfony MicroServices Migration @MeeticTech
Meetup scala paris user group - conflation like @ meetic
Paris Job Talk
Transition Agile @ Meetic
Publicité

iOS App Group for Debugging

  • 1. iOS App Group for Debugging @ Meetic
  • 2. Sommaire 1. Le debugging chez Meetic 2. Démo 3. Les App Groups, qu’est-ce que c'est ? 4. Comment les utiliser ? 5. Questions
  • 3. Le debugging chez Meetic (Avant) ● Son but : Modifier le comportement de l’application une fois compilé ● Comment : Développement d’un ViewController. ● Caché par une gesture : Shake ● Inclus lors de la compilation en scheme DEBUG avec le binaire de notre application
  • 5. Des fails Du feature flipping commenté pour que le PO puisse tester… Pas décommenté
  • 6. Menu Debug: Son historique chez Meetic
  • 8. App Groups: Chez Meetic Pour nos utilisateurs ● Partager le Keychain aux extensions Pour les développeurs ● Pour nos développeurs back-end, tester que leurs changements ne vont pas casser l’application en production ● Changement d’URL serveur ● Feature Flipping ● Logging ● Langue de l’application sans changer la langue du téléphone via AppleLanguages ● Récupérer le push token ● Supprimer le cache ● … Que faire d’autre ? ● Récupérer un user id, le numéro de version ● Changer des UserDefaults spécifiques ● Ouvrir l’application principale via DeepLink
  • 9. App Groups: Qu’est ce que c’est ? ● Moyen de partager des données ○ Entre applications du même App Group ○ Si elles ont les bons Entitlements et le bon Provisioning Profile ○ En dehors du sandboxing iOS
  • 10. App Groups : Comment ça marche ? App Group Conteneur
  • 11. App Groups: Comment partager des données ● Partager des données entre applications du même App Group en utilisant : ○ Keychain ○ Préférences: UserDefaults ○ Fichiers: FileManager ○ HTTPCookies: HTTPCookieStorage
  • 12. Enregistrer un App Group 1/2
  • 13. Enregistrer un App Group 2/2
  • 17. ✅ Prêt à utiliser
  • 18. Utiliser programmatiquement let userDefaults = UserDefaults(suiteName: "group.com.meetic.ios.cocoaheads") userDefaults?.bool(forKey: "SharedKey") UserDefaults let fileManager = FileManager.default let containerURL = fileManager.containerURL( forSecurityApplicationGroupIdentifier: "group.com.meetic.ios.cocoaheads" ) FileManager
  • 19. ⚠ Important à savoir ● Le conteneur partagé n’est pas supprimé si encore une des applications de l’App Group est installée ● Les applications d’un même App Group doivent être signé avec le même certificat pour accéder au conteneur
  • 20. Déploiement ● 20 utilisateurs et moins ○ Beta Testflight privée ✅ ● 20 utilisateurs et plus ○ Beta Testflight privée ❌ ○ Autre plateforme de déploiement (HockeyApp) ✅ ○ Beta Testflight externe ⚠
  • 22. Projet d’exemple & Slides https://github.com/Valgrin/AppGroups