Mise à jour de votre application pour iOS 11

Ce que vous allez créer

En plus du développement des fonctionnalités et des corrections de bugs, les développeurs iOS doivent garder un œil sur ce qui est annoncé chaque année par WWDC. Parmi les nouveaux kits de développement remarquables annoncés, les développeurs iOS devront apporter certaines modifications pour que leurs applications restent compatibles avec la plate-forme..

Swift étant passé à la version 4 et aux améliorations et modifications apportées au SDK iOS lui-même, les développeurs doivent analyser ces modifications et élaborer une stratégie pour mettre à jour leurs bases de code. Le tout sans casser aucune de leurs caractéristiques et fonctionnalités existantes! Tout dépend de la hiérarchisation de votre projet: quel est le minimum que vous devez faire pour que votre application soit conforme à iOS 11? Quel est le cas le plus simple que vous puissiez présenter à votre intervenant ou à votre chef de projet?

Les fonctions vitales sont primordiales, puis viennent les améliorations simples mais non obligatoires apportées par iOS 11, allant de l’optimisation de votre application à l’esthétique visuelle qui enrichira davantage l’interaction et les fonctionnalités de votre application. Dans cet esprit, ce tutoriel vous guidera à travers les étapes à suivre pour mettre à niveau votre application, en adoptant une approche pragmatique des améliorations requises et facultatives.. 

Objectifs de ce tutoriel

Cet article vous fournit une vue d'ensemble des modifications nécessaires à la mise à jour de votre application pour iOS 11, des modifications architecturales aux modifications visuelles, ainsi que des modifications relatives à la publication dans l'App Store. De plus, ce didacticiel organisera les sections à partir des modifications requises et de la portée et des efforts nécessaires, en passant par les fonctionnalités utiles mais non nécessaires qui amélioreront votre application grâce à iOS 11.. 

Dans ce tutoriel, nous allons couvrir les points suivants:

  • préparer votre application (et vous-même) pour iOS 11
  • changements architecturaux
  • Modification de la publication dans l'App Store
  • Changements d'interface utilisateur

Connaissance supposée

Ce tutoriel suppose une connaissance intermédiaire de Swift ou d'Objective-C et de Xcode, ainsi qu'une connaissance des SDK iOS principaux (par exemple, UIKit et Core Foundation)..

Changements architecturaux

Comme à chaque itération d'iOS, les modifications les plus importantes sont généralement les modifications architecturales. Avec iOS 11, cela implique une migration vers Swift 4; la première tâche que nous allons examiner est donc la mise à jour des paramètres de construction pour Xcode 9.. 

Migration incrémentielle vers Swift 4 

Important | Champs obligatoires

Pour ceux qui ont dû migrer de Swift 2 à 3 l’année dernière, ce processus était extrêmement pénible et de nombreux changements ont cassé la base de code existante. Heureusement, ce n'est pas le cas de passer de Swift 3.2 à 4, car la plupart des chances sont considérées comme étant additives, plutôt que dépréciées. En conséquence, l'outil de migration Xcode 9 effectue un travail admirable en effectuant la transition de votre code vers le dernier fichier Swift.

De plus, contrairement aux versions précédentes, vous ne serez pas obligé d'effectuer la mise à niveau à 4 en une fois. Autrement dit, les projets Xcode prennent en charge simultanément Swift 4 et Swift 3.2, ce qui signifie que vous pouvez compiler une cible dans votre projet sous Swift 3.2 et une autre dans Swift 4. L'outil de migration vous permet de savoir quelles classes et fonctions il a migré avec succès. et lesquels nécessiteront l'intervention manuelle de votre part, sous forme d'erreurs ou d'avertissements. 

Les erreurs signifient que vous devrez corriger quelque chose qui ne soit pas rétrocompatible, alors que de nombreux avertissements indiqueront qu’il existe une nouvelle façon de faire quelque chose dans Swift 4, telle que de nouvelles modifications d’API. Corrigez les erreurs et donnez la priorité aux avertissements susmentionnés en tant que tâche distincte.. 

Pour accéder à l'outil de migration, accédez à Édition> Convertir> Vers la syntaxe Swift actuelle dans Xcode et suivez les instructions, en sélectionnant la ou les cibles que vous souhaitez migrer à ce stade.. 

