Développer pour iOS App Store est une évidence. Si j’ai dit qu’un maigre investissement de 250 £ suffisait pour ouvrir un marché de 150 millions de consommateurs, les oreilles de tout développeur intelligent.

Si je devais ajouter que bon nombre de ces consommateurs sont des fans d'Apple désireux de se séparer de leur argent pour tenter d'acheter un logiciel justifiant le coût de leur matériel, alors vous comprendrez peut-être pourquoi il existe maintenant 300 000 applications iPhone et 60 000 applications iPad deux ans et demi après le lancement de l'App Store.

La taille de l'App Store est stupéfiante, avec plus de deux fois plus d'applications disponibles que tous les magasins concurrents combinés.

Dans cet article, je souhaite vous aider à lancer votre propre développement sur l'App Store, et j'espère qu'il est encourageant de constater que je suis moi-même passé de zéro application à 20 approuvés et en vente en l'espace d'un an et demi. . Je n'ai pas gagné assez d'argent avec eux pour prendre ma retraite, mais ils fournissent un revenu régulier - et ce revenu ne fera que croître à mesure qu'Apple vend plus de matériel..

Tout ce dont vous avez besoin pour participer est une idée, un Mac (pour le codage) et ce tutoriel. Allons-y!

Exigences

Pour créer des logiciels pour les appareils iOS - iPad, iPhone et iPod Touch - vous n'avez besoin que d'un seul progiciel: le SDK iOS d'Apple..

Il comprend quatre composants principaux: L’environnement de développement Xcode, dans lequel vous écrivez tout votre code; Interface Builder, qui est un système de conception d'interface utilisateur par glisser-déposer; bibliothèques et fichiers d'en-tête pour l'écriture de votre code en Objective C (langue maternelle de l'iPhone); et le simulateur iOS, qui vous permet d'exécuter un iPhone ou un iPad virtuel sur votre Mac.

Je dois souligner que cela ne peut être fait que sur votre Mac, car le SDK iOS n'est disponible pour aucune autre plate-forme. En fait, vous êtes plutôt limité à l’utilisation du matériel, des logiciels et des outils de développement d’Apple. C’est la raison pour laquelle de nombreuses personnes qualifient le développement d’iOS de «jardin clos». Apple est très protecteur vis-à-vis des créateurs d’applications et de ce qui se trouve dans le magasin.

L'exigence de Mac est un obstacle sur lequel vous ne pouvez pas vraiment vous lancer, mais je dirai ceci: même si vous êtes dédié à Windows ou Linux, un Mac est un excellent achat. Nous voyons rarement des PC plus solides ou plus fiables.

SIMULATEUR: Vous pouvez tester votre application sur votre bureau à l'aide d'un simulateur. Cela devrait vous faire économiser de l'argent sur un appareil iOS.

Quoi qu'il en soit, si vous envisagez de travailler uniquement à l'intérieur du simulateur, vous n'avez pas besoin de payer à Apple un test ou un compte de développeur. Vous pouvez aller directement à http://developer.apple.com/ios et obtenir un accès. aux outils gratuits.

Si vous décidez plus tard de créer une application que vous souhaitez vendre, vous devez acheter un iPod Touch à des fins de test (180 €), puis créer un compte iOS commercial (60 €). Si votre application 59p ne se vend qu'à 500 exemplaires - si seulement 0,00033% des propriétaires d'iOS l'achètent - vous avez rendu votre argent et tout le reste est un profit.

Une fois votre compte créé, vous devez télécharger le dernier SDK. Au moment de la rédaction de ce document, il s’agit de Xcode 3.2.5 avec iOS SDK 4.2. Ce forfait comprend tout ce dont vous avez besoin pour créer des applications pour iPhone et iPad.

Le programme d’installation est très simple: il suffit de cliquer sur «Suivant» jusqu’à ce que le processus de copie commence, puis de lui laisser environ 30 minutes pour effectuer sa magie et vous êtes prêt à commencer..

Construire votre projet

Je ne suis pas intéressé à vous enseigner la théorie ici - je veux vous montrer comment faire un vrai projet afin que, si vous le souhaitez, vous puissiez l'étendre avec vos propres personnalisations et faire votre propre ajout précieux à l'App Store..

Nous allons créer un gestionnaire de liste de tâches simple, basé sur certains des éléments d'interface utilisateur de base communs aux applications iOS..

