iOS 9: une introduction au multitâche sur iPad

introduction

Avec iOS 9, Apple a introduit un certain nombre de capacités multitâches pour iPad. Ceux-ci inclus Glisser dessus, Vue partagé, et Image dans l’image. Si vous n’êtes pas familier avec ces nouvelles fonctionnalités, voici un bref aperçu.

Glisser dessus

Slide Over est disponible sur iPad Mini 2 et versions ultérieures, tous les modèles iPad Air et iPad Pro. Il permet aux applications de glisser depuis le côté droit de l’écran avec la pleine hauteur de l’écran (dans les deux orientations) et la largeur approximative de l’écran d’un iPhone.

Glisser dessus

Image dans l’image

Picture in Picture est disponible sur tous les modèles d’iPad prenant en charge Slide Over. Il permet à une vidéo de continuer à être lue dans une petite vue pendant que vous travaillez avec d’autres applications sur iPad. Cette petite vue contient trois boutons pour contrôler la lecture, revenir au plein écran, lire / mettre en pause et fermer. La vue peut être redimensionnée ou temporairement déplacée sur le côté de l’écran.

Image dans l'image Vidéo

Vue partagé

Split View est disponible sur iPad Mini 4, iPad Air 2 et iPad Pro. Il permet à l’iPad d’exécuter deux applications entièrement fonctionnelles côte à côte. L’utilisateur peut déplacer le séparateur entre les deux applications pour les redimensionner.

Notez que l’application sur la gauche est appelée primaire l’application et l’application sur la droite secondaire app. L’application principale possède la barre d’état de l’appareil et occupe toujours au moins la moitié de l’écran. Cependant, l’application principale peut être ignorée par l’utilisateur s’il déplace le séparateur complètement vers la gauche.

Vue partagé

Conditions préalables

Ce didacticiel nécessite que vous exécutiez Xcode 7 ou version ultérieure sur OS X Yosemite ou version ultérieure. Cela suppose également que vous avez appris classes de taille et Disposition automatique. Si vous êtes nouveau dans la conception adaptative, je vous recommande de lire Jordan Morgantutoriel sur la conception adaptative. Vous devrez également télécharger le projet de démarrage de GitHub.

1. Faire glisser et diviser la vue

Configuration

Par défaut, toutes les applications créées à partir de n’importe quel modèle Xcode 7 prennent automatiquement en charge Slide Over et Split View. En effet, votre application est créée avec un LaunchScreen.storyboard fichier et une classe de taille activés Main.storyboard fichier.

Pour les projets créés avec une version antérieure de Xcode, vous pouvez activer Slide Over et Split View pour votre application en suivant les deux étapes suivantes.

Étape 1

Créer un LaunchScreen.storyboard fichier en sélectionnant le iOS> Interface utilisateur> Écran de lancement modèle. L’écran de lancement s’affiche une fois que votre application a été lancée à partir de l’écran d’accueil et pendant son chargement.

Scénarimage de l'écran de lancement

Notez que ce storyboard remplace les images de lancement statiques que vous auriez déjà configurées pour votre application.

Étape 2

Assurez-vous que votre interface utilisateur utilise classes de taille et Disposition automatique. Vous pouvez le vérifier en sélectionnant le storyboard de votre projet, en ouvrant le Inspecteur de fichiers, et en cochant le Utiliser la disposition automatique et Utiliser les classes de taille cases à cocher dans Document de création d’interface section.

Configuration du storyboard

Notez que vous devez le faire pour chaque storyboard de votre projet. Maintenant que vous savez comment configurer correctement une application pour Slide Over et Split View, il est temps d’apprendre comment vous assurer que votre application fonctionne bien avec d’autres applications.

Classes de taille

Pour Slide Over, la classe de taille actuelle de votre application lors de l’exécution sera toujours la même. Lorsque votre application est l’application principale, elle aura accès au plein écran (classe de taille normale de largeur et de hauteur) et rien ne sera différent. Lorsque votre application est ouverte via la fonction Slide Over, votre application aura une largeur compacte et une classe de taille de hauteur régulière, quelle que soit l’orientation.