L’outil de migration vous indiquera le travail minimum que vous devrez effectuer pour recompiler votre application. Il n’est donc pas surprenant que la meilleure pratique recommandée consiste à migrer votre application de 3 à 4 de manière incrémentielle, en particulier. dans les grands projets, tester et convertir cible par cible. Vous n'aurez pas à tout migrer en une fois et vous pourrez planifier votre chemin de migration par étapes, où et quand vous en aurez besoin.. 

Nous examinerons ensuite brièvement les modifications apportées à Swift 4 qui ne sont pas obligatoires, mais qu'il est bon de savoir.. 

Deprecation architecturale 32 bits

Important | Champs obligatoires

Un autre changement majeur dans iOS 11 est que toutes les applications de l'App Store doivent désormais être au format 64 bits, car les applications 32 bits ne sont plus prises en charge et ne fonctionnent même pas sur les appareils exécutant iOS 11. Cela ne devrait pas être une surprise, car Apple avertit les développeurs depuis un certain temps, mais au cas où votre application n’aurait toujours pas fait sa transition, vous pouvez suivre les instructions d’Apple sur la conversion de votre application en binaire 64 bits..

Quoi de neuf dans Swift 4

Pas important | Optionnel

Au-delà du travail obligatoire nécessaire pour que votre cible soit conforme à Swift 4, vous avez la possibilité de refactoriser votre code existant pour tirer parti des nouvelles modifications de l'API Swift, qui sont décomposées en fonction des améliorations suivantes apportées au niveau de l'API:

Les cordes

String a beaucoup retenu l'attention dans Swift 4, le changement le plus notable étant un retour à Swift 1.0 où les chaînes sont à nouveau définies en tant que collections. Vous pouvez donc effectuer une itération sur un objet String caractère par caractère (SE-0163) à l'aide d'un script. pour la boucle. Les autres modifications notables apportées à la classe Strings incluent: 

  • SE-0168 Littéraux de plusieurs lignes
  • SE-0178 Ajouter unicodeScalars propriété à Personnage
  • SE-0180 Révision de l'index des cordes
  • SE-0182 String Newline Escaping
  • SE-0183 Abondances de performance de sous-chaîne

Des collections

Les dictionnaires et les ensembles, faisant partie de collections, ont également été réaménagés dans Swift 4, en commençant par le filtrage des dictionnaires, qui renvoyaient jusqu'à présent un tableau de tuples composé de paires clé / valeur. Pour accéder à un élément spécifique, vous utiliseriez l'indice suivant, comme dans un tableau:

listOfCars [4] .value

Dans Swift 4, vous récupérez un dictionnaire contenant une syntaxe plus cohérente, puis vous accédez au dictionnaire renvoyé comme vous le feriez avec un dictionnaire normal. La même chose se produit maintenant pour le carte() fonction, où vous récupérez également un dictionnaire. Nouveauté des indices d’accès à un dictionnaire, vous pouvez fournir une valeur par défaut au cas où la clé n’existerait pas, ce qui rend votre code plus sûr..

let tomTheCat = animal [“name”, défaut: “id”]

Les autres modifications apportées aux collections incluent:

  • SE-0148 Indices génériques
  • SE-0154 Fournir des collections personnalisées pour les clés et les valeurs de dictionnaire
  • SE-0165 Améliorations apportées au dictionnaire et aux ensembles
  • SE-0172 Gammes unilatérales
  • SE-0173 Ajouter MutableCollection.swapAt (_: _ :)

Autres changements notables

Enfin, il existe quelques modifications diverses à noter dans le cadre de cette version concernant la langue: 

  • SE-0104 Entiers orientés protocole
  • SE-0142 Autorise les clauses where à contraindre les types associés
  • SE-0156 existentials de classe et de sous-type
  • SE-0160 Limitation de l'inférence @objc
  • SE-0164 Supprimer le support final dans les extensions de protocole
  • SE-0169 Améliorer l'interaction entre les déclarations privées et les extensions

Vous trouverez la liste exhaustive des modifications et des propositions originales à Swift.org.

Modification de la publication dans l'App Store

