iOS 13 et SwiftUI : l'année de transition
Lorsque iOS 13 a été annoncé, accompagné de SwiftUI, les idées de cours fusaient dans ma tête et je n'avais qu'une envie : commencer à enregistrer.
Pendant tout le mois de Juillet 2019 j'ai créé et enregistré le cours sur les nouveautés de iOS 13 et Swift 5, cela m'a permis d'appréhender en détails SwiftUI.
SwiftUI 1 : cool, impressionnant, mais pas prêt pour le monde réel.
Au fil des expérimentations et des enregistrements, mon excitation laissait place au doute : SwiftUI est-il vraiment prêt pour le monde réel ?
Concevoir une interface graphique avec SwiftUI est super agréable, beaucoup plus que depuis un Storyboard. Mais il y a tellements de choses qui manquent dans cette première version que l'on passe plus de temps à rechercher des solutions qu'à vraiment coder. C'est assez frustrant.
De plus, la documentation officielle n'est pas encore prête et les outils mériteraient pas mal d'améliorations.
Il est certain que la prochaine WWDC sera déterminante pour SwiftUI et je pense qu'il y aura beaucoup de choses qui vont évoluer, dans le bon sens.
Le choix de la raison pour un programmeur iOS est donc de rester pour le moment avec les Storyboards et UIKit en attendant que SwiftUI mûrisse et que les utilisateurs passent tous progressivement à iOS 13 et plus.
Découvrir la programmation iOS avec iOS 13
Si vous commencez aujourd'hui à programmer dans l'univers d'Apple, c'est un peu plus compliqué. Nous avons vu que SwiftUI n'était pas prêt pour le monde réel, mais à mon avis il n'est pas prêt non-plus pour le monde de l'éducation.
XCode 11 gère nativement SwiftUI et propose un aperçu qui est capable de réagir aux changements de code, mais aussi de générer du code pour vous si vous utilisez l'éditeur graphique. C'est une idée géniale, mais pour le moment l'édition graphique est vraiment très basique, on se retrouve le plus souvent à vouloir utiliser le code à la place. La complétion automatique de code est loin d'être parfaite, ce qui force l'apprenant à mémoriser par coeur l'ensemble des fonctions utiles à chaque composant. C'est une surcharge trop importante lorsqu'on débute et au final on avance très lentement.
Le style déclaratif est agréable pour le développeur, mais complexe pour le compilateur. À la moindre erreur de syntaxe, le compilateur affiche des messages d'erreurs qui aident peu et sont même parfois de faux indices. Cette complexité pourrait peut-être expliquer les faibles performances de complétion automatique de code.
Si vous débutez aujourd'hui le développement iOS, vous pouvez faire une découverte de SwiftUI en suivant les exemples officiels de Apple. Mais suivez bien le fil et ne vous éloignez pas trop des consignes des exercices, ou vous risquez d'être vite frustré.
Apprendre en vous basant sur les Storyboards est probablement une solution plus agréable à l'heure actuelle. Vous pourrez apprendre SwiftUI en parallèle pour plus tard faire disparaître vos Storyboards, sans pression de temps.
Quid des cours de Purple Giraffe ?
Le cours sur les nouveautés de iOS 13 (qui inclut SwiftUI), se destine avant tout aux personnes qui savent déjà programmer sur iOS avec les Storyboards. Je l'ai conçu pour mes étudiants actuels, car je pense que c'est un bon moyen de découvrir SwiftUI et de se préparer à l'avenir. Lors des séances de coaching, j'essaie d'avertir mes étudiants qu'il vaut mieux attendre avant de s'en servir dans de vrai apps...certains m'écoutent :)
Pour le cours complet qui se destine aux débutants, c'est une autre histoire : j'ai choisi de ne pas faire de cours dédié à iOS 13 cette année car nous sommes dans une transition. Je ne préfère pas faire un cours complet sur SwiftUI en version 1, et je suis mal à l'aise à l'idée de proposer cours complet sur iOS 13 qui n'utiliserait que les Storyboards. C'est pour cette raison que j'ai laissé en ligne mon cours iOS 12 en baissant son tarif de moitié.
Si vous débutez cette année sur iOS, le plus simple est d'attendre la WWDC 2020 avec iOS 14 et SwiftUI 2. Si vous voulez vraiment commencer dès maintenant, alors ma recommandation est apprendre en utilisant les Storyboards et de découvrir SwiftUI à petite dose uniquement.
Dans tous les cas, 2020 devrait être un très bon cru pour de développement d'apps iOS!
Happy coding.