Tout d’abord, lancez Xcode - vous devriez le trouver dans le dossier 'Developer | Dossier des applications sur votre disque dur. Un écran de bienvenue devrait apparaître, mais vous pouvez le fermer et choisir "Nouveau | Nouveau projet 'dans le menu.

Apple propose dès le départ sept modèles d’application, mais celui qui est le plus utile au départ (principalement parce qu’il contient assez de code écrit pour vous) est l’application de navigation. Choisissez cela, puis nommez-le 'TaDaList' et enregistrez-le sur votre bureau..

Une application basée sur la navigation vous offre une interface utilisateur similaire à celle de l'application Paramètres. Vous disposez d'une barre de titre en haut et d'un tableau d'options parmi lesquels choisir. Le choix d’une option entraîne l’affichage d’un nouvel écran à partir de la droite. Vous pouvez ensuite revenir à l'écran précédent en appuyant sur un bouton "Retour" - c'est très intuitif et facile à apprendre.

Vous pouvez voir le modèle d'application de base créé par Apple pour vous en appuyant sur [Commande] + [Y] pour créer et exécuter votre application dans le simulateur. Vous pouvez voir la barre bleue Apple en haut (elle est vide parce que nous n'avons encore rien saisi), ainsi que le tableau d'informations (encore une fois vide parce que nous n'avons pas dit à l'application ce qui devrait y être)..

Définir les éléments

X-CODE: Xcode est votre environnement de développement principal pour iPhone. Certaines personnes aiment ça, la plupart ne le font pas

Avant de taper des éléments de la liste de tâches dans la table, nous devons définir leur nature et leur emplacement de stockage..

Premièrement, réfléchissez à la manière dont chaque élément de la liste de tâches doit être stocké et à la manière dont ils pourraient être utilement stockés en tant que groupe. Vous devriez trouver ces deux points clés: Tout d’abord, un élément de la liste des tâches à faire, comme «Nourrir le chat» ou «Prendre le monde en main», n’est qu’une chaîne..

En Objective C, il existe deux types de chaîne: 'NSString' et 'NSMutableString'. La seule différence entre les deux est que ce dernier peut être modifié après sa création..

Deuxièmement, la collection d’articles est très simple: à mesure qu’ils sont ajoutés, nous devons les placer au début ou à la fin de notre liste existante. Les utilisateurs doivent pouvoir les lire dans l'ordre de leur choix. Cela appelle un tableau assez standard, bien qu'une fois encore, il en existe deux: 'NSArray' et 'NSMutableArray'. J'espère que vous pouvez comprendre la différence.

Dans ce projet, nous utiliserons les versions mutables de ces deux classes. Nous avons besoin de chaînes mutables, car les utilisateurs doivent pouvoir modifier les entrées de tâches à faire. Le moyen le plus simple de le faire est de les laisser modifier les entrées. Nous avons également besoin d'un tableau mutable, sinon les utilisateurs ne seraient pas en mesure d'ajouter et de supprimer des éléments.

Commençons donc par le tableau: nous allons utiliser une technique de programmation très basique dans Objective C appelée "propriétés". La syntaxe de ces derniers est un peu verbeuse, je vous recommande donc de tout mettre dans la mémoire musculaire le plus rapidement possible..

Propriétés

Nos éléments de liste de tâches doivent être stockés dans un NSMutableArray, et la méthode correcte pour créer ce NSMutableArray consiste à utiliser une propriété. Ceci est un peu du sucre syntaxique d'Objective C qui signifie "Lorsque j'essaie d'obtenir la valeur, exécutez cette méthode, mais lorsque j'essaie de définir la valeur, exécutez cette méthode à la place". Tout repose sur les méthodes, par opposition à la définition directe de valeurs.

Avoir à écrire deux méthodes pour obtenir et définir chaque valeur est clairement une gêne, donc Objective C a une syntaxe spéciale qui peut générer ces méthodes pour nous lorsque le code est compilé. Si vous choisissez d'écrire vous-même, il vous suffit de lui dire d'arrêter de générer automatiquement les méthodes que vous souhaitez remplacer - easy.

Tout d’abord, nous devons dire à Objective C que nous voulons un NSMutableArray pour nos éléments. Dans 'RootViewController.h' - le fichier de définition de notre vue de table principale -, modifiez la définition de la classe comme suit:

@interface RootViewController:
UITableViewController
NSMutableArray * items;