Les utilisateurs de l'App Store iOS 11 auraient déjà remarqué qu'il arbore un tout nouveau design avec de toutes nouvelles sections, offrant aux développeurs de nouvelles façons de promouvoir leurs applications et de communiquer avec leurs utilisateurs..

Nous allons commencer par jeter un coup d'œil à la nouvelle icône marketing que vous devrez maintenant télécharger avec les mises à jour de votre application..

Icône marketing

Obligatoire | Priorité plus élevée

À partir de iOS 11, pour toute nouvelle soumission, que votre application soit nouvelle ou existante, vous devrez inclure un icon-1024.png-une icône marketing de taille 1024x1024. De manière pratique, vous n’avez pas besoin de soumettre l’icône via iTunes Connect, mais via Xcode, enaller à Images.xcassets et en ajoutant une image de taille appropriée, de la même manière que vous gérez vos autres icônes:

L'icône marketing est utilisée dans le cadre du nouveau processus de conception de l'App Store pour afficher une icône d'image plus grande représentant votre application dans la section Aujourd'hui ou dans d'autres sections dans lesquelles le graphique de l'application est agrandi.. 

Promouvoir les achats intégrés

En option | Priorité inférieure

Apple a rendu le processus d’achats intégrés plus visible et plus transparent, permettant aux utilisateurs de voir toutes les options d’achat intégrées directement au même niveau que celui de l’application, et même d’initier un achat intégré pour le application lors du téléchargement de l'application réelle. Pensez à une application d'abonnement où les utilisateurs qui téléchargent votre application peuvent déjà vouloir acheter leur abonnement. iOS 11 rend cela plus rapide et plus pratique. 

À partir d'iOS 11, les développeurs sont en mesure de promouvoir jusqu'à 20 achats intégrés, tels que des abonnements sur la page produit de leur application. Ces options d'achat apparaîtront également dans les résultats de recherche.. 

La promotion des achats intégrés peut également encourager les téléchargements de votre application. Lorsqu'un utilisateur n'a pas installé votre application mais souhaite acheter un achat intégré promu, il reçoit d'abord une invite à la télécharger. Une fois l'application téléchargée, la transaction se poursuivra dans l'application. (Pomme)

Pour permettre une meilleure visibilité des promotions d’achat dans l’application, dans iTunes Connect, vous devez inclure les métadonnées suivantes: 

  • Image: Il s'agit de l'image promotionnelle unique représentant votre achat intégré, apparaissant sur la page de votre produit App Store, des onglets Aujourd'hui, Jeux et Applications, ainsi que dans d'autres zones importantes. Cela ne devrait pas consister en une capture d'écran ou représenter l'icône de votre application, mais plutôt ce que l'achat in-app fait. L'image doit également être au format PNG et de haute qualité avec des dimensions de 1024 x 1024.
  • Prénom: Nom d'affichage de l'achat intégré, composé d'un maximum de 30 caractères. Cela devrait être spécifique, convenant à la fonction de cet achat in-app spécifique. S'il s'agit d'un abonnement, dites-le et assurez-vous que la durée de l'abonnement est incluse dans le titre, par exemple «Abonnement d'un mois pour tout accès»..
  • La description: Une longueur de 45 caractères. Les descriptions fournissent un contexte permettant aux utilisateurs de comprendre et d'apprécier les avantages de votre offre spécifique dans l'application.. 

Pour plus d'informations sur la promotion de votre achat intégré, reportez-vous à la section Directives officielles d'Apple ainsi que de Apple Directives de produit.

Communiquer avec vos clients

En option | Priorité inférieure

Les développeurs Android ont depuis longtemps beaucoup de temps pour pouvoir répondre directement aux commentaires des utilisateurs. À partir d'iOS 11, les développeurs peuvent désormais également répondre directement aux avis et commentaires de leurs utilisateurs. Bien que cela ne nécessite aucune modification technique et que la participation soit facultative, les développeurs via iTunes Connect (App > Activité > Évaluations) peut répondre aux éloges et aux critiques.

