Publié par

Il y a 3 ans -

Temps de lecture 8 minutes

iOS / Mobile : WWDC 2016 – allYouNeedToKnow()

Keynote.jpg

Le 13 juin, à San Francisco, a eu lieu le lancement de la fameuse conférence d’Apple pour développeurs : la WWDC. Comme chaque année, le début de cette conférence a été marqué par la Keynote, suivie par le Platforms State Of Union pour des annonces plus techniques. Après plusieurs heures d’attente devant le Bill Graham Civic Auditorium nous avons pris connaissance des évolutions tant attendues cette année sur tous les différents OS: watchOS, tvOS, OSX (désormais appelé macOS)  et iOS. Pour notre plus grand bonheur, les prochaines versions des systèmes made in Cupertino intégreront une myriade de nouveautés.

On note surtout cette année un effort de la part d’Apple d’ouvrir encore plus leurs API : des extensions telles que Calls, Siri, Maps, Widgets et Messages pourront directement être intégré au sein de nos applications par le biais d’extensions.

Deux autres points ont particulièrement retenu notre attention : le premier est l’annonce de Swift Playground sur iOS. Apple souhaite révolutionner notre façon d’apprendre en proposant un environnement de compilation et execution de code Swift directement sur iPad. Le but, pour l’instant, est principalement didactique : deux tutoriaux interactifs sont déjà inclus dans l’applicatif. Le deuxième est l’annonce du nouveau système de fichiers APFS (Apple File System) qui va remplacer l’ancien format HFS créé il y a plus de 18 ans.

Bien sûr, d’autres annonces majeures ont été dévoilées et nous aimerions vous les partager plus en détail dans cet article:

  1. Messages
  2. SiriKit
  3. Swift 3
  4. Xcode 8
  5. Interface Builder
  6. watchOS 3
  7. tvOS 2

1. Messages

Le nouveau Framework Messages permettra d’avoir les mêmes fonctionnalités que celles des outils de chat des réseaux sociaux comme SnapChat ou Facebook. Les développeurs pourront créer (très) facilement des extensions pour interagir directement avec l’application Messages d’Apple.

Nous aurons accès à deux aspects de l’application Messages:

  • le Sticker Pack qui permettra aux développeurs d’intégrer des stickers à base d’images pouvant être ajouter à un chat. Ce type d’application ne requiert pas de code et peut être créée en copiant simplement les images dans un projet gabarit d’Xcode
  • des applications iMessages permettront de créer des interfaces utilisateurs personnalisées qui apparaissent en ligne dans l’interface de chat de Messages pour montrer un certain nombre de messages interactifs. Selon Apple ce type d’application permettra de partager du contenu, d’envoyer des paiements, de jouer à des jeux, de collaborer et tout cela directement depuis Messages. D’un point de vue utilisateur, il est intéressant mettre en évidence le workflow d’installation d’une extension iMessage : en effet, lorsque nous enverrons un message en utilisant une extension, notre destinataire pourra installer rapidement l’extension nécessaire pour visualiser le contenu sans passer par l’App Store.
Sessions à explorer :

2. SiriKit

Siri est enfin rendu accessible sur iOS 10 grâce à SiriKit et avec le support d’ Intents framework et Intents UI frameworks . L’API rend possible l’intégration directe dans l’UI de Siri et de parser les paroles de l’utilisateur pour en déduire des actions pour l’utilisateur.

Pour le moment, SiriKit fonctionnera seulement avec les applications concernant les domaines suivants :

  • Appels audio et vidéo
  • Messagerie
  • Payements
  • Recherche photos
  • Workouts
  • Réservation de trajets

SiriKit.png

SiriKit a été pensé de telle sorte que Siri s’occupe de la conversation tandis que l’application fournira la logique pour exécuter les actions. Comme le suggère aussi le diagramme ci-dessus, il faudra fournir à Siri un vocabulaire source d’intentions sous la forme de .plist. Ensuite l’application recevra en retour une série de données basées sur les intentions de l’utilisateur, qui pourront être utilisées pour afficher une interface contenant une ou plusieurs actions.

Sessions à explorer :

3. Swift 3

Swift a été annoncé comme le langage Open Source le plus adopté sur GitHub. Il centralise plus de 350 contributeurs et est utilisé de plus en plus sur des plateformes différentes. La roadmap du langage restera totalement ouverte avec actuellement plus de 100 propositions d’évolutions. Swift 3.0 sera la première version à être compatible avec toutes versions ultérieures (tout du moins avec la version 4.0), même si, comme on s’y attendait, la compatibilité binaire (ABI Compatibility) ne sera toujours pas garantie.