En relation :  11 sites économes pour trouver des prix bas sur les fournitures de «rentrée scolaire»

Sur un iPad qui prend en charge Split View, cependant, la fenêtre de votre application peut être redimensionnée à tout moment et doit être conçue pour s’adapter à ces tailles. Le diagramme suivant montre les différentes configurations pour les tailles d’application Split View et les classes de taille associées:

Diagramme des classes de taille
La source: Apple’s Adopting Multitasking Enhancements sur iPad: Slide Over and Split View Quick Start Guide

Comme vous pouvez le voir, à moins que votre application ne soit l’application principale et que l’appareil soit en orientation paysage, dès que vous devez partager l’écran avec une autre application, votre application sera forcée dans une classe de taille de largeur compacte. Étant donné que ce changement de taille dépend de l’utilisateur et peut se produire à tout moment, votre application doit pouvoir passer en douceur entre différentes tailles de vue.

Notez que sur l’iPad Pro, en mode paysage et en mode Split View 50/50, les deux applications reçoivent une classe de taille horizontale de largeur régulière, comme indiqué ci-dessous.

Classe de taille horizontale de l'iPad Pro
Capture d’écran prise à partir de l’application de didacticiel terminée

Méthodes de rappel

Afin de tenir compte de ces changements de taille, le UIViewController la classe est conforme aux deux protocoles, UITraitEnvironment et UIContentContainer.

UITraitEnvironment

Ce protocole contient un UITraitCollection propriété appelée traitCollection et une méthode pour savoir quand cette collection de traits change, traitCollectionDidChange(_:). Cet objet de collection de traits vous permet de trouver des détails spécifiques sur l’état de fonctionnement de votre application, tels que l’échelle d’affichage, les classes de taille horizontale et verticale actuelles, la capacité 3D Touch (appelée Force Touch par l’API) et le type d’appareil actuel (iPhone / iPod Touch, iPad, Apple TV ou Non spécifié).

UIContentContainer

Ce protocole contient un preferredContentSize propriété ainsi que de nombreuses méthodes pour savoir quand la taille ou la collection de traits change pour le conteneur actuel. Nous examinerons de plus près deux des méthodes définies par le UIContentContainer protocole.

Ouvrez le projet de démarrage que vous avez téléchargé à partir de GitHub et accédez à ViewController.swift. Ensuite, ajoutez les méthodes suivantes à la définition de classe:

dans le viewWillTransitionToSize(_:withTransitionCoordinator:) méthode, nous mettons à jour la viewWidth label pour afficher la nouvelle largeur de l’écran.

dans le willTransitionToTraitCollection(_:withTransitionCoordinator:) méthode, nous vérifions pour voir vers quelle classe de taille horizontale est transférée et mettons à jour le sizeClass étiqueter en conséquence.

Vous avez peut-être remarqué que les deux méthodes fournissent un UIViewControllerTransitionCoordinator paramètre. Cet objet est principalement utilisé pour travailler avec des animations entre les contrôleurs de vue et il ne concerne pas vraiment le multitâche de Split View car le système gère les animations. le UIViewControllerTransitionCoordinator paramètre existe parce que ces UIContentContainer Les méthodes de protocole ne sont pas exclusives au multitâche Split View et peuvent également être exécutées dans d’autres scénarios.

Exécutez votre application sur un appareil physique ou dans le simulateur iPad Air 2 ou iPad Pro. Une fois l’application lancée, faites glisser à partir du côté droit de l’écran et sélectionnez l’une des applications de la liste.

Sélectionnez l'application Slide Over

Une fois l’application ouverte, appuyez et maintenez sur la petite barre à gauche de l’application qui vient d’être ouverte, comme indiqué ci-dessous.

Démarrer l'écran partagé

Faites glisser le séparateur qui apparaît au milieu de l’écran comme indiqué dans la capture d’écran suivante et relâchez-le.

Diviseur d'écran partagé centré

Lorsque votre application réapparaît, les deux étiquettes doivent être mises à jour avec la largeur de vue et la classe de taille horizontale appropriées.

Libellés mis à jour

2. Image dans l’image Vidéo