Les réponses individualisées des développeurs peuvent être mises à profit pour créer des relations plus fortes et plus intimes, favorisant un engagement plus profond, en montrant que leurs commentaires sont examinés et pris en compte, et que les problèmes qu'ils ont soulevés sont activement écoutés. Pour répondre aux commentaires, accédez simplement à iTunes Connect où vous pouvez afficher les commentaires et répondre individuellement.. 

Outre la nouvelle fonctionnalité de commentaires des développeurs, Apple a également fourni un nouveau SDK formalisé pour inviter les utilisateurs à évaluer et à évaluer les applications. Le nouveau SKStoreReviewController devrait être utilisé à la place de toute invite tierce ou manuelle des utilisateurs pour les avis, car Apple souhaite que le système d'exploitation puisse contrôler la fréquence des invites ainsi que leur apparence. Apple limitera donc les invites à trois fois au maximum sur une période de 365 jours.. 

Implémenter SKStoreReviewController, importer simplement StoreKit et appeler requestReview () comme indiqué ci-dessous:

… Importer StoreKit… SKStoreReviewController.requestReview ()… 

Bien qu'Apple n'ait pas totalement interdit les autres méthodes permettant d'inciter les utilisateurs à faire des commentaires, attendez-vous à ce que cela change dans un proche avenir. Il est donc préférable que vous envisagiez de mettre en œuvre le moteur de révision rapide d'Apple au cours de la prochaine année..

Pour plus d'informations, reportez-vous aux consignes de classement, d'avis et de réponses d'Apple.. 

Déploiement incrémentiel

En option | Priorité inférieure

Une autre fonctionnalité très utile qu'iOS 11 apporte aux développeurs est la possibilité de diffuser progressivement leurs applications aux utilisateurs. Apple appelle cela la libération progressive, et vise à réduire le risque de surcharge de l'environnement de production en une fois, en déployant les mises à jour de publication sur une période de sept jours.. 

Sous Version Release dans iTunes Connect, une nouvelle section intitulée Publication progressive pour les mises à jour automatiques, qui vous donne la possibilité de libérer immédiatement ou sur une période de sept jours. Les développeurs sont également en mesure d’interrompre le déploiement progressif pendant 30 jours au maximum, ce qui se produirait normalement si un problème majeur était découvert et signalé..

Le déploiement progressif n'empêche pas les utilisateurs d'obtenir manuellement la mise à jour à partir de l'App Store, mais s'adresse plutôt aux utilisateurs qui utilisent le paramètre de téléchargement automatique iOS dans l'App Store.. 

Ensuite, examinons les changements visuels introduits dans iOS 11, en abordant les sujets les plus importants et les moins importants.. 

Modifications de l'interface utilisateur

Après avoir examiné les modifications de l'architecture et de la publication de l'App Store pour iOS 11, nous sommes maintenant prêts à analyser les modifications visuelles et à vous aider à hiérarchiser les modifications de l'interface utilisateur qui doivent être traitées en premier.. 

Il est important de noter que même si nous pouvons créer nos applications iOS sans mettre en œuvre les modifications de cette section, en ne tenant compte que des modifications architecturales et relatives à l'App Store, vous voudrez peut-être tout d'abord vous assurer que votre application prend en charge visuellement le nouvel iPhone X. Cela implique des modifications de la barres de navigation pour aborder la nouvelle "encoche" physique en haut. 

Dans cet esprit, nous examinerons la mise à jour de votre interface utilisateur pour l'iPhone X, suivie de quelques autres changements rapides qui garantiront que votre application paraisse moderne et à jour..

Mise à jour de votre interface utilisateur pour iPhone X

Obligatoire | Priorité plus élevée

L’une des tâches les plus importantes lors de la mise à jour de votre application iOS est de s’assurer que votre application a une belle apparence et qu’elle fonctionne correctement sur les appareils les plus récents, tout en préservant l’appui précédent. C'est pourquoi Apple a travaillé d'arrache-pied pour fournir aux développeurs des outils tels que Auto Layout pour la conception de présentations agnostiques à l'écran, que ce soit l'iPhone 4, 5C ou les 6 et 6 Plus. Depuis cette année, nous avons maintenant un téléphone qui a non seulement de nouvelles dimensions, mais aussi une encoche physique au sommet.. 

