Partager via


Modifications supplémentaires apportées aux frameworks iOS 9

Cet article traite des modifications supplémentaires, mineures ou des améliorations apportées aux frameworks existants pour iOS 9.

Logo iOS 9

Outre les principales modifications apportées à iOS, Apple a apporté des modifications et des améliorations à plusieurs frameworks existants dans iOS 9.

Ajouts du framework AVFoundation

Dans l’infrastructure AVFoundation, la classe AVSpeechSynthesisVoice vous permet désormais de spécifier une voix par identificateur en plus de la langue.

Par exemple, le code suivant obtient une liste de toutes les voix disponibles :

var voices = AVSpeechSynthesisVoice.GetSpeechVoices ();

Vous pouvez ensuite utiliser l’une des voix de la liste en la définissant comme propriété Voice d’une instance de la classe AVSpeachUtterance .

La classe AVQueuePlayer prend désormais en charge un mélange de diffusion en continu Internet et de médias basés sur des fichiers dans la file d’attente. Les versions précédentes ne pouvaient mettre en file d’attente que les supports du même type.

Pour plus d’informations, consultez la référence AVSpeechSynthesisVoice d’Apple.

Ajouts de l’infrastructure AVKit

Pour utiliser la nouvelle fonctionnalité Picture-in-Picture (PIP), l’infrastructure AVKit inclut les nouvelles AVPictureInPictureControllerclasses AVPlayerViewController :

  • AVPictureInPictureController : cette classe permet à une application iOS 9 de répondre à l’utilisateur qui lance la lecture d’une vidéo dans une fenêtre PIP flottante et redimensionnable sur un iPad.
  • AVPlayerViewController - Gère un AVPlayer contrôleur utilisé pour présenter une vidéo dans une fenêtre PIP flottante redimensionnable sur un iPad.

Pour plus d’informations, consultez notre documentation Multitasking pour iPad et la référence AVPictureInPictureController d’Apple et AVPlayerViewController Reference.

Présentation des services web CloudKit

Le framework CloudKit simplifie le développement d’applications qui accèdent à iCloud. Cela inclut la récupération des données d’application et des droits de ressource, ainsi que la possibilité de stocker en toute sécurité les informations d’application. Ce kit offre aux utilisateurs une couche d’anonymat en autorisant l’accès aux applications avec leurs ID iCloud sans partager d’informations personnelles.

Le nouveau framework cloudKit Web Services fournit une bibliothèque JavaScript (CloudKit JS) qui peut être incorporée dans votre site web pour fournir l’accès aux mêmes données et contenus cloudKit que votre application Xamarin.iOS.

Important

Avant de pouvoir accéder, présenter ou mettre à jour du contenu à partir d’une base de données CloudKit à l’aide de CloudKit JS, vous devez avoir défini précédemment le schéma de cette base de données.

Pour plus d’informations, consultez les documents suivants :

Important

Apple fournit des outils pour aider les développeurs à gérer correctement le Règlement général sur la protection des données (RGPD) de l’Union européenne.

Ajouts de Foundation Framework

Apple a inclus les modifications suivantes dans l’infrastructure Foundation dans iOS 9 :

Modifications apportées à NSBundle

Les modifications suivantes ont été apportées à la classe NSBundle pour iOS 9 :

  • GetPreservationPriorityForTag (NSString tag) - Obtient la priorité de conservation actuelle pour les ressources avec la balise donnée. Les valeurs valides sont comprises dans la plage 0.0 , 1.0les ressources dont la priorité est la plus basse sont vidées en premier.
  • SetPreservationPriorityForTag (double priority, NSSet tags) - Définit la priorité de conservation actuelle pour les ressources avec les balises données. Les valeurs valides sont comprises dans la plage 0.0 , 1.0les ressources dont la priorité est la plus basse sont vidées en premier.

Pour plus d’informations, consultez la référence NSBundle d’Apple.

Modifications apportées à NSProcessInfo