Comme avec Slide Over et Split View, si vous utilisez Xcode 7 ou version ultérieure, votre application prendra automatiquement en charge Picture in Picture. Pour le contenu audiovisuel, cela se fait en utilisant le AVPlayerViewController classe.

En relation :  Comment surveiller et limiter votre utilisation de données sur un téléphone Android

Cependant, avant de pouvoir commencer à utiliser Picture in Picture, vous devez activer une fonctionnalité pour votre cible. Sélectionnez votre cible, ouvrez le Capacités onglet dans le Navigateur de projet, activer Modes d’arrière-planet cochez la case intitulée Audio, AirPlay et Picture in Picture.

Capacité d'image dans l'image

Exécutez à nouveau votre application et appuyez sur le Lire la vidéo bouton. La lecture de la vidéo que j’ai incluse dans le projet de démarrage commencera. Pendant la lecture de la vidéo, accédez à l’écran d’accueil en appuyant sur le bouton d’accueil de votre appareil ou Commande-Maj-H si vous utilisez le simulateur.

Vous pouvez également appuyer sur le petit bouton dans le coin inférieur gauche pour accéder au mode Image en mode Image. Vous verrez que la vue vidéo se minimise et reste sur l’écran, avec des boutons pour rouvrir, lire / mettre en pause et fermer.

Image dans l'image Vidéo

À ce stade, vous remarquerez que si vous appuyez sur le bouton pour recommencer à visionner la vidéo en plein écran, l’application s’ouvrira mais le contrôleur d’affichage de lecture vidéo n’apparaîtra pas du tout. Vous pouvez modifier ce comportement en conformant le contrôleur de vue à la AVPlayerViewControllerDelegate protocole.

Commencez par faire le ViewController classe conforme à la AVPlayerViewControllerDelegate protocole.

Ensuite, remplacez prepareForSegue(_:sender:) avec l’implémentation suivante:

Enfin, ajoutez le playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart(_: AVPlayerViewController) méthode de la AVPlayerViewControllerDelegate protocole au ViewController classe.

En implémentant cette méthode, nous nous assurons que le contrôleur d’affichage du lecteur vidéo ne se ferme pas lorsque l’image en mode Image est entrée. Générez et exécutez à nouveau votre application et vous verrez que, lors de la réouverture de Picture in Picture, la vidéo continuera à être lue.

Si vous n’utilisez pas de AVPlayerViewController pour lire votre contenu, il existe d’autres moyens de prendre en charge la vidéo Image dans Image. Si vous utilisez un AVPlayerLayer pour permettre une interface utilisateur personnalisée autour de votre vidéo, vous pouvez créer un AVPictureInPictureController objet pour prendre en charge Picture in Picture. Voici à quoi pourrait ressembler une telle implémentation:

3. Désactivation du multitâche iPad

Si, pour une raison quelconque, vous ne souhaitez pas que votre application prenne en charge Slide Over, Split View ou Picture in Picture, vous pouvez remplacer le comportement par défaut fourni par Xcode et iOS.

Faire glisser et diviser la vue

Pour les modes Slide Over et Split View, il vous suffit d’ajouter le UIRequiresFullScreen clé de votre application Info.plist fichier et définissez-le sur YES.

Image dans l’image

Avec le AVPlayerViewController classe, il vous suffit de définir le allowsPictureInPicturePlayback propriété à false.

Pour une image dans l’image avec un AVPlayerLayer objet, vous ne créez pas un AVPictureInPictureController.

Enfin, pour les vidéos affichées sur le Web via un WKWebView, vous devez définir le allowsPictureInPicturePlayback propriété de la vue configuration à false.

Conclusion

Vous devriez maintenant être confiant dans la création d’applications prenant en charge les nouvelles fonctionnalités multitâches Slide Over, Split View et Picture in Picture ajoutées à l’iPad sur iOS 9. Comme vous pouvez le voir, ces nouvelles fonctionnalités font de l’iPad un outil beaucoup plus productif et elles sont très facile pour les développeurs à implémenter dans leurs propres applications.

Comme toujours, vous pouvez laisser vos commentaires et commentaires dans les commentaires ci-dessous.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.