Notez que nous n’avons plus de fenêtre rectangle, et avec la nouvelle encoche située en haut pour les capteurs physiques, comment Apple vous recommande-t-il de gérer cela? D'une part, Apple ne veut pas que vous placiez des barres noires en haut pour cacher l'encoche! Au lieu de cela, ils plaident pour que les développeurs l'acceptent.

Ne masquez pas et n'attirez pas l'attention sur les principales fonctions d'affichage. N'essayez pas de masquer les coins arrondis, le boîtier du capteur ou l'indicateur de l'appareil pour accéder à l'écran d'accueil en plaçant des barres noires en haut et en bas de l'écran. N'utilisez pas d'ornements visuels tels que crochets, cadres, formes ou textes pédagogiques pour attirer l'attention sur ces zones. (Directives d'interface humaine iOS)

Vous devez concevoir pour le plein écran, en exploitant le design sans lunette du nouveau périphérique sans masquer certaines parties de votre interface utilisateur avec les coins arrondis du boîtier ou le boîtier du capteur (encoche).. 

La bonne nouvelle est que les éléments d’UIKit d’UIKit fournis par Apple, tels que le Barre de navigation déjà conforme et s'adapter aux nouvelles exigences de conception hors de la boîte. Cependant, pour tout élément d’interface utilisateur personnalisé, vous devrez effectuer vous-même le travail de conformité.. 

En regardant les images de l'iPhone 4.7 par rapport au nouvel iPhone X ci-dessus, vous remarquerez comment la barre d'état est maintenant mise en œuvre différemment, à commencer par sa hauteur, qui est passée du niveau historique de 20 à 44 points sur l'iPhone X. 

Apple suggère aux développeurs d'applications qui cachent leurs barres d'état de reconsidérer cette décision à la lumière de l'iPhone X et de le masquer uniquement en mode paysage, et non en mode portrait. 

Enfin, utilisez les guides de mise en forme des zones sûres en utilisant la mise en page automatique comme mesure principale pour vous assurer que votre application respecte les marges appropriées, en évitant toute obstruction visuelle, telle que la barre de statut ou la barre de navigation..

Deux excellentes ressources pour vous aider à démarrer la conception pour iPhone X sont les vidéos WWDC suivantes:

  • Designing for iPhone X - Automne 2017 - Vidéos - Développeur Apple
  • Création d'applications pour iPhone X - Automne 2017 - Vidéos - Développeur Apple

Implémentation Drag & Drop

En option | Priorité inférieure

Un des nouveaux SDK les plus parlés à la WWDC de cette année est le glisser-déposer. C’est une chose à laquelle les utilisateurs d’ordinateurs de bureau sont habitués depuis très longtemps, mais son absence sur la plate-forme iOS signifiait que l’iPad et l’iPhone n’avaient jamais vraiment adopté le multitâche. Dans iOS 11, cela a changé, car le nouvel iOS prendra en charge les éléments d'interface utilisateur déplacés non seulement dans le même écran, mais également d'une application à l'autre.. 

En exploitant le moteur multi-touch d'iOS, les utilisateurs peuvent déplacer sans effort le contenu de manière naturelle entre les applications de l'iPad (ou simplement au sein du même écran sur l'iPhone) en maintenant le doigt appuyé sur une image, un fichier, un texte ou un élément spécifique de l'interface utilisateur. il. Cette fonctionnalité est déjà intégrée dans iOS dans l'ensemble du système, permettant aux utilisateurs, par exemple, de faire glisser du texte de Safari vers l'application Rappels du dock pour créer un nouvel élément de rappel.. 

Cela n'a pas été signalé comme étant obligatoire pour la mise en œuvre, mais comme il va rapidement devenir un comportement attendu en raison de sa prévalence à l'échelle du système, il est conseillé d'essayer de définir cette priorité le plus tôt possible, afin de pouvoir créer une UX de votre application. se conformer au nouveau comportement UX du système standard. 

UIKit est livré avec un certain niveau de support drag & drop intégré, pour des composants tels que UITables et UICollectionViews, mais vous devrez relier et adapter les éléments avec du code afin que d'autres composants puissent recevoir le composant déplacé. Cela peut être un peu compliqué, et cela sort du cadre de cet article, mais je traiterai plus en détail du support du glisser-déposer dans un article de suivi la semaine prochaine.. 

Pour le moment, brièvement, vous ajouteriez et soutiendriez le glisser-déposer dans votre ViewControllerde viewDidLoad () méthode, en mettant en œuvre les deux délégués indiqués ci-dessous:

classe ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITableViewDropDelegate, UITableViewDragDelegate ... func viewDidLoad (en anglais seulement) firstTableView.dropDelegate = self secondTableView.dragDelegate = self firstTableView.dragInteractionEnabled = true secondTableView.dragInteractionEnabled = true ... ... func tableView (_ tableView: UITableView, itemsForBeginning session: UIDag: 1) Le glissement est en cours d'initiation func tableView (_ tableView: UITableView, coordinateur performDropWith: UITableViewDropCoordinator) // (2) Le lancement est en cours

Restez à l'écoute de notre prochain article sur la façon d'ajouter la prise en charge du glisser-déposer à votre application iOS 11. 

Autres modifications UIKit & Auto Layout

En option | Priorité inférieure

Enfin, jetons un coup d’œil sur les dernières modifications d’UIKit dans iOS 11, en commençant par la Barre de navigation, qui présente des améliorations notables, notamment l’intégration de SearchViewController et grands titres. Nous examinons ensuite les améliorations apportées à UITableView, des actions de balayage nouvelles et améliorées aux cellules de la vue tableau se redimensionnant automatiquement. 

La navigation 

Nous avons déjà évoqué les barres de navigation lorsque nous parlons de l'iPhone X et de son alignement sur les nouvelles dimensions de la barre d'état. De plus, le nouveau style de design contemporain prôné dans iOS inclut de nouveaux titres plus grands dans les barres de navigation, découverts pour la première fois dans l'Apple Music App dans iOS 10 et depuis lors, un modèle de conception établi pour toutes les autres applications système dans iOS.. 

Le titre plus large met davantage l’accent sur le contexte de l’écran dans une barre de navigation et permet d’orienter les utilisateurs sur l’onglet actif tout en parcourant les différents onglets. La taille du texte du titre n'est pas statique mais plutôt réduite à mesure que l'utilisateur fait défiler l'écran, revenant au style antérieur à iOS 11. Inversement, lorsque vous déroulez dans une vue de défilement, le texte du titre augmente légèrement. 

Utilisez un gros titre lorsque vous devez insister davantage sur le contexte. Dans certaines applications, le gros texte en gras d'un titre volumineux peut aider à orienter les utilisateurs lors de leurs recherches et de leurs recherches. Dans une mise en page à onglets, par exemple, les gros titres peuvent aider à clarifier l'onglet actif et à informer l'utilisateur lorsqu'il a fait défiler l'écran vers le haut. Phone utilise cette approche, tandis que Music utilise de gros titres pour différencier les zones de contenu telles que les albums, les artistes, les listes de lecture et la radio. Un grand titre passe à un titre standard lorsque l'utilisateur commence à faire défiler le contenu. Les gros titres n'ont pas de sens dans toutes les applications et ne doivent jamais rivaliser avec le contenu. Bien que l'application Horloge dispose d'une disposition à onglets, les gros titres ne sont pas nécessaires, car chaque onglet a une disposition distincte et reconnaissable. (Directives d'interface humaine iOS))

