Partager via


Introduction à iOS 6

iOS 6 inclut une variété de nouvelles technologies pour le développement d’applications, que Xamarin.iOS 6 apporte aux développeurs C#.

Logo iOS 6

Avec iOS 6 et Xamarin.iOS 6, les développeurs disposent désormais d’une grande capacité pour créer des applications iOS, y compris celles qui ciblent iPhone 5. Ce document répertorie quelques-unes des nouvelles fonctionnalités les plus intéressantes disponibles et des liens vers des articles pour chaque rubrique. En outre, il touche à quelques modifications qui seront importantes à mesure que les développeurs passent à iOS 6 et la nouvelle résolution d’iPhone 5.

Présentation des vues de collection

Les vues de collection permettent d’afficher du contenu à l’aide de dispositions arbitraires. Ils permettent également de créer facilement des dispositions de type grille hors de la boîte, tout en prenant en charge les dispositions personnalisées. Pour plus d’informations, consultez le guide Présentation des vues de collection.

Présentation de PassKit

L’infrastructure PassKit permet aux applications d’interagir avec des passes numériques gérées dans l’application Passbook. Pour plus d’informations, consultez le guide Introduction to Pass Kit.

Présentation d’EventKit

L’infrastructure EventKit permet d’accéder aux données Calendriers, Événements de calendrier et Rappels que la base de données calendrier stocke. L’accès aux calendriers et aux événements de calendrier a été disponible depuis iOS 4, mais iOS 6 expose désormais l’accès aux données de rappel. Pour plus d’informations, consultez le guide d’introduction à EventKit .

Présentation du Cadre social

Le Framework social fournit une API unifiée pour interagir avec les réseaux sociaux, notamment Twitter et Facebook, ainsi que SinaWeibo pour les utilisateurs en Chine. Pour plus d’informations, consultez le guide d’introduction au cadre social.

Modifications apportées à StoreKit

Apple a introduit deux nouvelles fonctionnalités dans le Kit Store : l’achat et le téléchargement de contenu iTunes ou App Store à partir de votre application, et l’hébergement de vos fichiers de contenu pour les achats dans l’application !. Pour plus d’informations, consultez le guide des modifications apportées au Kit store.

Autres modifications

ViewWillUnload et ViewDidUnload Déconseillé

Les ViewWillUnload méthodes et ViewDidUnload les méthodes de UIViewController ne sont plus appelées dans iOS 6. Dans les versions précédentes d’iOS, ces méthodes peuvent avoir été utilisées par les applications pour enregistrer l’état avant un déchargement d’affichage et le code de nettoyage respectivement.

Par exemple, Visual Studio pour Mac créerait une méthode appelée ReleaseDesignerOutlets, illustrée ci-dessous, qui serait ensuite appelée à partir de ViewDidUnload:

void ReleaseDesignerOutlets ()
{
    if (myOutlet != null) {
        myOutlet.Dispose ();
        myOutlet = null;
    }
}

Toutefois, dans iOS 6, il n’est plus nécessaire d’appeler ReleaseDesignerOutlets.

Pour le code de nettoyage, les applications iOS 6 doivent utiliser DidReceiveMemoryWarning. Toutefois, le code que les appels Dispose doivent être utilisés avec parcimonie et uniquement pour les objets nécessitant beaucoup de mémoire, comme indiqué ci-dessous :

if (myImageView != null){
    if (myImageView.Superview == null){
        myImageView.Dispose();
        myImageView = null;
    }
}

Là encore, l’appel Dispose comme indiqué ci-dessus doit rarement être nécessaire. En général, la plupart des applications doivent faire consiste à supprimer des gestionnaires d’événements.

Pour le cas d’enregistrement de l’état, les applications peuvent effectuer cette opération au ViewWillDisappear ViewDidDisappear lieu de ViewWillUnload.

Résolution iPhone 5

Les appareils iPhone 5 ont une résolution de 640 x 1136. Les applications ciblant les versions précédentes d’iOS s’affichent en boîte de lettres lorsqu’elles s’exécutent sur un iPhone 5, comme indiqué ci-dessous :

Les applications ciblant les versions précédentes d’iOS s’affichent en boîte à lettres lorsqu’elles s’exécutent sur un iPhone 5

Pour que l’application apparaisse en plein écran sur iPhone 5, ajoutez simplement une image nommée Default-568h@2x.png ayant une résolution de 640 x 1136. La capture d’écran suivante montre l’application en cours d’exécution une fois cette image incluse :

Cette capture d’écran montre l’application en cours d’exécution une fois cette image incluse

Sous-classe UINavigationBar

Dans iOS 6 UINavigationBar peut être sous-classé. Cela permet un contrôle supplémentaire de l’apparence du UINavigationBar. Par exemple, les applications peuvent sous-classe pour ajouter des sous-vues, animer ces vues et modifier les limites du UINavigationBar.

Le code ci-dessous montre un exemple de sous-classe UINavigationBar qui ajoute un UIImageView:

public class CustomNavBar : UINavigationBar
{
​    UIImageView iv;
    public CustomNavBar (IntPtr h) : base(h)
​    {
​​        iv = new UIImageView (UIImage.FromFile ("monkey.png"));
​​        iv.Frame = new CGRect (75, 0, 30, 39);
​    }
    public override void Draw (RectangleF rect)
​    {
​​        base.Draw (rect);
        TintColor = UIColor.Purple;
​​        AddSubview (iv);
​    }
}

Pour ajouter une sous-classe UINavigationBar à un UINavigationControllerconstructeur UINavigationController qui prend le type du UINavigationBar et UIToolbar, comme indiqué ci-dessous :

navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));

L’utilisation de cette UINavigationBar sous-classe entraîne l’affichage de l’image affiché, comme illustré dans la capture d’écran suivante :

L’utilisation de cette sous-classe UINavigationBar entraîne l’affichage de l’image comme illustré dans cette capture d’écran

Orientation de l’interface

Avant que les applications iOS 6 puissent remplacer ShouldAutorotateToInterfaceOrientation, retourner true pour toutes les orientations prises en charge par le contrôleur particulier. Par exemple, le code suivant est utilisé pour prendre en charge uniquement portrait :

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
    }

Dans iOS 6 ShouldAutorotateToInterfaceOrientation est déconseillé. Au lieu de cela, les applications peuvent remplacer GetSupportedInterfaceOrientations sur le contrôleur d’affichage racine, comme indiqué ci-dessous :

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
    {
        return UIInterfaceOrientationMask.Portrait;
    }

Sur iPad, cette valeur est par défaut pour les quatre orientations si GetSupportedInterfaceOrientation elle n’est pas implémentée. Sur iPhone et iPod Touch, la valeur par défaut est toutes les orientations sauf PortraitUpsideDown.