@propriété (non atomique, à retenir)
NSMutableArray * items;
@fin

Au début, on dirait probablement que nous déclarons le tableau 'items' deux fois, mais il y a une différence: la première déclaration crée la variable de sorte qu'elle puisse être utilisée n'importe où dans la classe, mais la deuxième déclaration le transforme en propriété qu'il peut être utilisé n'importe où dans notre code.

De plus, le mot clé 'rétention' indique à Objective C que s'il génère le code pour nous, il doit s'assurer que l'objet reste en vie jusqu'à ce que nous disions le contraire..

Je dis "si le code est généré", car il reste encore à venir - passez dans le fichier "RootViewController.m" et mettez cette ligne de code immédiatement sous "@implementation RootViewController":

@ synthétiser des éléments;

C'est ce qui rend la génération de code effective: avec cette seule ligne, Objective C transformera notre propriété @ en deux méthodes, la gestion de la mémoire étant pour nous automatiquement..

Il y a cependant un dernier élément: utiliser "rétention" garde l'objet "éléments" en vie jusqu'à ce que nous disions le contraire. Si vous ne dites jamais le contraire, cette mémoire n'est jamais libérée, même si vous ne pouvez plus y accéder. Par conséquent, vous devez toujours libérer la mémoire que vous avez conservée. Par conséquent, faites défiler l'écran jusqu'au bas du fichier 'RootViewController.m' et recherchez la méthode 'dealloc'. Changez-le pour lire comme suit:

- (vide) dealloc
[sortie d'articles];
[super dealloc];

L'envoi du message 'release' à un objet - c'est ce que fait ce code - a pour effet dans cet exemple de libérer de la mémoire. C'est en fait un peu plus compliqué que ça, mais ça marche assez bien pour l'instant.

Remplir la table

Maintenant que nous avons déclaré un tableau d’éléments, nous pouvons créer des éléments et les afficher dans la table. Mais d’abord, nous devons créer le tableau d’éléments. Et maintenant, grâce à l'incroyable pouvoir de la télépathie dans les magazines, je peux lire dans vos pensées: "Attendez une minute ... n'avons-nous pas écrit du code pour faire tout cela?"

Pas tout à fait. Nous avons écrit du code pour déclarer la variable afin qu'elle soit disponible à l'utilisation - nous devons maintenant utiliser la chose.

Près du sommet de 'RootView Controller.m', le message 'viewDidLoad' a été mis en commentaire. Supprimez les '/ *' et '* /' pour les décommenter, puis ajoutez ceci:

self.items = [NSMutableArray
arrayWithCapacity: 10];

Avec cela en place, notre tableau est prêt à être utilisé. Analysez un peu le fichier et recherchez la méthode 'numberOfRowsInSection' - qui détermine le nombre de lignes qui apparaissent dans la table dans notre interface utilisateur..

Combien? Facile - autant que nous avons d'éléments dans le tableau 'items'. À l'heure actuelle, l'implémentation de la méthode par défaut a 'return 0', ce qui signifie '0 lignes'; changez cela pour retourner le nombre d'articles dans 'items':

renvoyer [nombre d'articles];

Ensuite, nous devons modifier la manière dont les lignes du tableau sont créées afin qu’elles affichent le texte du bon élément de la liste des tâches. Comme pour les autres méthodes, le modèle Apple inclut déjà du code pour effectuer la majeure partie de ce travail. En fait, il vous suffit d'ajouter une ligne indiquant "Définissez le libellé de cette ligne pour que tout ce qui se trouve dans notre tableau d'éléments se trouve à cette position"..

À peu près au milieu du fichier 'RootViewController.m' se trouve la méthode 'cellForRowAtIndexPath' et vous devriez pouvoir voir qu'il reçoit un paramètre appelé 'indexPath', qui indique la ligne à charger. Donc, directement sous le commentaire "configurez la cellule", ajoutez ceci:

cell.textLabel.text = [self.items
objectAtIndex: indexPath.row];

Cela utilise la position de la ligne telle que passée dans 'indexPath' pour regarder à l'intérieur du tableau 'items' et affecter le texte correct à la ligne du tableau. Cependant, si vous exécutez l'application, elle ne fait toujours rien, même après tout ce code.

Heureusement, nous n'avons aucun élément dans le tableau. Nous devons donc ajouter un bouton à la barre de navigation en haut permettant aux utilisateurs d'ajouter de nouveaux éléments..