En tant que développeur, il vous appartient de décider si et quand implémenter le style de texte large, conformément aux directives d'interface utilisateur d'Apple, et Apple vous recommande d'utiliser spécifiquement les titres de texte de grande taille uniquement pour les écrans de navigation de niveau supérieur plutôt qu'à tous les niveaux. Pour activer le texte large, ajoutez simplement la propriété suivante à votre UINavigationController:

navigationController? .navigationBar.prefersLargeTitles = true

Hiérarchiquement, les contrôleurs de vue principale et de détail situés dans la barre de navigation verront le mode texte large activé par défaut en raison de l'héritage parent. Comme il vient d'être mentionné, il est conseillé de faire en sorte que seuls les écrans de navigation de niveau supérieur mettent en œuvre le mode texte étendu. Pour supprimer l'héritage de texte volumineux dans votre écran de détail, accédez à votre contrôleur de vue et ajoutez ce qui suit à son initialiseur (il doit être défini au moment de l'initialisation):

required init? (codeur aDecoder: NSCoder) super.init (codeur: aDecoder) navigationItem.largeTitleDisplayMode = .never

le largeTitreDisplayMode ci-dessus est mis à .jamais. Sans cette ligne, la valeur par défaut est .automatique, qui est où le contrôleur de vue de détail hérite des propriétés de son contrôleur de vue parent.

