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#.
Avec iOS 6 et Xamarin.iOS 6, les développeurs disposent désormais d’une multitude de fonctionnalités à leur disposition pour créer des applications iOS, y compris celles qui ciblent iPhone 5. Ce document répertorie certaines des nouvelles fonctionnalités les plus intéressantes disponibles et des liens vers des articles pour chaque rubrique. En outre, il touche à quelques changements qui seront importants à mesure que les développeurs passent à iOS 6 et la nouvelle résolution de l’iPhone 5.
Présentation des vues de collection
Les vues de collection permettent d’afficher du contenu à l’aide de dispositions arbitraires. Ils permettent de créer facilement des dispositions de type grille prêtes à l’emploi, 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 au kit de réussite.
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 est disponible depuis iOS 4, mais iOS 6 expose désormais l’accès aux données de rappels. Pour plus d’informations, consultez le guide Introduction to EventKit .
Présentation de l’infrastructure sociale
Social Framework 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 Introduction à l’infrastructure sociale .
Changements apportés à 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 Modifications apportées au kit store .
Autres modifications
ViewWillUnload et ViewDidUnload Deprecated
Les ViewWillUnload
méthodes et ViewDidUnload
de UIViewController
ne sont plus appelées dans iOS 6. Dans les versions précédentes d’iOS, ces méthodes ont pu être utilisées par les applications pour enregistrer l’état avant le déchargement d’une vue et nettoyer le code 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 qui appelle Dispose
doit être utilisé avec parcimonie et uniquement pour les objets gourmands en mémoire, comme indiqué ci-dessous :
if (myImageView != null){
if (myImageView.Superview == null){
myImageView.Dispose();
myImageView = null;
}
}
Là encore, les appels Dispose
comme ci-dessus doivent rarement être nécessaires. En général, la plupart des applications doivent supprimer les gestionnaires d’événements.
Dans le cas de l’enregistrement de l’état, les applications peuvent effectuer cette opération dans ViewWillDisappear
et ViewDidDisappear
au lieu de ViewWillUnload
.
Résolution de l’iPhone 5
Les appareils iPhone 5 ont une résolution de 640 x 1136. Les applications qui ciblaient les versions précédentes d’iOS apparaissent dans la boîte aux lettres lorsqu’elles sont exécutées sur un iPhone 5, comme indiqué ci-dessous :
Pour que l’application apparaisse en plein écran sur iPhone 5, ajoutez simplement une image nommée Default-568h@2x.png
avec une résolution de 640 x 1136. La capture d’écran suivante montre l’application en cours d’exécution après l’inclusion de cette image :
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-classer 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 UINavigationController
, utilisez le UINavigationController
constructeur qui accepte le type de 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 image comme illustré dans la capture d’écran suivante :
Orientation de l’interface
Avant iOS 6, les applications pouvaient remplacer ShouldAutorotateToInterfaceOrientation
, en retournant 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 option est définie par défaut sur les quatre orientations si GetSupportedInterfaceOrientation
n’est pas implémentée. Sur iPhone et iPod Touch, la valeur par défaut est toutes les orientations à l’exception PortraitUpsideDown
de .