Chaque processus s’exécutant sur un appareil iOS a un seul , l’agent d’informations de processus (PIA). Utilisez la classe NSProcessInfo pour fournir des informations sur l’assembly PIA actuel et la gestion thermique et la puissance de contrôle pour un processus donné.

Par exemple, pour contrôler l’arrêt automatique d’un processus, vous pouvez utiliser le code suivant :

// Disable automatic termination
var activity = NSProcessInfo.ProcessInfo.BeginActivity(NSActivityOptions.AutomaticTerminationDisabled, "Define reason for change here...");

// Perform the required task
...

// Return to normal operation
NSProcessInfo.ProcessInfo.EndActivity(activity);

Pour plus d’informations, consultez la référence NSProcessInfo d’Apple.

Réaction au mode de faible puissance

Utilisez la LowPowerModeEnabled propriété de la classe NSProcessInfo pour déterminer si le mode basse alimentation a été activé sur l’appareil iOS sur lequel l’application s’exécute. Par exemple :

// Is the device in low power mode?
if (NSProcessInfo.ProcessInfo.LowPowerModeEnabled) {
    // Reduce activity to conserve energy...
} else {
    // Return to normal activity...
}

Modifications de l’infrastructure HealthKit

Apple a inclus les modifications suivantes apportées à l’infrastructure HealthKit dans iOS 9 :

  • Prise en charge de la suppression en bloc et du suivi des suppressions d’entrées dans la base de données HealthKit. Pour plus d’informations, consultez la référence de la classe HKDeletedObject, HKAnchoredObjectQuery et HKHealthStore d’Apple.
  • De nouvelles catégories et caractéristiques de suivi ont été ajoutées à la HKQuantityTypeIdentifier classe (par exemple UVExposure) et à la HKCategoryTypeIdentifier classe (par OvulationTestResultexemple).

Consultez notre documentation Introduction à HealthKit pour plus d’informations sur l’utilisation de HealthKit dans Xamarin.iOS.

Modifications de l’infrastructure d’authentification locale

Apple a inclus les modifications suivantes apportées à l’infrastructure d’authentification locale dans iOS 9 :

  • À l’aide des EvaluateAccessControl méthodes et EvaluatePolicy des méthodes de la classe LAContext , vous pouvez désormais réutiliser les correspondances Touch ID à partir des tentatives de déverrouillage précédentes réussies.
  • Possibilité d’obtenir la liste des doigts actuellement inscrits.
  • Prise en charge du suivi lorsqu’un doigt est ajouté ou supprimé de l’authentification.
  • Possibilité d’utiliser le contexte d’authentification dans les appels de trousseau et la prise en charge de l’évaluation des listes de contrôle d’accès au trousseau.
  • Possibilité d’annuler une invite utilisateur à partir du code.

Pour plus d’informations, consultez Touch ID et Face ID avec Xamarin.iOS.

Modifications de LAContext

Les modifications suivantes ont été apportées à la classe LAContext pour iOS 9 :

  • TouchIdAuthenticationMaximumAllowableReuseDuration : retourne la durée maximale pendant laquelle une authentification d’ID tactile peut être réutilisée.
  • EvaluatedPolicyDomainState : obtient ou définit l’état d’une stratégie évaluée.
  • MaxBiometryFailures - A été déprécié dans iOS 9.
  • TouchIdAuthenticationAllowableReuseDuration Obtient ou définit la durée pendant laquelle une authentification par ID tactile peut être réutilisée.
  • EvaluateAccessControl : évalue de façon asynchrone une stratégie d’authentification.
  • Invalidate : invalide une authentification d’ID tactile donnée.
  • IsCredentialSet : retourne true si les informations d’identification sont actuellement définies.
  • SetCredentialType Définit le type d’informations d’identification donné.

Pour plus d’informations, consultez la référence LAContext d’Apple.

Modifications de l’infrastructure MapKit

