Apple a fourni avec XCode, un moyen de pouvoir de découvrir, d’apprendre et de tester son nouveau language Swift.
En effet, vous pouvez lancer une fenêtre particulière sur XCode en faisant : File / New / Playground.
Par défaut, cela ressemble à ça :
C’est en 2016, qu’Apple lance cet outil qui permet littéralement de coder en Swift et de bénéficier d’une sorte d’interpréteur pour le langue sans passer par une phase de compilation des sources.
Il est possible de pouvoir faire dans unPlayground, tout ce qu’il est possible de faire dans XCode mais il y a des choses pour lesquelles un Playground n’est pas des plus utiles :
· Tests de performance
· L’utilisation de devices physiques n’est pas possible
· Pas de possibilité de mettre des breakpoints et de pouvoir suivre l’exécution du code
· Pas d’asynchrone
· Pas de bundle
· …
Mais c’est un formidable outil pour pouvoir tester toute sorte de chose lors de tests algorithmiques :
Mais également des éléments de design plus élaboré tels que :
· Des « Views »
· Sprite Kit
· Metal
· Des transformations avec CoreImage
· …
Ouvrir un nouveau Playground et voyons les templates de base :
Le template de base pour une vue simple nous donne ceci :
Il est possible de visualiser le rendu d’une vue en appuyant sur « les deux cercles imbriqués » et d’avoir un rendu de simulateur aux proportions de l’iPhone 8 dans XCode 9.
On peut voir qu’il est nécessaire d’importer le module « PlaygroundSupport » pour pouvoir lancer une fenêtre en « live ».
Pour pouvoir afficher un élément en temps réel, celui-ci doit respecter le protocol « PlaygroundLiveProtocol », heureusement pour nous UIView et UIViewController sont conformes à ce protocol sur iOS ce qui nous permet de les afficher.
Mais il est tout à fait possible de créer ces propres objets et de les afficher du moment qu’ils implémentent les méthodes dece protocol.
Voyons comment ajouter un élément à notre UIViewController
let frame = CGRect(x: 150, y: 200, width: 200, height: 200)
let subView = UIView(frame: frame)
subView.backgroundColor = .red
view.addSubview(subView)
Et voici le résultat :
Il est possible également d’importer des ressources pour pouvoir gérer des Fonts, des images et d’autres au sein de la hiérarchie d’un Playground
Et pour finir, voici un exemple d’animation réalisée avec un Playground :
En conclusion, cet outil qu’Apple a introduit au sein de Xcode permet un gain de temps considérable pour tester certaines fonctionnalités ou bien pour ajuster un algorithme sans devoir le tester au sein d’un projet complexe.