Ios de commencer la programmation pour les nuls

programmation iOS, Objective-C, l'orientation objet, et la conception OO vont ensemble. Lire la suite pour quelques conseils utiles pour la conception OO. Il est temps de se mettre au diapason!

Sommaire

Concevoir des classes «bonnes»

Vos classes doivent être hautement cohésif et à couplage lâche. Voici une liste de contrôle pour tester rapidement si une classe est bonne: un "non" réponse à une des questions signifie que vous pouvez avoir besoin de repenser votre classe.

  • Pouvez-vous donner à la classe un nom qui capte sa raison d'être?

  • Pouvez-vous donner une description qui dit qu'il fait juste une chose?

  • At-il des responsabilités (méthodes)? Sont toutes les responsabilités en alignement avec la description?

  • At-il des collaborateurs?

  • T-il - ou ses composants - maintenir l'état à long terme?

Faire un type une sous-classe d'une classe existante ou utiliser la délégation

Dites que vous avez besoin d'un type nommé Tiger et il semble partager les responsabilités d'un animal. Par conséquent, vous êtes en train de décider si vous devez déclarer Tiger comme une sous-classe d'une classe nommée animale, ou peut-être déclarer une variable membre de type animal et déléguer les responsabilités animalistic à cette variable membre.

Disent ces deux phrases à haute voix:

  • Tiger est-A un animal.

  • Tiger CAN-être un animal.

