Modifications supplémentaires apportées aux frameworks iOS 10
Cet article traite des modifications supplémentaires, mineures ou des améliorations apportées aux frameworks existants pour iOS 10.
Ajouts de l’infrastructure AV Foundation
L’infrastructure AVFoundation inclut les améliorations suivantes :
- Dans iOS 10, le développeur n’a plus besoin d’implémenter différents comportements AVPlayerItem en fonction du type de contenu. Il suffit de définir la
Rate
propriété et AVFoundation déterminent quand un contenu suffisant est disponible pour la lecture sans bloquer. - La nouvelle classe AVCapturePhotoOutput remplace la classe déconseillée
AVCaptureStillImageOutput
et fournit une méthode unifiée pour gérer tous les flux de travail de photographie en fournissant un contrôle et une surveillance sophistiqués du processus de capture et la prise en charge de nouvelles fonctionnalités telles que Live Photos et le format de capture RAW. - La nouvelle
AVPlayerLooper
classe facilite la boucle d’un élément multimédia donné pendant la lecture. - La
AVAssetDownloadURLSession
classe permet le téléchargement et la lecture ultérieure de flux HLS chiffrés FairPlay. - Par défaut, la classe AVCaptureSession prend automatiquement en charge la capture à grande couleur et large quand le matériel de l’appareil le prend en charge. Pour plus d’informations, consultez la référence de compatibilité des appareils iOS d’Apple.
Ajouts AVKit
L’infrastructure AVKit inclut désormais la nouvelle UpdatesNowPlayingInfoCenter
propriété pour indiquer quand le Centre d’informations de lecture maintenant doit être mis à jour.
Améliorations des données principales
IOS 10 inclut les améliorations suivantes apportées à l’infrastructure de données de base :
- Les objets NSManagedObjectContext avec des magasins de données SQLite dans le mode journal WAL prennent en charge la nouvelle fonctionnalité de génération de requêtes dans laquelle les contextes d’objet managé (MOC) peuvent être épinglés à des versions de base de données spécifiques pour récupérer et effectuer des transactions d’erreur ultérieures.
- Les objets NSManagedObjectContext racine prennent en charge les erreurs simultanées et l’extraction sans sérialisation.
- La classe NSPersistentStoreCoordinator gère un pool de magasins de données SQLite.
- Plusieurs nouvelles méthodes pratiques ont été ajoutées pour
NSManagedObject
faciliter l’exécution des extractions et la création de sous-classes. - Utilisation du haut niveau
NSPersistenceContainer
pour référencer lesNSPersistentStoreCoordinator
ressources de configuration de données principales, NSManagedObjectModel et autres ressources de configuration de données principales.
Pour plus d’informations, consultez la référence de Core Data Framework d’Apple.
Améliorations de l’image principale
iOS 10 apporte les améliorations suivantes à l’infrastructure Core Image :
- Le développeur peut désormais traiter des images dans un espace de couleur en dehors de l’espace de couleur de travail du contexte Image de base en convertissant et en dehors de l’espace de couleur avant et après le traitement.
- Pour les appareils iOS qui utilisent les processeurs A8 ou A9, le format d’image RAW est désormais pris en charge. Core Image prend désormais en charge le décodage des images RAW à partir de la caméra iSight intégrée ou d’une caméra tierce. Utilisez le ou
FilterWithImageURL
lesFilterWithImageData
méthodes de la classe CIFilter pour traiter des images RAW. - Plusieurs améliorations des performances de rendu ont été apportées au
UIImage
rendu (lorsqu’ils sont sauvegardés par les magasins d’images Core Image) dans lesUIImageView
objets. UIImage
les objets marqués à grande échelle s’affichent en tant que couleur large dansUIImageView
les objets sur les appareils iOS qui prennent en charge la couleur large.- Le code noyau d’image de base peut désormais demander des formats de sortie de pixel spécifiques.
- La
ImageWithExtent
méthode de la classe CIFilter peut être utilisée pour insérer un traitement personnalisé dans l’opération de filtre. L’image principale appelle le rappel donné entre les filtres lors du traitement d’une image pour la sortie ou l’affichage.
En outre, les nouveaux filtres d’images core suivants ont été ajoutés :
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Ajouts de mouvement de base
Nouveautés d’iOS 10, l’infrastructure Core Motion inclut des événements de pedomètre qui permettent à une application de recevoir des notifications rapides et en temps réel de l’utilisateur en pause et de reprendre le suivi lors de l’exécution. Utilisez cmPedometer pour vous inscrire aux événements de pedomètre de premier plan ou d’arrière-plan.
Améliorations apportées aux bases
Les améliorations suivantes ont été apportées au framework Foundation pour iOS 10 :
Utilisez la nouvelle classe NSMeasurementFormatter pour mettre en forme les mesures localisées pour l’affichage à l’utilisateur final.
Utilisez la nouvelle classe NSDateInterval pour effectuer des calculs d’intervalle de date et d’heure, tels que des durées, pour comparer les intervalles et les tests pour les intersections d’intervalles.
Utilisez la nouvelle classe NSMeasurement pour effectuer une conversion entre différentes unités de mesure (UOM) ou effectuer des calculs sur des valeurs dans différentes unités d’organisation.
Utilisez les nouvelles classes NSUnit et NSDimension pour représenter des UOM spécifiques.
Plusieurs nouvelles propriétés ont été ajoutées à la classe NSLocal pour acquérir des informations locales et les formats d’affichage disponibles.
Améliorations de GameKit
Les améliorations suivantes ont été apportées à l’infrastructure GameKit dans iOS 10 :
- L’application Game Center a été déconseillée et supprimée d’iOS. Si l’application utilise GameKit, elle doit présenter sa propre interface pour afficher des fonctionnalités GameKit telles que des classements, etc.
- Un nouveau type de compte iCloud uniquement a été implémenté par la classe GKCloudPlayer .
- La nouvelle classe GKGameSession fournit une solution généralisée pour la gestion du stockage de données persistant sur Game Center.
GKGameSession
gère une liste de joueurs et l’application est responsable de l’implémentation de la façon et du moment où la date du participant est stockée, récupérée ou échangée entre les joueurs. Dans de nombreux cas, les sessions de jeu peuvent remplacer les correspondances basées sur les tournure existantes, les correspondances en temps réel ou les méthodes d’enregistrement de jeu persistantes.
Améliorations de GameplayKit
Les améliorations suivantes ont été apportées à l’infrastructure GameplayKit dans iOS 10 :
- Utilisez la nouvelle classe GKMeshGraph pour fournir des chemins à haute performance et naturels.
- La génération de bruit procédural a été ajoutée et peut être utilisée pour améliorer le réalisme dans les textures naturelles, ajouter du réalisme aux mouvements de caméra et aider à générer des mondes de jeu riches.
- Utilisez le partitionnement spatial pour partitionner les données du monde du jeu pour une recherche efficace.
- Un nouveau stratège Monte Carlo (GKMonteCarloStrategist) a été ajouté pour un calcul de déplacement possible exhaustif.
- La prise en charge 3D a été ajoutée aux comportements d’agent et de recherche de chemins existants à l’aide des nouvelles classes GKAgent3D et GKGraphNode3D .
- Les nouvelles classes GKScene et GKSKNodeComponent facilitent la combinaison du GameplayKit et du SpriteKit que jamais.
- Une nouvelle API d’arbre de décision a été ajoutée (GKDecisionTree et GKDecisionNode) pour améliorer l’IA de création de jeux.
Améliorations de HealthKit
Les améliorations suivantes ont été apportées au framework HealthKit dans iOS 10 :
- De nouvelles clés de métadonnées ont été ajoutées pour les types météorologiques (tels que
HKWeatherConditionClear
HKWeatherConditionCloudy
et) et les types d’entraînement (tels queHKWorkoutActivityTypeFlexibility
etHKWorkoutActivityTypeWheelchairRunPace
) ont été ajoutés. - La nouvelle
HKCDADocument
classe a été ajoutée pour représenter un document au format CDA (Clinical Document Architecture). - Utilisez la nouvelle classe HKWorkoutConfiguration pour spécifier l’entraînement et
LocationType
l’entraînementActivityType
. - Le nouveau HKWheelchairUseObject et la
WheelchairUse
méthode de la classe HKHealthStore ont été ajoutés pour travailler avec des données de santé liées aux fauteuils roulants.
Améliorations de HomeKit
Les améliorations suivantes ont été apportées au framework HomeKit dans iOS 10 :
- De nouveaux services et caractéristiques ont été ajoutés.
- Un iPad peut être configuré pour agir en tant que hub HomeKit pour fournir un accès accessoire distant, exécuter des déclencheurs Automation et activer des autorisations utilisateur partagées.
- La prise en charge a été ajoutée pour les accessoires caméra et porte-porte.
- Plus de contexte et de configurations ont été fournies pour les accessoires.
Pour plus d’informations, consultez notre documentation Introduction à HomeKit .
Améliorations du métal
Les améliorations suivantes ont été apportées au framework Metal dans iOS 10 :
- Les applications et jeux 3D peuvent désormais utiliser Tessellation pour restituer efficacement des scènes et des géométries complexes via le GPU.
- Fournissez un contrôle précis de l’allocation des ressources pour optimiser les performances des applications metal à l’aide de tas de ressources et de cibles de rendu sans mémoire.
- Utilisez la spécialisation de fonction pour créer une collection hautement optimisée de fonctions de combinaison de matériaux et de lumière pour une scène.
Pour en savoir plus, consultez le Guide de programmation Metal d’Apple.
Améliorations de ModelIO
Les améliorations suivantes ont été apportées à l’infrastructure ModelIO dans iOS 10 :
- Le format de fichier USD est désormais pris en charge.
- La prise en charge du champ distance signée a été ajoutée à la classe MDLVoxelArray .
- Utilisez la nouvelle
MDLLightProbeIrradianceDataSource
classe pour faciliter le positionnement de la sonde légère. - Utilisez la nouvelle
MDLMaterialPropertyGraph
classe pour prendre en charge facilement les modifications d’exécution apportées aux modèles.
Améliorations apportées aux photos
Les améliorations suivantes ont été apportées à l’infrastructure Photos dans iOS 10 :
- Utilisez les classes CIImageProcessorInput et CIImageProcessorOutput pour tirer parti de la nouvelle fonctionnalité de processeur d’images core pour effectuer des modifications.
- La modification de photos en direct est désormais disponible pour les applications qui prennent en charge l’infrastructure Photos et les extensions d’édition de photos (pour une utilisation à l’intérieur des applications Photos et Caméra).
- Utilisez la nouvelle classe PHLivePhotoEditingContext pour appliquer des modifications à la fois à la vidéo et au contenu des photos en direct.
Améliorations de ReplayKit
Les améliorations suivantes ont été apportées à l’infrastructure ReplayKit dans iOS 10 :
- Utilisez les classes RPScreenRecorder, RPBroadcastActivityViewController et RPBroadcastController pour prendre en charge la diffusion de médias enregistrés via des sites tiers.
- L’interface utilisateur de diffusion et les extensions de chargement de diffusion sont requises pour prendre en charge les services de diffusion tiers ReplayKit dans l’application.
Améliorations de SceneKit
Les améliorations suivantes ont été apportées à l’infrastructure SceneKit dans iOS 10 :
- La classe SCNCamera peut fournir un plus grand réalisme à l’aide de fonctionnalités et d’effets HDR. Utilisez l’exposition adaptative pour créer des effets automatiques ou utiliser le vignetage, le fring de couleur et la notation de couleur pour ajouter des effets fillmatiques au jeu.
- SceneKit inclut désormais un nouveau système PBR (Physically Based Rendering) pour obtenir des résultats plus réalistes avec une création de ressources plus simple.
- Utilisez le nouveau modèle d’ombrage SCNLightingModelPhysicalBased pour produire un large éventail d’effets d’ombrage réalistes tout en nécessitant seulement trois propriétés fondamentales (
Diffuse
Metalness
etRoughness
). - Étant donné que l’ombrage PBR fonctionne le mieux avec l’éclairage basé sur l’environnement, utilisez la
LightingEnvironment
propriété pour affecter l’éclairage basé sur l’image à une scène entière. - Utilisez la
IESProfileURL
propriété pour importer des appareils lumineux réels qui définissent l’éclairage basé sur des valeurs réelles telles que l’intensité (en intervalles) et la température de couleur (en degrés Kelvin). - Les fonctionnalités de caméra PBR et HDR fournissent de meilleurs résultats que les techniques de rendu traditionnelles et, par conséquent, SceneKit effectue désormais tous les calculs de couleurs dans un espace de couleurs linéaire (à l’aide de la gamme de couleurs P3 sur les écrans d’appareils à grande couleur).
- SceneKit correspond désormais à toutes les couleurs en lisant les informations de profil de couleur.
- SceneKit interprète les valeurs des composants de couleur dans un espace de couleur RVB linéaire pour tous les types de nuanceurs.
- Le rendu de l’espace de couleur linéaire et la couleur large peuvent être désactivés en spécifiant les clés et
SCNDisableWideGamut
lesSCNDisableLinearSpaceRendering
clés deInfo.plist
l’application. - Créez des polygones arbitraires (chargés à partir de fichiers ou générés par programme) pour spécifier la géométrie avec la nouvelle classe SCNGeometryPrimitiveTypePolygon .
- Étant donné que SceneKit lit et ajuste les informations de profil de couleur dans les images de texture, utilisez les catalogues de ressources pour toutes les images pour vous assurer que ces informations sont fournies.
Améliorations de SpriteKit
Les améliorations suivantes ont été apportées à l’infrastructure SpriteKit dans iOS 10 :
- Les nuanceurs personnalisés peuvent fournir des attributs (
SKAttribute
) qui peuvent être configurés séparément par chaque nœud qui utilise le nuanceur en fournissant une valeur d’attribut (SKAttributeValue
). - Les mosaïques prennent désormais en charge les formes de mosaïques carrées, hexagonales et isométriques pour les jeux 2D, 2,5D et de défilement latéral à l’aide des classes et
SKTileSet
desSKTileMapMode
SKTileGroup
SKTileGroupRule
classes. - Utilisez la nouvelle
SKWarpGeometry
classe pour étirer ou fausser le rendu SKSpriteNode ou SKEffectNode . La nouvelle classe SKAction peut être utilisée pour animer des transitions entre les effets de warp. - La classe SKView fournit plusieurs nouvelles méthodes pour donner un contrôle précis sur le moment et le rendu d’une scène.
Améliorations de ScrollView
Les améliorations suivantes ont été apportées au contrôle ScrollView dans iOS 10.3 :
UIScrollView
incluez maintenant laIndexDisplayMode
propriété pour contrôler la façon dont l’index est affiché pendant que l’utilisateur fait défiler l’écran comme suitUIScrollViewIndexDisplayMode
:Automatic
- L’affichage d’index est contrôlé par le système d’exploitation.AlwaysHidden
- L’affichage d’index est toujours masqué.
Améliorations de UIKit
Les améliorations suivantes ont été apportées à l’infrastructure UIKit dans iOS 10 :
- La nouvelle API UIPasteboard fournit de nouvelles options (telles que les limitations de durée de vie) et déclare automatiquement les types de contenu compatibles pour les types de classes courants.
- Une nouvelle prise en charge d’animations totalement interactive, basée sur des objets, a été ajoutée et peut être liée à des mouvements. Pour plus d’informations, consultez la référence du protocole UIViewAnimating d’Apple, uiViewPropertyAnimator Class Reference, UITimingCurveProvider Protocol Reference, UICubicTimingParameters Class Reference et UISpringTimingParameter Class Reference.
UIPreviewInteraction
Nouveau etUIPreviewInteractionDelegate
autoriser l’application développeur à fournir une interface personnalisée pour les opérations d’aperçu et de fenêtre contextuelle.- La nouvelle
UIAccessibilityCustomRotor
classe permet à l’application de fournir des fonctionnalités personnalisées spécifiques au contexte pour les technologies d’assistance telles que Voice Over. - Utilisez les symboles et
UIAccessibilityAssistiveTouchStatusDidChangeNotification
lesUIAccessibilityIsAssistiveTouchRunning
symboles pour déterminer si AssistiveTouch est activé. - Utilisez les symboles et
UIAccessibilityHearingDevicePairedEarDidChangeNotification
lesUIAccessibilityHearingDevicePairedEar
symboles pour obtenir l’état des aides auditives MFi jumelées. - Pour prendre en charge le type dynamique dans les étiquettes, les champs de texte et les zones de texte utilisent la nouvelle
PreferredFontForTextStyle
méthode de laUIFont
classe. - Pour décider si un élément doit mettre à jour sa police lorsque l’appareil
UIContentSizeCategory
change, utilisez laAdjustsFontForContentSizeCategory
propriété duUIContentSizeCategoryAdjusting
délégué. - La
OpenURL
méthode de laUIApplication
classe est appelée de façon asynchrone et prend désormais en charge un gestionnaire d’achèvement appelé une fois l’action ouverte terminée. - Lancez le partage CloudKit et modifiez ses propriétés à l’aide des nouvelles
UICloudSharingController
classesUICloudSharingControllerDelegate
. - Tirez parti des cellules prérécupérées pour améliorer l’expérience de défilement du
UICollectionViews
nouveauUICollectionViewDataSourcePrefetching
délégué. - Le développeur peut désormais contrôler l’apparence du badge pour les éléments de barre d’onglets (par exemple, le texte et la couleur d’arrière-plan).
- Le contrôle d’actualisation est désormais pris en charge dans toutes les sous-classes d’affichage de défilement et de défilement (par
UICollectionView
exemple).
Améliorations de WebKit
Les améliorations suivantes ont été apportées au framework WebKit dans iOS 10 :
- Aperçu et prise en charge pop ont été ajoutés à la
WKWebView
classe. Utilisez laShouldPreviewElement
méthode pour déterminer si une vue web donnée doit afficher un aperçu.