iOS 5 a été officiellement publié et les développeurs iOS sont impatients de commencer à utiliser les nombreuses nouvelles fonctionnalités disponibles dans le SDK iOS 5. Dans cet article, les gourous de l'industrie, Brandon Trebitowski et Collin Ruffenach, se penchent sur les possibilités, l'efficacité et les fonctionnalités les plus intéressantes du dernier SDK. Cet article est une lecture incontournable pour tous les développeurs de SDK iOS!
Avec la sortie de iOS 5 SDK, la plate-forme de développement iOS a atteint un nouveau niveau de maturité. Il est évident avec cette version du SDK qu'Apple est vraiment à l'écoute des besoins et des demandes de la communauté de développement. Apple a non seulement reconnu les objectifs communs et les difficultés exprimés par les développeurs iOS, mais ils ont également cherché à fournir au niveau du SDK des outils permettant de résoudre bon nombre des problèmes courants auxquels nous sommes confrontés et d'alléger totalement les pièges les plus frustrants.
Avec le dernier SDK, une chose est sûre: il n’a jamais été aussi excitant d’être un développeur iOS! Cet article vous fournira un aperçu de base des améliorations que nous trouvons les plus intéressantes..
Le stockage iCloud est une grande nouveauté dans iOS 5. Il permet aux développeurs de synchroniser automatiquement les données des applications sur toutes les plates-formes. Cela peut prendre deux formes: valeur clé et magasin de documents.
Bien que key-value fournisse une belle version cloud de NSUserDefaults, son espace est très limité. La quantité maximale de données pouvant être stockée est de 64 Ko. Cela étant, Apple suggère d'utiliser ce mécanisme de stockage uniquement pour de petites quantités de méta-informations, telles que le dernier numéro de page lu dans une application de lecture. Un autre problème avec le stockage en nuage clé-valeur est que le développeur n'a aucun contrôle sur la résolution des conflits. Chaque fois qu'un conflit se produit, la valeur-clé avec le dernier horodatage est toujours utilisée. Dans une application réelle, cela peut être ou ne pas être le bon choix.
À mon avis, le magasin de documents sera l’énorme fonctionnalité ici. Je crois comprendre que vous pourrez synchroniser n’importe quel document que vous avez choisi dans le nuage. Cela facilitera grandement la création d'éléments tels que des notes et des applications à faire avec des données persistantes et distribuées. Pour ce faire, par exemple, choisissez de synchroniser votre base de données Sqlite ou votre magasin Core Data. Contrairement à la méthode de synchronisation clé-valeur, les développeurs de magasins de documents pourront définir leur propre schéma de résolution de conflit..
Je me sens comme Apple a des choses presque à droite avec leur implémentation iCloud. Ce qui me manque, à mon avis, c’est la possibilité d’interaction des utilisateurs entre leurs données. Si elles devaient fournir de tels mécanismes, alors les jeux en ligne pourraient être complètement facilités par iCloud.
iOS 5 marque le début de ce qui semble être une relation assez sérieuse avec Twitter. Ce ne sont pas des "officiels Facebook" ou quoi que ce soit, mais ils vont se voir beaucoup au cours des prochaines versions. Apple a eu du mal à trouver le fil juste sur le marché social. Ping semble manquer un peu, et il semblerait qu'Apple soit prêt à jouer au ballon avec Twitter plutôt que d'entrer dans le jeu eux-mêmes. Ce sera une bonne nouvelle pour de nombreux développeurs. Après OAuthcalypse, l'intégration de Twitter pour une application donnée est devenue beaucoup plus complexe. Avec cette version du SDK, iOS gère essentiellement l'authentification Twitter pour votre compte, les utilisateurs pouvant activer ou désactiver l'authentification Twitter d'une application dans les préférences système iOS. Apple fournit désormais un contrôleur de vue commun pour la création de tweets.
Dans le carnet d'adresses, Apple a ajouté une nouvelle fonctionnalité permettant de gratter Twitter pour les images de profil de vos contacts. Cela fonctionne assez bien et parle des autres types d'intégration que nous pouvons voir des développeurs d'applications. Tout cela se produit également dans la foulée de l'intégration de téléchargement de photos sur Twitter, qui est également facilitée par le nouveau Twitter.framework. Globalement, cela facilite la lecture et l'écriture sur Twitter de manière exponentielle et semble être quelque chose que nous verrons encore plus dans les prochaines versions..
À l'aube de Xcode 4.0, Interface Builder (IB) est devenu une partie intégrante de l'expérience de développement car il s'agit désormais d'un composant de Xcode plutôt que d'une application distincte. Cette tendance se poursuit avec l'amélioration de l'interface Interface Builder et l'introduction du storyboarding..
Lorsqu’il s’agit de modifier l’interface IB actuelle, Xcode 4.2 tente d’établir un lien plus étroit entre le code représentant IBOutlets et IBActions et leur représentation visuelle dans Xcode. Cela signifie que vous pouvez réellement connecter les déclarations de méthode IBAction aux boutons qui les déclencheront et les déclarations IBOutlet au composant d'interface utilisateur réel qu'elles référencent..
En plus de cela, vous verrez également des représentations graphiques pour des choses comme UIGestureRecognizers, les vues et contrôleurs GLKit et le nouveau UIStepper..
Le storyboard est l’autre grande nouvelle histoire concernant l’IB. En termes simples, travailler avec des story-boards signifie ne jamais avoir à appeler pushViewController: animé
ou popViewController: animé
encore. Tout le flux des contrôleurs de vue en mouvement sur un contrôleur de navigation, ainsi que la présentation modale des vues, peuvent être effectués visuellement via Storyboarding..
Globalement, cela permet de visualiser chaque flux d'écran possible dans votre application, de réduire le code et, surtout, de permettre aux non-développeurs de contribuer leurs contributions sous une forme utilisable. Bien souvent, la conversion de concept / création en implémentation / code est perdue. Avec la nouvelle approche de scénario, les concepteurs peuvent créer des représentations de flux qui réduiront réellement la quantité de travail requise par les développeurs du projet..
Depuis la toute première version d'iOS, la gestion de la mémoire a été un gros problème pour les développeurs. Je dirais que la majorité des pannes d’application sont dues à une mauvaise gestion de la mémoire. ARC vise à résoudre ce problème en enlevant complètement la référence aux développeurs. Toutes les méthodes liées à la mémoire (Libération
, conserver
, autorelease
, etc.) sont maintenant obsolètes afin de tirer pleinement parti de l'ARC.
L'utilisation d'ARC présente d'énormes avantages. Tout d'abord, cela réduit considérablement la barrière qui empêche les nouveaux développeurs sur la plate-forme iOS, en particulier ceux issus de plates-formes comme Android qui utilisent Garbage Collection. Cela réduira également le nombre de lignes de code que les développeurs doivent écrire car vous n’avez plus besoin des appels en mémoire pour modifier le nombre de conservation. Mon seul souci avec ARC est que les développeurs pourraient à présent ne jamais apprendre l'importance d'une bonne gestion de la mémoire. Cela pourrait conduire à des pratiques de programmation paresseuses et éventuellement à une augmentation du nombre d'applications monopolisées en mémoire..
Core Image, un framework disponible depuis un certain temps déjà pour les développeurs OS X, est enfin disponible dans le SDK iOS 5. Il permet aux développeurs d’utiliser facilement une vaste bibliothèque de filtres de manipulation de photos et de vidéos, ainsi qu’un langage simple leur permettant de créer leurs propres filtres. Il est maintenant extrêmement facile d'exécuter des tâches telles que la mosaïque, le masquage, le fondu et la composition de plusieurs images..
J'étais vraiment intriguée de voir que le langage de filtrage ressemble à du C basique et qu'il est chargé à l'exécution. Compte tenu de cette portabilité, je ne serais pas surpris si nous voyons un site Web / magasin tiers qui vend ces filtres dans un avenir proche.
Pour obtenir un exemple d'alimentation du filtre Core Image, consultez ce filtre qui ajoute un effet cristallisé:
Avec la publication officielle d'iOS 5, Xcode bénéficiera également d'une mise à niveau vers la version 4.2. Xcode 4.2 présente de nombreuses améliorations par rapport à Xcode 4.1, principalement liées aux nouvelles fonctionnalités du SDK et de iOS 5. Une amélioration non basée sur le SDK est l’affinement des schémas et de l’intégration GIT. GIT est devenu la technologie de contrôle de source la plus répandue parmi les développeurs iPhone et il est génial de permettre à Xcode de tirer parti de tout ce que GIT a à offrir. Les modèles sont le nouvel endroit où vous conservez le type de configuration du projet. Cela couvre la version pour laquelle vous construisez, les frameworks liés, les scripts de construction, etc. Les schémas peuvent être partagés et facilitent généralement des tâches telles que les tests et le partage de projets entre équipes..
La nouvelle la plus importante ici est l'intégration profonde de GIT et de SVN. Apple a exploité toutes les capacités des logiciels de contrôle de code source et construit des visualisations de leur fonctionnement dans Xcode. Les fichiers sont tous marqués en permanence avec des mises à jour quant à leur statut (Ajouté / Modifié). Chaque fichier peut être affiché en vue historique. En affichage historique, vous obtiendrez 2 panneaux avec une timeline au centre où vous pourrez naviguer en arrière dans le temps pour le fichier. Il existe des vues complètes de reproches, des interfaces de saisie validées et push, et même des affichages de résolution de branches et de conflits. L'intégration à GITHub est également simple. Dans l’ensemble, c’est une grande amélioration. Assurez-vous de consulter ce document d’Apple, qui présente toutes les fonctionnalités en détail..
NewsStand est un autre exemple de la maturation de la plate-forme iOS. Au cours des dernières versions, Apple a commencé à créer des offres pour résoudre les problèmes courants des développeurs dans l'environnement "bac à sable" qu'ils ont créé. Game Center et iCloud en sont des exemples génériques, mais NewsStand représente un investissement d'Apple pour répondre aux besoins particuliers d'un type d'application spécifique..
Le framework NewsStand permet aux développeurs de faire deux choses. Premièrement, les développeurs peuvent envoyer une notification push à leurs applications qui les lancent en arrière-plan et téléchargent le dernier numéro. Deuxièmement, les développeurs peuvent définir des icônes spéciales pour représenter leur application dans la vue NewsStand. Les applications NewsStand résideront toutes dans un dossier spécial, ce qui créera une représentation d'objet natif commun pour la "bibliothèque" de problèmes sur le périphérique..
Ce qui reste incertain, c'est quel type de certification, le cas échéant, sera requis pour être une application NewsStand. Est-ce que Engadget pourra créer une application de type NewStand? Je suis certain que de nombreux blogs souhaiteraient pouvoir distribuer du contenu et le télécharger en tâche de fond pour leurs utilisateurs iOS 5+. Il semble y avoir une restriction selon laquelle une seule notification push de téléchargement en arrière-plan est autorisée toutes les 24 heures. Il sera intéressant de voir si l'un des médias Internet uniquement tire parti de ce nouveau cadre..
Si vous avez déjà examiné un document de conception, comparé à ce qui est fourni avec les paramètres par défaut d’UIKit d’Apple, et que vous deviez ensuite déployer votre propre implémentation pour correspondre aux intentions du concepteur, vous serez enthousiasmé par l’introduction de contrôles UIKit personnalisés! Toutes les commandes principales permettent désormais de personnaliser facilement les propriétés de l’arrière-plan, de la couleur de teinte et de la position du titre. Je suis particulièrement enthousiasmé par la possibilité de définir la propriété d’image d’arrière-plan. J'ai passé des heures à recréer un UISwitch simplement pour lui donner un aspect un peu différent.
C'est un grand pas en avant en termes de personnalisation de l'application. Je suis sûr que nous allons commencer à voir une intégration beaucoup plus intelligente des composants de l'interface utilisateur Apple. Dans le même ordre d'idées, nous verrons également certaines personnes donner totalement hideux aux beaux composants d'Apple..
Comme vous pouvez le constater, iOS 5 est une version majeure. Il apporte de profondes améliorations au SDK et à l'IDE avec lequel nous développons tous. Bien que nous ayons fait de notre mieux pour atteindre les points importants de cet article, il existe des tonnes d'autres fonctionnalités dont nous n'avons pas été en mesure de parler. Voici une liste de tir rapide de quelques changements supplémentaires notables:
Alors qu'est-ce que tu attends? Allez chercher iOS 5 et profitez de toutes ces nouvelles fonctionnalités!
Dans les semaines à venir, Mobiletuts + fournira des didacticiels détaillés sur de nombreuses nouvelles fonctionnalités du SDK iOS 5, notamment Storyboarding, le cadre Twitter, le cadre Image Core, le support NewsStand, etc.!
Dites-nous ce que vous devez écrire en votant ci-dessous pour les sujets qui vous intéressent le plus:
Brandon Trebitowski est un développeur et auteur de logiciels basé à Albuquerque, au Nouveau-Mexique. Brandon est titulaire d'une licence en informatique de l'Université du Nouveau-Mexique et développe des logiciels depuis 10 ans. En août 2008, il a lancé iCodeBlog.com pour apprendre aux développeurs en herbe à écrire des logiciels pour iPhone. Après l’acquisition du blog par ELC Technologies en décembre 2008, il a commencé à travailler à plein temps pour eux, développant des logiciels mobiles..
Depuis, Brandon a co-écrit un livre de développement iOS appelé iOS 4 In Action et est devenu le principal développeur d'applications mobiles chez ELC Technologies. Il a une forte passion pour la programmation et aime la partager avec les autres..
Vous pouvez suivre les messages de Brandon sur son compte twitter @brandontreb.
Vous souhaitez obtenir le guide le plus récent sur le SDK iOS? Saisissez iOS 4 en action, auquel Brandon a contribué.
Collin Ruffenach est un développeur iOS avec ELC Technologies basé à Portland, OR. Collin a obtenu un B.S. en génie des systèmes informatiques et un M.S. en informatique en 2010 de l’Université d’Arizona. Ses recherches ont porté sur le développement iOS dans des scénarios basés sur la domotique..
Depuis 2008, Collin collabore à iCodeBlog, où il publie des articles et des screencasts sur différents sujets relatifs à la programmation iOS depuis la publication du SDK iOS. Collin a récemment contribué à un nouveau livre intitulé Fondamentaux Objective-C avec Manning Publishing.
Vous pouvez suivre les messages de Collin sur son twitter: @cruffenach.
Voulez-vous affiner ces compétences Objective-C? Découvrez Objective-C Fundamentals, auquel Collin a contribué.
Merci d'avoir lu!