Si la première est plus logique (qui dans ce cas qu'il fait), Tiger devrait être une sous-classe d'animal.

Relever les plates-formes iOS et Méthodes App

Lors de l'écriture d'une application iOS, il est très important de comprendre et de tisser code spécifique à l'application dans son cycle de vie. Essayer de comprendre la méthode du cycle de vie à utiliser? Consultez cette liste:

  • Usage willFinishLaunchingWithOptions faire un droit de traitement après l'application démarre et avant qu'il affiche sa première fenêtre, et avant il a même un état restauré.

    Vous utilisez généralement cette méthode pour vérifier si les paramètres de démarrage à l'application (comme une URL) sont corrects. Vous pouvez également consulter l'environnement dans lequel l'application est lancée (par exemple, at-il lancer sur un iPad qui a la capacité de faire des appels cellulaires). Incidemment, cette méthode ne fonctionnera pas sur un dispositif avec une version plus ancienne que iOS iOS 6.

  • Usage didFinishLaunchingWithOptions de faire tout traitement après que vous êtes sûr que l'application va commencer.

    Par exemple, vous pouvez utiliser cette méthode pour restaurer un état global.

  • Usage applicationDidBecomeActive afin de relancer un processus qui a été interrompue pendant que le soft était inactif.

    Par exemple, vous pourriez commencer à écouter les changements de localisation ou même l'actualiser l'interface utilisateur avec des données fraîches.

  • Usage applicationWillResignActive pour mettre en pause votre application pendant que l'utilisateur donne son attention à une autre activité - tels que répondre à un appel téléphonique.

  • Usage applicationDidEnterBackground de libérer des ressources et d'enregistrer les données de l'utilisateur avec suffisamment d'informations d'état de l'application pour restaurer votre application à son état actuel au cas où il est mis fin plus tard.

    Vous êtes autorisé environ cinq secondes de traitement dans cette méthode, alors ne faites pas toutes les tâches qui ne peut mettre fin - comme demander à l'utilisateur.

  • Usage applicationWillEnterForeground à défaire ce que vous avez fait dans applicationDidEnterBackground.

  • Usage applicationWillTerminate à faire toutes les tâches finales de nettoyage.

Rendre votre iOS applications propres à la consommation

la performance du programme iOS est plus que processus d'arrière-plan. Quelques trucs simples peuvent économiser temps et augmenter les performances. Pour l'histoire linéaire, consultez ces conseils.

Trouver rapidement et d'ouvrir les fichiers concernés dans Xcode

Utilisez la commande Ouvrir rapidement pour trouver et ouvrir un fichier à une ligne spécifique, en utilisant son nom de fichier, le type ou un symbole dans le fichier (comme un nom de variable ou fonction), comme suit:

  1. Choisissez Fichier ouvrir rapidement.

  2. Dans le champ de recherche, tapez les caractères dans le nom du fichier ou du symbole que vous voulez voir.

  3. Tapez un point suivi par un ou plusieurs caractères de l'extension de fichier.

  4. Pour avoir le fichier ouvert à une ligne spécifique, tapez un deux-points suivi par le numéro de la ligne.

  5. Choisissez un fichier de la liste de résultats.

Cette boîte de dialogue vous permet également de décider de l'emplacement d'un fichier dans Xcode. Juste appuyez et maintenez CMD + OPT + MAJ tout en double-cliquant sur le fichier.

Configuration comportements

Vous pouvez configurer la façon dont Xcode répond à des événements communs en mettant son comportement en utilisant la page des paramètres Xcode-Préférences-Comportement pour définir les préférences de comportement.

Par exemple, vous pouvez avoir un certain ensemble d'onglets apparaissent lorsque Xcode exécute votre application. Ou, si une génération échoue, vous pouvez faire Xcode enregistrer un instantané et ouvrir la zone de débogage dans la fenêtre de votre espace de travail.

Création d'un fichier .gitignore

Xcode peut facilement se connecter avec git, un système de gestion de code source populaire. Si elle est utilisée sans aucune configuration, git va essayer de tout archiver dans un projet, même les fichiers avec le code compilé de l'objet, les exécutables et les fichiers temporaires utilisés par Xcode.

Pour résoudre ce problème, vous devez créer configure git appropriée. Pour ce faire, allez dans le dossier de projet et créer un .gitignore déposer avec le contenu suivant:

OS X Finder.DS_Store # Xcode config par utilisateur * .mode1 * * .mode2v3 .mode1v3 * * .perspectivev3 .perspective * * .xcworkspacexcuserdata .pbxuser # Construire productsbuild / *. * O * .LinkFileList .hmap # fichiers de sauvegarde automatiques * ~ .nib / *. SWP * ~ 

Surgissant une vue Alerte

Votre application doit souvent apparaître une alerte à l'utilisateur que quelque chose est arrivé et qu'elle a un choix d'actions. Voici une liste de contrôle rapide pour savoir comment mettre en place une alerte.

  1. Mettre en œuvre le clickedButtonAtIndex méthode dans la classe qui va provoquer l'alerte pop up.

    L'exemple de code suivant vous montre comment faire:


    - (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex {if (buttonIndex == 0) {[self playNewGame] -} else if (buttonIndex == 1) {}} Retour-
  2. Créer, initialiser, et de montrer l'alerte.

    L'extrait de code suivant vous montre comment faire:

UIAlertView * alert = [[UIAlertView alloc] init] - [setTitle alerte: @ "Game Over!"] - [SetMessage alerte: @ "? Jouer un autre jeu"] - [addButtonWithTitle alerte: @ "Oui"] - [addButtonWithTitle alerte : @ "Non"] - [setDelegate alerte: auto] - [show alert] -

Connexion de votre iOS Apps

Votre application iOS peut avoir besoin de communiquer avec une variété d'autres ressources. Heureusement, la boîte à outils iOS a une variété de liaisons spécialisées. Choisissez-en un et le mettre à travailler.

Ouverture d'un navigateur à partir de votre application

Voici une façon rapide et sale d'avoir votre application ouvrir une page Web dans un navigateur. Voir l'exemple de code suivant:

- (IBAction) helpViaBrowser: (id) sender {[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @ "http://en.wikipedia.org/wiki/Tictactoe"]] -

Oui, il est aussi simple que cela!

Conversion d'une adresse à une géolocalisation

La plupart des applications de cartographie ou de géolocalisation ont un besoin de convertir une chaîne de texte contenant une adresse ou un lieu coordonnées de géo-codées. Heureusement le cadre iOS fournit un géocodeur intégré. Le code suivant vous montre comment utiliser le géocodeur:

# 133-NSString * findString = [texte findTextField] - // la chaîne est lue dans un champ de texte [myGeocoder geocodeAddressString: findString completionHandler: ^ (NSArray * repères, NSError * Error) {MKPlacemark * aPlacemark = [repères objectAtIndex: 0] - // aPlacemark contient les informations géocodées # 133 -}] - # 133-

Test de capacités de réseau

Il est une bonne idée pour tester ce que les capacités du réseau sont disponibles avant votre application essaie d'utiliser le réseau. Voici comment vous pouvez faire ce test:

  • Vous devez apporter dans deux fichiers supplémentaires - à savoir, Reachability.h et Reachability.m - à partir du site Apple Developer dans votre projet.

    Vous pouvez trouver ces fichiers ici: https://developer.apple.com/Library/ios/samplecode/Reachability/Reachability.zip.

  • Vous devez inclure Reachability.h dans votre code.

    Le code suivant vous montre comment voyez quel réseau est disponible:

+ (void) {// Test listCapabilities pour le networkNSString * networkReachability = nil-accessibilité * reachFacade = [Accessibilité reachabilityForInternetConnection] état -NetworkStatus = [reachFacade currentReachabilityStatus] -si (statut == NotReachable) networkReachability = @ "Pas de réseau n" - else if (statut == ReachableViaWiFi) networkReachability = @ "Wifi disponible n" -else si (statut == ReachableViaWWAN) networkReachability = @ "WAN disponibles n" - # 133- [textVal appendString: networkReachability] - # 133-}

Capteurs partir

Avant que vous pouvez lire des valeurs détectées, vous devez démarrer et configurer le gestionnaire de mouvement. Le code suivant vous montre comment faire:

# 133 - // Configurer le mouvement managerself-> MotionManager = [[alloc CMMotionManager] init] -self-> motionManager.accelerometerUpdateInterval = 1-auto> motionManager.gyroUpdateInterval = 1-auto> MotionManager. magnetometerUpdateInterval = 1 à n ° 133-

Cependant, juste le démarrage du gestionnaire de mouvement ne suffit pas. Vous devez aussi commencer à surveiller les capteurs, comme indiqué ici:

- (IBAction) startMonitoringSensors:(id)sender{[self->motionManagerstartAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler: ^ (* accelerometerData CMAccelerometerData, NSError * error) {[auto handleAccelerationUpdates:accelerometerData.acceleration]-}]-[self->motionManagerstartGyroUpdatesToQueue:[NSOperationQueue currentQueue] withHandler: ^ (* gyroscopeData CMGyroData, NSError * error) {[auto handleGyroUpdates:gyroscopeData.rotationRate]-}]-[self->motionManagerstartMagnetometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler: ^ (* CMMagnetometerData magnetometerData, NSError * Error) {[self handleMagnetometerUpdates: magnetometerData. champ magnétique]-}]-}

» » » » Ios de commencer la programmation pour les nuls