Partager via


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 les NSPersistentStoreCoordinatorressources 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 les FilterWithImageData 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 les UIImageView objets.
  • UIImage les objets marqués à grande échelle s’affichent en tant que couleur large dans UIImageView 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 HKWeatherConditionClearHKWeatherConditionCloudyet) et les types d’entraînement (tels que HKWorkoutActivityTypeFlexibility et HKWorkoutActivityTypeWheelchairRunPace) 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 (DiffuseMetalnesset Roughness).
  • É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 les SCNDisableLinearSpaceRendering clés de Info.plistl’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 des SKTileMapModeSKTileGroupSKTileGroupRule 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 la IndexDisplayMode propriété pour contrôler la façon dont l’index est affiché pendant que l’utilisateur fait défiler l’écran comme suit UIScrollViewIndexDisplayMode :
    • 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 et UIPreviewInteractionDelegate 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 les UIAccessibilityIsAssistiveTouchRunning symboles pour déterminer si AssistiveTouch est activé.
  • Utilisez les symboles et UIAccessibilityHearingDevicePairedEarDidChangeNotification les UIAccessibilityHearingDevicePairedEar 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 la UIFont classe.
  • Pour décider si un élément doit mettre à jour sa police lorsque l’appareil UIContentSizeCategory change, utilisez la AdjustsFontForContentSizeCategory propriété du UIContentSizeCategoryAdjusting délégué.
  • La OpenURL méthode de la UIApplication 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 classes UICloudSharingControllerDelegate .
  • Tirez parti des cellules prérécupérées pour améliorer l’expérience de défilement du UICollectionViews nouveau UICollectionViewDataSourcePrefetching 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 UICollectionViewexemple).

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 la ShouldPreviewElement méthode pour déterminer si une vue web donnée doit afficher un aperçu.