Apple a inclus les modifications suivantes apportées à l’infrastructure MapKit dans iOS 9 :

  • MapKit prend désormais en charge le lancement de l’application Map directement dans des directions de transit et pour interroger l’heure d’arrivée estimée du transit (ETA) à l’aide des classes MKLaunchOptions et MKDirections .
  • Les résultats de recherche retournés par MapKit et la classe CLGeocoder peuvent également fournir le fuseau horaire du résultat.
  • Vous pouvez désormais personnaliser entièrement les annotations cartographiques présentées par votre application iOS à l’aide de la DetailCalloutAccessoryView propriété de la classe MKAnnotationView .

Pour plus d’informations, consultez notre Cartes iOS et notre procédure pas à pas : exploration des annotations et des superpositions dans la documentation MapKit pour plus d’informations sur l’utilisation de Cartes et d’annotations dans Xamarin.iOS et la référence CLGeocoder d’Apple.

Ajouts du framework PassKit

Apple incluait les modifications suivantes apportées à l’infrastructure PassKit dans iOS 9 :

  • Apple Pay prend désormais en charge les carte de débit et de crédit store ainsi que Les carte Découvrir. Pour plus d’informations, consultez la section Payment Networks de la référence de la classe PKPaymentRequest d’Apple.
  • À partir d’une application Xamarin.iOS, vous pouvez désormais ajouter des réseaux de paiement et carte émetteurs à Apple Pay. Pour plus d’informations, consultez la référence de la classe PKAddPaymentPassViewController d’Apple.

Consultez notre documentation Introduction au PassKit pour plus d’informations sur l’utilisation de PassKit dans Xamarin.iOS.

Ajouts de l’infrastructure Safari Services

Apple a inclus les modifications suivantes apportées à l’infrastructure Safari Services dans iOS 9 :

  • Vous pouvez maintenant utiliser la nouvelle classe SFSafariViewController pour afficher du contenu web dans une application Xamarin.iOS. Il permet de partager des données de site web et des cookies avec l’application Safari et inclut plusieurs fonctionnalités de Safari (par exemple, Lecteur et Remplissage automatique). SFSafariViewController dispose d’un bouton Terminé qui renverra les utilisateurs à votre application une fois qu’ils ont terminé d’afficher le contenu web.

Étant donné que la classe SFSafariViewController est adaptée à l’affichage d’une page unique de contenu web, vous devez envisager de l’utiliser pour remplacer les contrôles WKWebKit ou UIWebView dans vos applications Xamarin.iOS existantes.

Affichage d’un site web

Le code ci-dessous illustre l’appel d’un SFSafariViewController à partir d’un autre contrôleur d’affichage :

// Create an instance of the Safari Services View Controller
var controller = new SFSafariViewController(new NSUrl("http://www.xamarin.com"));

// Display website
PresentViewController(controller, true, null);

Modifications de l’infrastructure UIKit

Apple a inclus de nombreuses améliorations à plusieurs éléments de l’infrastructure UIKit pour iOS 9. Les sections suivantes détaillent ces modifications.

Événements tactiles 3D

Nouveautés d’iOS 9 et i Téléphone 6 et i Téléphone 6s Plus, 3D Touch ajoute des mouvements sensibles à la pression à vos applications iOS. Par conséquent, si votre application s’exécute sur iOS 9 (ou version ultérieure) et que l’appareil iOS est capable de prendre en charge 3D Touch, les changements de pression entraînent la levée de l’événement TouchesMoved .

En raison de ce changement de comportement, vos applications iOS doivent être préparées pour que l’événement TouchesMoved soit appelé plus souvent, même si les coordonnées X/Y n’ont pas changé.

Pour plus d’informations, consultez notre guide d’introduction à 3D Touch .

Fonctionnalité open-in-place de document

En utilisant la ou WillFinishLaunching (Application, launchOptions) les FinishedLaunching (application, launchOptions) méthodes de la classe UIApplicationDelegate, vous pouvez maintenant ouvrir un document et le modifier en place (par opposition à l’utilisation d’une copie).

Pour prendre en charge la nouvelle fonctionnalité open-in-place, ajoutez la LSSupportsOpeningDocumentsInPlace clé au fichier Info.plist de votre application Xamarin.iOS avec la valeur .YES