Contrôleurs de vue de recherche

La recherche peut désormais être intégrée directement dans les barres de navigation sans avoir à associer le UISearchViewController exemple avec le contrôleur de vue de sujet (et sa vue d’en-tête de table) séparément. Depuis iOS 11, vous pouvez intégrer de manière élégante la barre de recherche dans la barre de navigation:

navigationItem.searchController = UISearchController (searchResultsController: nil)

Vous devrez également vous conformer à UISearchResultsUpdating pour réagir aux termes de recherche, bien sûr. Tandis qu'iOS masque automatiquement la barre de recherche en fonction du nombre de lignes de votre vue tableau, vous pouvez forcer la barre de recherche à être visible à tout moment en basculant:

navigationItem.hidesSearchBarWhenScrolling = false

UITableViews

Enfin, nous examinons deux nouvelles fonctionnalités distinguées introduites dans UITableViews à partir de iOS 11: auto-dimensionnement et actions de balayage améliorées. La taille automatique a été introduite dans iOS 8 afin d'alléger le fardeau des développeurs qui doivent redimensionner manuellement les cellules de vue de tableau, avec la possibilité de redimensionner dynamiquement les cellules pour les adapter au contenu de la ligne à l'aide de la disposition automatique. Jusqu'à présent, vous deviez demander explicitement le dimensionnement automatique à l'aide de:

tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 100

Depuis iOS 11, il est activé et défini par défaut sans code supplémentaire, mais vous avez toujours la possibilité de spécifier explicitement votre propre hauteur de ligne, si nécessaire. iOS 11 a également engendré de nouvelles actions de balayage principales et suivies, répandues dans de nombreuses applications système telles que la propre application Mail d'Apple.. 

En plus de pouvoir glisser à gauche ou à droite, vous pouvez également joindre des images à associer à ces actions. Vous implémentez deux méthodes de délégué dans le cadre du UIContextualAction, pour les actions de balayage de début et de fin:

redéfinit func tableView (_ tableView: UITableView, LeadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? let trash = UIContextualAction (style: .normal, titre: "Supprimer") action, vue, completionHandler dans print ("Delete") achèvementHandler (true) delete.backgroundColor = UIColor.red delete.image = UIImage (nommé: "delete") let actionGroup = UISwipeActionsConfiguration (actions: [delete]) actionGroup.performsFirstActionWithFullSwipe = false renvoie ActionGroup… remplace funC tableView (_ tableView: UITableView, headingSwipeActionsConfigurationForRowAt index) let archive = UIContextualAction (style: .normal, titre: "Archive") action, vue, completionHandler à imprimer ("Lire") completionHandler (true) archive.backgroundColor = bleu archive.image = UIImage (nommé: "archive ") let move = UIContextualAction (style: .normal, titre:" Move ") action, vue, completionHandler dans print (" Move ") completionHandler (true) move.backgroundColor = violet move.image = UIImage (nommé:" move ") let actionGroup = UISwipeActionsConfiguration (actions: [archive, move]) actionGroup.performsFirstActionWithFullSwipe = retourne false le groupe action

En utilisant le code ci-dessus, vous pouvez créer plusieurs actions contextuelles et les ajouter à la UISwipeActionsConfiguration instance de regroupement, pour plusieurs actions. Il s’agit d’une amélioration simple mais attrayante visant à apporter une plus grande élasticité à vos vues de table, avec un minimum de modifications du code, et bien que cela ne soit pas obligatoire, il vaut la peine de lui consacrer quelques heures dans le tableau de planification de votre sprint.. 

Conclusion

Dans cet article, je vous ai donné un aperçu des modifications apportées à l'architecture, à l'App Store et aux composants visuels d'iOS 11, en vous donnant une