Swift 3.0 sera plus clair et plus rationnel mais au détriment de ne pas assurer de rétro compatibilité avec la version actuelle : il faudra en effet prévoir des changements sur l’API dues à des nouvelles conventions de nommage. À titre d’exemple, la bibliothèque Grand Central Dispatch utilise maintenant une toute nouvelle interface.

Voici un exemple d’une invocation d’un dispatch_queue en Swift 3.0 :

let queue = dispatch_queue_create("com.xyzcorp.myqueue", nil)
dispatch_async(queue) {
 print("Hello World")
}

qui deviendra plus simplement :

let queue = DispatchQueue(label:"com.xyzcorp.myqueue", nil)
queue.async(queue) {
 print("Hello World")
} 

CoreGraphics recevra aussi le même traitement et, bien sûr, une grande partie des classes de Foundation perdront leur préfix NS.

Sachez que Xcode 8 intégrera un outil pour pouvoir migrer votre code vers Swift 3.0 : nous avons d’ailleurs déjà tenté de faire cette migration pour certains de nos projets actuels mais l’outil reste encore perfectible pour le moment.

Sessions à explorer :

4. Xcode 8

Xcode va permettre d’écrire des extensions standardisées donnant aux développeurs la possibilité d’améliorer leur façon d’opérer avec l’IDE. Le premier type d’extension supporté est le Source Editor. La contrepartie est qu’Xcode adopte un nouveau système de sécurité pour ces extensions : la conséquence directe est que le célèbre gestionnaire de plugin Alcatraz ne sera pas en mesure de fonctionner sans avoir préalablement désactivé le System Integrity Protection.

Xcode s’enrichit surtout de deux nouveaux outils de déboggage permettant de détecter des bugs aux runtime :

  • le thread sanitizer: un outil pour identifier les races conditions sur les accès aux données dans un environnement multi-threads
  • le memory debugger : un outil permettant de visualiser un graphe des objets alloués par l’application. Ceci permettra d’isoler beaucoup plus facilement les fuites mémoire et les références cycliques ; une fois ces problèmes identifiés sur le graphe, il sera donc très facile d’identifier la ligne de code responsable des effets de bords sur la mémoire.

Étant donné la difficulté d’identifier ce type de bugs on apprécie grandement que de tels outils soient désormais à notre disposition.

Sessions à explorer :

5. Interface Builder

Interface Builder évolue aussi avec des nouveaux modes de visualisations permettant d’obtenir un rendu quasi final sur les devices supportés par votre application : la pré-visualisation se fera par une combinaison de choix entre un device particulier et un choix size class. Aussi le nouveau Interface builder supportera enfin le zoom continue, ce qui devrait grandement nous faciliter l’édition des écrans de taille conséquente, tels que ceux de tvOS.

L’annonce la plus notable est certainement l’identification automatique des contraintes ambiguës sans avoir à builder ou à lancer l’application : nous pourrons ainsi gagner un temps précieux sur l’identification complexes des bugs liés à la mise en place des contraintes.

Sessions à explorer :

6. watchOS 3

watchOS offrira à priori des performances de calcul bien meilleures que watchOS 2 permettant de lancer de façon quasi instantanée les applications préférés. Ces dernières s’afficheront dans un nouveau dock qui remplacera glances. watchOS 3 intègrera de nouveaux gestes et une interface plus élaborée : plusieurs frameworks connus sur iOS tels que SpriteKit, SceneKit et CloudKit seront seront désormais disponibles sur cette plateforme.

 

Sessions à explorer :

7. tvOS 2

Tout comme watchOS, Apple a assuré le portage de plusieurs de ses frameworks sur tvOS pour se rapprocher de ceux d’iOS. Sont concernés ExternalAccessory, HomeKit, MultipeerConnectivity, Photos, ReplayKit et UserNotifications. Le support pour les contrôleurs sur cette plateforme sera amené à changer : l’OS sera capable de supporter jusqu’à quatre contrôleurs simultanés et les développeurs pourront annoter les jeux nécessitant un contrôleur.

 

Sessions à explorer :

Conclusion

Cette année la WWDC est allée bien au delà de nos espérances. Non seulement nous avons eu de belles surprises comme l’annonce du nouveau playground sur l’iPad, mais Apple a su développer des outils de debugging et de développement adaptés qui devraient grandement augmenter notre productivité. On apprécie bien attendu toutes les nouveaux frameworks (SiriKit, CallKit, Messages) qui au final vont permettre à nos applications de mieux s’intégrer avec l’écosystème d’Apple mais aussi de mieux interagir entre elles.  Nous vous recommandons donc sans plus attendre de télécharger XCode 8 et iOS 10 sur le portail de développeurs afin de tester ces belles nouveautés.

Publié par

Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.