Pour plus d’informations, consultez la référence UIApplicationDelegate d’Apple.

Événements tactiles améliorés

Apple a apporté plusieurs améliorations aux événements tactiles dans iOS 9. Il s’agit notamment de la possibilité d’utiliser la prédiction tactile et d’accéder aux touches intermédiaires entre les actualisations d’affichage.

Pour plus d’informations, consultez le Guide de gestion des événements d’Apple pour iOS .

Extraction de contenu personnalisé

La nouvelle NSDataAsset classe permet à une application Xamarin.iOS d’extraire du contenu adapté à la mémoire et aux fonctionnalités graphiques de l’appareil iOS sur lequel il s’exécute actuellement.

Nouvelles ancres de disposition

Les classes d’ancres nouvelles NSLayoutAnchor et NSLayoutDimension de disposition fonctionnent avec les nouvelles propriétés d’ancrage de la classe UIView (par LeadingAnchor exemple, et WidthAnchor) pour faciliter la disposition dans iOS 9.

Pour plus d’informations sur l’utilisation des classes de superposition automatique et de taille dans une application Xamarin.iOS et la référence NSLayoutAnchor d’Apple, référence NSLayoutDimension et UIView Reference, consultez notre documentation de présentation des storyboards unifiés.

Nouvelles marges de contenu lisibles

La nouvelle UILayoutGuide classe peut être utilisée pour fournir des marges de contenu lisibles et définir les zones de dessin pour le contenu à l’intérieur d’une vue. Pour plus d’informations, consultez la référence UILayoutGuide d’Apple.

Modifications apportées à l’entrée de texte dans les notifications

La classe UIUserNotificationAction a une nouvelle Behavior propriété qui peut être utilisée pour prendre en charge l’entrée de texte à partir de notifications.

Modifications UIApplicationDelegate

Bien qu’ils ne soient pas officiellement déconseillés par Apple, ils suggèrent de remplacer tous les appels à la méthode de la FinishedLaunching (UIApplication application)classe UIApplicationDelegate par les méthodes ou WillFinishLaunching (UIApplication application, NSDictionary launchOptions) les FinishedLaunching (UIApplication application, NSDictionary launchOptions) méthodes.

Pour plus d’informations, consultez la référence UIApplicationDelegate d’Apple.

Modifications de Dynamics UIKit

Apple inclut les modifications suivantes apportées à UIKit Dynamics dans iOS 9 :

  • Dynamics prend désormais en charge les limites de collision non rectangulaires.
  • La nouvelle classe personnalisable UIFieldBehavior est utilisée pour prendre en charge différents types de champs.
  • Des types de pièces jointes supplémentaires ont été ajoutés à la UIAttachmentBehavior classe.

Pour plus d’informations, consultez la référence UIAttachment d’Apple.

Modifications uiPickerView et UIDatePicker

Avant iOS 9, les contrôles UIPickerView et UIDatePicker n’étaient pas redimensionnables et se redimensionneraient automatiquement pour remplir la largeur de leur conteneur (généralement la largeur de l’appareil iOS sur lequel l’application s’exécutait).

Dans iOS 9, ce redimensionnement automatique ne se produit plus et les contrôles sont rendus à une largeur de 320 points sur tous les appareils iOS, quelle que soit la taille et l’orientation de l’écran.

Pour corriger cette situation, utilisez la disposition automatique et les classes de taille pour épingler la largeur du contrôle aux bords du conteneur parent (affichage) et spécifier la hauteur requise. Consultez notre documentation Introduction aux storyboards unifiés pour plus d’informations sur l’utilisation des classes de disposition et de taille automatiques dans une application Xamarin.iOS.

New UITextInputAssistantItem, classe

Utilisez la nouvelle UITextInputAssistantItem classe pour mettre en page les groupes de boutons de barre de disposition dans une barre de raccourcis. La barre de raccourcis est une nouvelle zone disponible dans le clavier doux pour fournir des raccourcis de saisie.