Chaque version de Xcode offre aux développeurs des outils améliorés pour les aider à créer leurs applications. La version de cette année, Xcode 6, présente de nouvelles méthodes pour que les développeurs conçoivent et construisent leurs logiciels. Dans ce tutoriel, je vais décrire les nouvelles fonctionnalités et les améliorations apportées à Xcode 6 et voir comment vous pouvez les utiliser..
Au cours de la WWDC de cette année, Apple a présenté Swift, un nouveau langage de programmation permettant de développer des logiciels pour ses appareils. Parallèlement à cela, Xcode 6 propose une nouvelle fonctionnalité appelée Playgrounds, qui fournit un espace de travail interactif où les développeurs peuvent écrire du code Swift et obtenir des commentaires en direct sans avoir à exécuter le code sur un appareil ou un simulateur. C'est un ajout intéressant à Xcode car vous pouvez maintenant expérimenter avec du code et obtenir des résultats rapides et en temps réel avant de l'intégrer à votre base de code principale..
Le WWDC de cette année avait pour thème principal la création d'applications adaptatives. Au lieu de créer des applications qui ciblent des tailles d'écran spécifiques, les développeurs sont invités à développer des applications qui s'adaptent au périphérique sur lequel elles s'exécutent, quelle que soit leur taille d'écran..
C’est un mouvement qui a démarré il ya quelques versions avec l’introduction de la disposition automatique dans iOS 6, permettant aux développeurs de créer des applications fonctionnant à la fois sur les écrans 3.5 "et 4.0". Elle a été encore améliorée pour permettre aux développeurs iOS de créer des applications qui fonctionnent sur tous les iPhones pris en charge, y compris les nouveaux iPhone 6 Plus 4.7 "iPhone 6 et 5.5" et les iPad utilisant le même code de base..
Interface Builder a subi des modifications majeures qui permettent de développer de telles applications adaptatives. De nouvelles fonctionnalités ont également été ajoutées pour améliorer le processus de conception de l'interface utilisateur. Nous allons regarder ces nouveaux changements à la prochaine.
Les classes de taille définissent la taille de la toile utilisée dans les mises en page. Ils vous permettent de spécifier comment l'interface utilisateur de l'application change lorsque la taille disponible de votre contrôleur de vue change. Cela permet d'avoir un storyboard unifié lors de la construction d'une application universelle. Auparavant, vous deviez concevoir deux story-boards distincts, un pour iPad et un pour iPhone..
Une classe de taille identifie une quantité relative d'espace d'affichage pour la hauteur (dimension verticale) et la largeur (dimension horizontale). Il y a actuellement deux classes de taille, compact et ordinaire. Par exemple, un iPhone en portrait aura une largeur compacte et une hauteur régulière. Un iPad aura une largeur et une hauteur régulières dans les orientations portrait et paysage.
Notez toutefois qu'une classe de taille ne correspond pas nécessairement à un périphérique dans une orientation. Par exemple, un iPad peut avoir une vue avec une disposition de style iPhone (un horizontal compact et une classe de taille verticale normale) lorsqu'il est présenté sur un espace plus petit sur le périphérique, et une disposition de style iPad (un horizontal normal et une classe de taille verticale normale) ) lorsque l’espace disponible est plus grand.
Vous changez les classes de taille en utilisant le Classes de taille près de la barre d’outils de mise en page au bas de la grille d’interface Builder. Interface Builder vous lance dans le tout largeur et tout hauteur taille classe où vous pouvez disposer des composants communs de l'interface utilisateur et des contraintes pour les différentes tailles d'écran et orientations. Vous mettez ensuite à jour les pièces devant changer lorsque la taille de l'écran disponible change en modifiant l'interface utilisateur dans les différentes classes de taille..
Xcode 6 introduit des types de séquence adaptatifs mieux adaptés aux nouvelles mises en page adaptatives, car ils présentent les vues différemment en fonction de l'environnement dans lequel elles sont exécutées. Par exemple, Montrer les détails avec une vue partagée sur un iPad remplacera le détail, mais sur un iPhone, ce détail sera mis de côté sur le maître. Certains des anciens segments, tels que push et modal, sont maintenant obsolètes.
Le canevas Interface Builder est plus interactif que jamais. Auparavant, vous deviez exécuter votre application pour voir les modifications liées aux objets personnalisés, aux polices personnalisées et à la localisation. Désormais, vous pouvez sélectionner des polices personnalisées dans le sélecteur de polices Interface Builder et les afficher dans le canevas Interface Builder..
Vous pouvez même créer des objets personnalisés et les rendre sur le canevas d’Interface Builder. Pour cela, vous créez un framework personnalisé, ajoutez votre classe personnalisée à cette cible et marquez cette classe avec @IBDesignable
drapeau (IB_DESIGNABLE
en Objective-C). Cela permet à Interface Builder de savoir qu’une classe peut afficher du contenu personnalisé sur son canevas..
Outre la possibilité d'afficher des objets personnalisés dans Interface Builder, vous pouvez également marquer des propriétés avec le @IB Insspectable
indiquez-les et faites-les apparaître dans le menu de l'inspecteur Interface Builder, dans lequel elles peuvent être modifiées comme toutes les autres propriétés de vos vues. Il n'est pas nécessaire qu'une classe soit marquée comme désignable pour avoir des propriétés inspectables..
Vous pouvez également spécifier un code de conception uniquement. Vous pouvez par exemple utiliser ceci pour pré-renseigner la vue avec des exemples de données afin d'obtenir une idée plus précise de l'interface. Vous faites cela en remplaçant le prepareForInterfaceBuilder
méthode. Autre que cela, vous pouvez utiliser #if TARGET_INTERFACE_BUILDER
l'activation ou la désactivation du code dans le rendu final d'Interface Builder.
L'éditeur de prévisualisation vous permet désormais d'afficher plusieurs aperçus côte à côte de différents appareils simulés. Vous pouvez non seulement voir l’apparence de votre application sur différents appareils, mais vous pouvez également configurer chacun de ces appareils en mode portrait ou paysage. Cela fournit un moyen rapide de prévisualiser l'interface utilisateur de votre application sur différents appareils et orientations sans l'exécuter au préalable..
Apple a ajouté de nouvelles technologies de jeu à Xcode 6 et iOS 8, à savoir SceneKit et Metal. SceneKit, qui était auparavant disponible sous OS X, est un moteur de rendu de scènes 3D. Metal est un framework qui peut être utilisé pour créer des tâches de calcul et de rendu graphique hautement optimisées grâce à son accès très peu coûteux au processeur graphique A7 et A8..
SpriteKit a également été amélioré avec l’occlusion physique par pixel, les champs de physique, la cinématique et les contraintes universelles, les shaders, les éclairages et les ombres..
Une autre nouvelle fonctionnalité importante de SpriteKit est la Éditeur de niveau SpriteKit cela vous permet d'assembler visuellement des scènes. Tout comme vous pouvez créer votre interface utilisateur dans Interface Builder sans écrire de code, vous pouvez faire de même lorsque vous êtes dans un jeu SpriteKit avec l'éditeur de niveau SpriteKit..
Les storyboards ont maintenant été introduits dans le développement OS X. Tout comme dans le développement iOS, ils vous permettent de configurer vos dispositions de vues et de relier des vues avec différentes animations de séquence. Au moment de la rédaction de ce document, certaines fonctionnalités, y compris les storyboards, sont toujours désactivées dans Xcode (6.0.1) pour le développement OS X en attendant la version OS X Yosemite..
Les identifiants de gestes sont maintenant disponibles dans AppKit. Celles-ci sont utilisées à peu près de la même manière que dans le développement iOS. Vous pouvez voir les gestes disponibles dans la Bibliothèque d'objets dans Interface Builder.
La localisation est faite différemment dans Xcode 6 par rapport à ce qu’elle était auparavant. Vous pouvez maintenant exporter l'intégralité de votre contenu localisable vers XLIFF, le standard de l'industrie reconnu par de nombreux services de traduction. Lorsque vous récupérez les traductions, vous les importez et Xcode fusionnera le nouveau contenu dans votre projet. Vous devez avoir un fichier XLIFF pour chaque langue prise en charge dans votre application..
Vous pouvez maintenant prévisualiser le contenu localisé sans changer les paramètres régionaux de votre appareil ou de votre simulateur dans Réglages. Pour ce faire, sélectionnez Produit> Schéma> Edit Scheme, puis sélectionnez Courir et cliquez sur le Les options languette. Vous pouvez sélectionner la langue de votre choix parmi les Langue d'application menu. Xcode est livré avec le Pseudolanguage Double Longueur que vous pouvez tester avec si vous n'avez pas ajouté d'autre langue. Lorsque vous exécutez l'application, vous devriez voir le contenu localisé.
Vous pouvez également afficher le contenu localisé sans exécuter votre application. Pour ce faire, vous utilisez le Éditeur de prévisualisation pour basculer entre les différentes langues prises en charge par votre application. La langue par défaut s'affiche dans le coin inférieur droit de l'éditeur et, lorsque vous cliquez dessus, une liste des langues disponibles s'affiche. Pour le tester sans ajouter de langue, vous pouvez utiliser le pseudolanguage de double longueur..
Xcode 6 présente désormais des simulateurs nommés qui correspondent à des périphériques spécifiques, tels que l'iPhone 5, au lieu des noms génériques précédents, tels que iPhone Retina 64 bits..
Parmi les appareils que vous pouvez choisir sont l'iPhone redimensionnable et l'iPad redimensionnable. Celles-ci vous permettent de spécifier les classes de largeur, de hauteur et de taille du simulateur. Avec cela, vous pouvez tester l'adaptivité de votre application sur tous les appareils existants d'Apple ainsi que sur les futurs appareils, sans avoir à télécharger un simulateur pour chaque appareil..
Avec le nouveau simulateur iOS, vous pouvez regrouper les données et les paramètres de configuration. Exécutez une configuration pour une version d'une application avec ses propres données et une autre configuration pour une version d'application différente. Cela signifie que vous pouvez simuler plusieurs utilisateurs sur votre machine. Chaque utilisateur aura ses propres données et configurations.
Le cadre HomeKit permet à votre application de communiquer avec et de contrôler les accessoires connectés au domicile de l'utilisateur. Dans les versions bêta de Xcode 6, le simulateur d’accessoires HomeKit faisait partie de Xcode, mais il fait maintenant partie du Outils d'E / S matérielles pour Xcode. Vous pouvez le télécharger sur le centre de développement iOS..
Xcode 6 facilite beaucoup le débogage de l'interface utilisateur de votre application avec la fonctionnalité de débogage de la visualisation en direct. Vous pouvez maintenant suspendre votre application en cours d'exécution et disséquer l'interface utilisateur en pause dans une vue 3D. Le débogueur de vues vous montre votre hiérarchie de vues et vos contraintes de mise en page automatique. Si vous sélectionnez une vue, vous pouvez inspecter ses propriétés dans l'inspecteur ou accéder au code correspondant dans l'éditeur d'assistant. Avec cela, vous pouvez examiner des problèmes tels que les conflits de mise en page automatique, voir pourquoi une vue est masquée ou tronquée, etc..
Pour démarrer le débogueur d’affichage en direct, lancez votre application et cliquez sur le bouton Hiérarchie des vues de débogage bouton dans la barre d'outils de débogage.
Votre application se met en pause et une visualisation 3D de son interface utilisateur vous est présentée. Vous pouvez faire glisser n'importe où sur la toile pour faire pivoter la vue.
Vous pouvez basculer entre différents états d'affichage à l'aide des boutons situés sous le canevas..
De gauche à droite:
Quick Look a été introduit dans Xcode 5 et permet de visualiser le contenu d'un objet lors du débogage. Quick Look prend en charge les objets courants tels que les images, les chemins de Bézier, les emplacements de carte, etc..
Dans Xcode 6, cette fonctionnalité a été améliorée pour prendre en charge deux nouveaux types d’objet, les vues (UIView
et NSView
) et des objets personnalisés. Pour activer la recherche rapide pour les objets personnalisés, vous implémentez la debugQuickLookObject
méthode dans la classe personnalisée.
Le navigateur de débogage enregistre et affiche les blocs récemment exécutés ainsi que les blocs en file d'attente. Vous pouvez l'utiliser pour voir où se trouvent vos blocs dans la file d'attente et pour examiner les détails de ce qui a été configuré pour s'exécuter. Vous pouvez activer le débogage de bloc en sélectionnant le Débogage> Processus de débogage> Toujours afficher les blocs en attente dans les files d'attente option de menu.
Les jauges de débogage fournissent des informations sur l'utilisation des ressources de votre application lors du débogage. Xcode 6 propose des jauges mises à jour, qui incluent le profilage graphique du nouveau framework Metal et la prise en charge d'iCloud pour les documents dans le Cloud et les fonctionnalités CloudKit..
Outre ces améliorations, Xcode 6 introduit deux nouvelles jauges de débogage, l'activité du réseau et du disque.
L'activité réseau indique la quantité de données que votre application envoie et reçoit, ainsi qu'une liste des connexions ouvertes. Vous pouvez afficher un historique de l'historique pour surveiller l'utilisation du réseau, ce qui vous permet de déterminer quand et pourquoi les pics d'utilisation du réseau ou les défaillances du réseau se sont produits..
L'activité du disque affiche des informations en temps réel sur les lectures et les écritures de votre application sur le disque. Il donne également des informations sur tous les fichiers ouverts. Il existe une chronologie de l'historique de cette activité d'E / S de disque à surveiller..
Les catalogues d'actifs prennent désormais en charge les classes de taille. Cela signifie que vous pouvez désormais facilement adapter votre interface utilisateur à une hauteur ou une largeur compacte et régulière en fournissant des images différentes pour chaque classe de taille..
Auparavant, les catalogues d'actifs ne prenaient en charge que les images PNG, mais dans Xcode 6, la prise en charge des images vectorielles JPEG et PDF a été ajoutée..
Vous pouvez utiliser un XIB ou un storyboard comme image de lancement de votre application. Le système d'exploitation génère les images de lancement nécessaires pour votre application. Avec cela, vous n'avez pas besoin de fournir des ressources individuelles pour les images de lancement et vous pouvez les concevoir dans Interface Builder..
Pour définir un XIB ou un storyboard comme image de lancement de votre application, sélectionnez le projet dans la liste. Navigateur de projet et choisissez une cible dans la liste des cibles. Sous le Général onglet, localisez la section Icônes d'application et images de lancement et sélectionnez le bon fichier dans le menu intitulé Lancer le fichier d'écran.
De nouvelles API ont été ajoutées à la structure XCTest pour permettre de tester le code asynchrone. Ceci est fait à travers des objets d'attente, XCTestExpectation
, qui décrivent les événements attendus. XCTestCase
a une nouvelle API qui attend que l’attente soit remplie et qui fixe un délai d’expiration. Un gestionnaire d'achèvement est appelé lorsque tous les événements sont remplis ou lorsque le délai d'attente atteint. Il peut être en attente de plusieurs événements asynchrones en même temps. Vous pouvez maintenant facilement tester les interactions système à exécution asynchrone, telles que les entrées / sorties de fichiers, les requêtes réseau, etc..
Le framework XCTest amélioré peut désormais quantifier les performances de chaque partie d'une application. Xcode exécute vos tests de performance et vous permet de définir une mesure de performance de base. Chaque test ultérieur compare les performances, affiche les modifications au fil du temps et met en surbrillance la zone à problème, vous avertissant des régressions soudaines qu'une validation de code pourrait introduire. Si la mesure de performance moyenne s'écarte considérablement de la ligne de base, le test échouera. C'est un excellent moyen de détecter les régressions de performances dans votre application..
Avec l’introduction des tests de performance, il est possible de profiler les tests dans Instruments. Vous pouvez sélectionner un test ou une suite de tests à profiler, puis effectuer des recherches et analyses approfondies dans Instruments pour déterminer la raison pour laquelle le test a échoué et rechercher la cause de la régression..
Instruments a une interface utilisateur mise à jour. Avec le nouveau sélecteur de modèle, vous pouvez sélectionner votre appareil et votre cible ainsi que le point de départ de votre session de profilage..
Il y a un nouveau Des compteurs modèle qui a été combiné avec Événements pour fournir une vue puissante sur les événements individuels de la CPU. Vous pouvez même spécifier des formules pour mesurer les agrégats d’événements, les ratios, etc..
Dans Xcode 6, Instruments est également livré avec le support de Swift et vous pouvez également l'utiliser pour profiler des extensions d'application. Il existe également un support pour les configurations de simulateur. Les configurations du simulateur sont traitées comme des périphériques par Instruments, ce qui facilite le lancement ou l’attachement aux processus du simulateur..
Apple continue d’améliorer ses outils de développement et cela se voit dans toutes les versions majeures de Xcode. Xcode 6 améliore ses prédécesseurs en fournissant aux développeurs des outils qui amélioreront leur flux de travail et amélioreront considérablement le processus de développement..