Programmation pour iPhone. Où commencer? Comment créer une application pour iOS - de l'idée à la vente Programmation pour iPhone

"Mais aujourd'hui est une occasion spéciale - je voulais mettre en évidence les 10 meilleures applications auxquelles les amateurs de programmation devraient prêter attention. Il existe des applications éducatives, un jeu pour les programmeurs, les compilateurs et les éditeurs de code.

Pythonista 3 est un programme permettant d'écrire des applications en Python. Un fait intéressant : le nom de la langue ne vient pas du python reptile, mais du nom de la comédie britannique Monty Python's Flying Circus. Python est juste en anglais Python.

Certaines personnes pensent que Python est un excellent premier langage de programmation. C'est peut-être vrai. Le langage a une syntaxe simple et compréhensible et en même temps un grand nombre de fonctions.

Python est un langage populaire utilisé par de nombreuses grandes entreprises. Par exemple, Google et Facebook l'utilisent dans leurs projets. Pythonista 3 vous permet d'écrire un programme et de l'exécuter immédiatement.

Langage de programmation « basic intelligent »

Une application qui propose à l'utilisateur de programmer dans une version avancée du langage d'apprentissage le plus populaire – Basic. C'est avec Basic que ma connaissance de la programmation a commencé il y a 20 ans.

Même si de nombreux programmeurs avancés ne comprennent pas du tout le Basic, je pense que c'est un bon langage pour les débutants. C'est très simple et en même temps, entre des mains habiles, cela peut résoudre de nombreux problèmes.

Notre lecteur Alexander, programmeur amateur, a même déjà créé des applications en Smart Basic, qui ont été publiées dans l'App Store.

Apple a développé le langage de programmation Swift pour les programmeurs iOS et Mac OS. Apple a conçu Swift comme un langage plus facile et plus lisible à apprendre que son prédécesseur, Objective C. En 2014, le langage a été implémenté dans Xcode. Et en 2016, Google a annoncé que Swift serait le premier langage pour Android. Très probablement, cela aura un impact positif sur la vitesse à laquelle les applications sont publiées pour Android. Il y aura moins d'exclusivités et d'applications qui sortiront d'abord sur iOS, et après quelques mois/années sur Android.

Swift Playgrounds d'Apple permet même à un débutant de s'immerger dans le monde de la langue. Apprenez de nouvelles conceptions, étudiez le fonctionnement du code à l'aide d'exemples réels de manière ludique.

Série « Apprentissage des langages de programmation » de Sololearn

Je suis récemment tombé sur une série d'applications divertissantes de Sololearn qui proposent des leçons interactives pour apprendre les langages de programmation. Les langues suivantes sont disponibles en russe : JavaScript, HTML, C++, Python, Java, CSS, SQL, PHP, C#, JQuery, Ruby. Cours rapides en anglais.

J'ai suivi quelques leçons de JavaScript. Tout est très accessible et intéressant. Des mini-leçons sont données avec des exemples que vous pouvez immédiatement exécuter dans l'émulateur. Ceci est généralement suivi d'une question avec plusieurs options de réponse ou de la possibilité de saisir une réponse textuelle. Très clair et pratique pour les débutants.

Il existe des exemples de code et la possibilité de les exécuter :

Toutes les applications sont gratuites et sans achats intégrés.

Éditeur de code Textastic 6

L'App Store dispose de deux éditeurs de texte décents pour le code. Textastic, avec son prix de 749 roubles (10 dollars dans l'App Store américain), est budgétaire option.

Textastic prend en charge la syntaxe d'environ 80 langages de programmation. Le programme est utilisé pour un bel affichage et une édition de textes. Ce n'est pas un compilateur - veuillez noter. L'application fonctionne comme ceci : vous téléchargez le code, le modifiez puis le retéléchargez.

Coda

Et voici une version plus chère et avancée d'un éditeur de texte. Pour 1 890 roubles, vous obtiendrez tout en un.

  • Éditeur de code avec coloration syntaxique et édition pratique en ligne et hors ligne.
  • Prise en charge de nombreuses langues populaires.
  • Prise en charge des protocoles réseau (notamment FTP) et surtout du terminal SSH.
  • Synchronisation entre iOS et Mac (la version pour Mac OS peut être achetée sur le site Panic).

Je suis récemment tombé sur une application de référence intéressante qui contient des exemples de code dans 6 langages de programmation : Swift, Java, C#, Python, C++, Objective C. Son essence est qu'une personne peut trouver rapidement un morceau de code dans le langage dont elle a besoin. Par exemple, un programmeur doit se rappeler rapidement à quoi ressemble un gestionnaire d’erreurs en C++. Il regarde le programme et trouve le fragment souhaité qu'il peut utiliser dans son programme.

Le développeur de l'application a collecté des exemples de ces 6 langages de programmation et, à en juger par les mises à jour, les met également à jour en permanence.

Le programme est un shareware, mais la version complète ne coûte que 2 $.

Codea

Codea est apparu en 2012 comme la première application de l'App Store pouvant être utilisée pour écrire des applications pour iOS. Le programme est toujours en cours de mise à jour à ce jour. Codea utilise le langage de programmation Lua, inventé au Brésil et dont l'idéologie est très similaire à celle de JavaScript.

Codea est conçu pour faciliter la programmation pour iOS. Autrement dit, l'objectif des développeurs était de visualiser le processus et de le rendre plus pratique grâce à cela.

A titre d'exemple, les développeurs ont mis en ligne un très bon jeu entièrement gratuit, Cargo Bot (écrit en Codea), sur l'App Store. Dans celui-ci, vous devez réorganiser les cases colorées à l'aide d'un bras manipulateur pour obtenir la disposition souhaitée. Pour ce faire, vous devez proposer des algorithmes utilisant les commandes disponibles.

Marelle : créez des jeux

Une autre application pour créer des jeux. À l’intérieur se trouvent des vidéos de formation pratiques (affichées dans une petite fenêtre) qui vous aideront à créer vos premiers jeux en anglais.

Dans l'application, vous pouvez sélectionner des objets et créer des actions pour eux. Le résultat est de simples jouets d’arcade. J'ai essayé quelques personnes créées. Je n’ai pas été particulièrement impressionné, mais nous devons tenir compte du niveau amateur des utilisateurs.

Le programme est bon pour tout le monde, mais un abonnement de 5 000 roubles par an est au-delà du bien et du mal. Le seul programme de ce top 10 que j’ai inclus était donc basé sur le principe : « Cool ! Les lecteurs doivent le regarder. Je ne peux pas le recommander avec un tel prix.

Le métier de programmeur est l’un des plus prestigieux et des plus demandés, c’est un fait. L'industrie du développement de logiciels a ses niches. Parmi ceux-ci, celui qui connaît la croissance la plus rapide, et en même temps le mieux payé, est le développement de logiciels pour appareils mobiles. Comme vous le savez, il se trouve que, laissant leurs concurrents loin derrière, trois rivaux constants ont pris la tête. Le truc, c'est que l'un de ces trois est le leader incontesté, tandis que quelqu'un rattrape toujours son retard.

Sur le segment des technologies mobiles, Apple est sans conteste le leader avec son smartphone iPhone. Lors d'une présentation organisée en septembre, la société de Cupertino a présenté la 7ème version de l'appareil mobile. Parallèlement, Apple a introduit une nouvelle version du système d'exploitation mobile iOS 10. Il s'agit désormais du système d'exploitation le plus important au monde, comme ses prédécesseurs. Il s’ensuit que l’apprentissage du développement iOS est le meilleur investissement en temps et en argent.

Écosystème Apple

Aujourd'hui, nous allons développer une application mobile simple pour iOS. Bien entendu, un Mac natif est le mieux adapté pour cela. Mais si vous êtes un partisan de Windows ou si vous n’avez tout simplement pas de Mac, vous pouvez installer le système d’exploitation macOS sous une machine virtuelle sous Windows. Sur Internet, il ne vous sera pas difficile de trouver une version de macOS spécialement conçue pour PC, communément appelée Hackintosh. N'hésitez pas à l'installer sur une machine virtuelle VMware, VirtualBox - votre choix. Permettez-moi de vous avertir tout de suite que le clavier du PC ne possède pas certaines des touches du clavier Mac et que bon nombre de leurs combinaisons ne peuvent pas être enfoncées dans Hackintosh. Cela gâche vraiment l'ambiance. Sinon, toutes les opérations décrites ci-dessous peuvent être effectuées avec succès sur Hackintosh.

Connaissances requises

Pour programmer en général et pour iOS en particulier, il faut en savoir beaucoup. Les mathématiques et la logique ne sont peut-être pas nécessaires au début, mais elles le seront plus tard. La technologie moderne a éliminé la nécessité pour un programmeur d'avoir une connaissance approfondie de l'architecture informatique, mais la compréhension des mécanismes de base tels que les systèmes numériques, leur conversion, la vitesse des sous-programmes ou l'efficacité des algorithmes (grand O) est nécessaire.

À un niveau supérieur, un développeur iOS doit avoir une connaissance approfondie du système d'exploitation macOS et d'iOS lui-même. Vous devez également maîtriser le langage de programmation Apple. La connaissance de Delphi, C++, C# ou VB.NET ne vous aidera pas beaucoup. Apple possède son propre écosystème avec ses propres langages : Objective-C et Swift. Bien entendu, la connaissance du C++ n'a jamais fait de mal à personne : les programmes et inserts basés sur celui-ci se trouvent partout, même chez Apple. Mais le plus utilisé par définition est Objective-C, tout simplement parce qu'il est apparu bien plus tôt (au milieu des années 80 du siècle dernier), alors que Swift il y a seulement deux ans (en 2014). Apple fonde de grands espoirs sur le nouveau langage et y investit massivement. Objective-C est utilisé pour prendre en charge l'ancien logiciel et le nouveau est écrit en Swift. C'est donc bien que vous connaissiez les deux.

Afin de ne pas perdre de temps, tous ces langages de programmation peuvent être appris sous la stricte supervision des professeurs sur le site.

Outils de développement

Comme vous le savez, le principal outil de développement pour macOS et avec lui iOS est l'environnement de programmation Xcode. Il comprend des outils de création d'applications pour Mac, iPhone, iPad, Apple TV, Apple Watch. Toutes les plateformes Apple. Xcode contient Interface Builder, un éditeur de code qui prend en charge tous les outils de code modernes. De plus, sans quitter Xcode, vous pouvez tester l'application ; s'il est développé pour un périphérique externe, il peut alors être exécuté dans un émulateur.

Le système comprend des émulateurs de tous les appareils, dont les nouvelles versions peuvent être téléchargées. De plus, Xcode contient des outils graphiques pour analyser les performances des applications, notamment des outils pour diagnostiquer la charge du processeur, l'utilisation du stockage (HDD, SDD et autres), la charge sur la carte graphique (du côté OpenGL).

Le 13 septembre, une nouvelle version très attendue de l'environnement de développement 8.0 a été publiée. Les versions stables peuvent être téléchargées gratuitement sur l'App Store. Les alphas et les bêtas sont distribués par abonnement développeur. La huitième version comprend : une nouvelle version du langage Swift 3, un outil d'apprentissage de Swift Playground pour iPad, une nouvelle version d'Interface Builder, devenue plus rapide et permettant de visualiser la disposition de l'application sur différentes plateformes, sans avoir besoin de déployer l'application elle-même sur le simulateur.

Xcode 8 peut être utilisé pour développer des applications pour macOS Sierra, iOS 10, watchOS 3 et tvOS 10. Tous les SDK sont disponibles. De nouvelles versions des systèmes d’exploitation ont commencé à apparaître régulièrement juste après la présentation d’Apple, qui a eu lieu début septembre.

Langage Objective-C

Rappelons brièvement les informations de base sur la langue. Objective-C est un langage de programmation orienté objet compilé utilisé pour écrire des applications pour les systèmes Apple. Il s'agit d'un surensemble ou, en d'autres termes, d'un complément au C, héritant de ce dernier syntaxe, types de données, méthodes de suivi de l'exécution du programme et y ajoutant les capacités de programmation orientée objet - une description des classes et les méthodes.

Comme en C++, en Objective-C le rôle central est joué par les objets, qui sont associés à quatre paradigmes : abstraction, encapsulation, héritage, polymorphisme. C++ est un langage fortement typé, tandis qu'Objective-C est faiblement typé ou possède un système de type de données dynamique. Comme Smalltalk, Objective-C envoie des messages aux objets. Il s'agit d'une fonctionnalité exceptionnelle des langages dynamiques car le type des objets est vérifié au moment de l'exécution plutôt qu'au moment de la compilation.

La description du langage Objective-C occupe plus d'un volume volumineux. Par conséquent, afin d'acquérir des connaissances objectives, il est pratique de suivre le cours « ». Une section entière du cours est dédiée à cette langue.

Développement d'applications iOS

À titre d'exemple, nous développerons une application très simple. Ne nous écartons pas de la tradition sacrée, saluons le monde. Cependant, compte tenu du fait que nous disposons d'une application graphique, nous allons la diversifier un peu : nous ajouterons un bouton, au clic, nous afficherons ou masquerons l'inscription « Hello, World ».

Lancez Xcode, dans la fenêtre qui apparaît, sélectionnez Créer un nouveau projet ou dans le menu principal Fichier -> Nouveau -> Projet. La fenêtre suivante vous demandera de sélectionner la plateforme cible et le type d'application.


Dans ce cas, nous nous intéressons à la plateforme iOS. Vous avez le choix entre sept types d’applications. Six d'entre eux sont des modèles pour des applications typiques du système d'exploitation iOS, contenant par défaut un ensemble différent de composants. Le septième type est le jeu.

Types d'applications

  • Le modèle d’application à vue unique est conçu pour une application simple à écran unique. Le préréglage comprend un composant View Controller, qui vous permet de personnaliser l'apparence de l'application à l'aide du concepteur de formulaires Interface Builder.
  • L'application Master Detail crée une application qui affiche une collection d'objets dans une vue tabulaire. Après en avoir sélectionné un, des informations détaillées sur cet objet s'affichent. La première vue est le maître, la seconde est le détail.
  • L'application basée sur des pages crée des applications comportant plusieurs écrans, comme les pages d'un livre. Par conséquent, les liseuses électroniques sont créées à partir de ce blanc.
  • L'application à onglets vous permet de créer des applications où chaque écran peut être commuté à tout moment, c'est-à-dire que chaque écran a son propre bouton pour l'activer, sur lequel le titre est affiché. Un exemple est iTunes.
  • Le jeu est utilisé pour créer un modèle de jeu. Vous avez le choix entre quatre frameworks pour créer un jeu : SpriteKit, SceneKit, OpenGL ES, Metal. Examinons-les brièvement.
    SpriteKit est un système de rendu 2D et d'animation de rectangles texturés - sprites. Lors de l'affichage des images, une boucle standard est utilisée, l'image est affichée une fois que tout le contenu de la scène a été traité.
    SceneKit est un framework de haut niveau pour le rendu de graphiques 3D sans OpenGL. Il prend en charge le chargement et la manipulation d'objets 3D. Il comprend : un moteur physique, un générateur de particules et une méthode de script simple.
    OpenGL ES est un standard en infographie. Permet de visualiser des scènes 2D et 3D. Permet de décrire le pipeline d'une carte vidéo : les sommets subissent une transformation, sont assemblés en primitives, qui sont rastérisées en une image bidimensionnelle et affichées à l'écran. Des shaders programmables peuvent être inclus dans le pipeline.
    Metal est une API de bas niveau qui vous permettra de tirer le meilleur parti de votre carte vidéo. Des API rationalisées ainsi que des shaders précompilés et le multithreading amènent votre jeu à de nouveaux niveaux de performances et de qualité.
  • L'application Sticker Pack est un nouveau type d'application introduit dans iOS 10 et Xcode 8. Il s'agit d'un ensemble d'images simples ou animées utilisées dans le nouvel iMessage. Il ne nécessite pas de codage pour le créer.
  • L'application iMessage est un nouveau type d'application apparu dans iOS 10 et Xcode 8. Vous permet de créer des modules complémentaires pour iMessage, par exemple pour acheter et télécharger votre pack d'autocollants. Vous pouvez également utiliser l'API iMessage pour créer votre propre analogue de cette application, notamment la lecture audio, vidéo, l'utilisation d'autocollants, etc.

Création du premier projet

Comme modèle pour notre application, nous sélectionnerons l'application à vue unique. Comme nous ne développerons pas un grand programme, les fonds prévus par cette disposition nous suffiront. Cliquez sur Suivant. Sur la page suivante de l'assistant, vous devez saisir un nom de projet, par exemple ShowLab. Dans la liste déroulante Langue, laissez la langue par défaut sélectionnée - Objective-C. Ensuite, dans la liste déroulante Appareils, laissez la sélection Universel. Ici, vous déterminez pour quel appareil (iPhone ou iPad) l'application est créée. La clause universelle vaut pour les deux. Décochons les cases Inclure les tests unitaires et Inclure les tests de l'interface utilisateur ; nous n'avons besoin d'aucun test. Suivant. Sélectionnez un dossier pour enregistrer le projet. Cliquez maintenant sur le bouton Créer.

En conséquence, une fenêtre s'ouvrira avec une liste de tous les paramètres appliqués au projet. Dans cette fenêtre, vous pouvez modifier les paramètres préalablement définis dans l'assistant : orientation, équipement cible, etc.


Nous devons d’abord créer l’interface de l’application. Pour cela, sélectionnez en un clic le fichier Main.storyboard dans la liste de gauche (si ce fichier n'est pas visible, développez le contenu du dossier ShowLab). A droite de la liste, toute la fenêtre sera occupée par Interface Builder. La disposition de l'appareil sera affichée au centre. Dans le coin inférieur droit de la fenêtre se trouve un panneau de composants. Faites glisser les composants Label et Button de là vers la mise en page. Au-dessus du panneau des composants se trouve une liste de propriétés. Si vous ne l'avez pas, cliquez sur le bouton Afficher l'inspecteur d'attributs, situé sous le titre de la fenêtre sur le côté droit de l'interface.

Sélectionnez le composant Label dans la mise en page et configurez sa propriété Text : laissez la sélection Plain dans la liste déroulante, saisissez l'inscription souhaitée dans la ligne ci-dessous, dans notre cas « Hello, World ». Si le texte ne rentre pas dans les bordures de l'étiquette, modifiez-les en faisant glisser les poignées sur les bords du composant. Pour le centraliser horizontalement, rendez-vous sur la page Inspecteur des tailles en cliquant sur le bouton Afficher l'inspecteur des tailles (à droite de Afficher l'inspecteur des attributs). Sur cette page, dans la liste déroulante Organiser, sélectionnez Centrer horizontalement dans le conteneur.

Sélectionnez maintenant le composant Button, remplacez sa propriété Text par l'étiquette souhaitée - Switch. Vous pouvez le centrer de la même manière que décrit ci-dessus.

Créer une connexion entre les éléments graphiques et le code

Dans Visual Studio (ou Delphi), un objet dans le code est créé automatiquement au moment où vous placez un composant visuel sur le formulaire. Cela ne se produit pas dans Xcode, mais cela ne pose pas de problèmes.

Ouvrez le contenu du fichier d'en-tête ViewController.h dans une fenêtre séparée en double-cliquant dessus. Ce fichier contient une déclaration d'une extension de la classe UIViewController, marquée du mot-clé @interface. Cette fonctionnalité a été ajoutée à la deuxième version d'Objective-C. Effectuez maintenant cette astuce : déplacez le curseur de la souris sur un composant - une étiquette de texte, maintenez la touche Ctrl et le bouton gauche de la souris enfoncés. Déplacez le curseur sur la fenêtre avec le code (fichier ViewController.h), une ligne bleue suivra le curseur. Relâchez la souris et la touche dans la description de l'interface ViewController.

La fenêtre de création de point de vente apparaîtra.


Il s'agit d'une propriété d'un objet qui fait référence à un autre objet (dans ce cas, un composant visuel). Vous devez saisir le nom de l'objet Outlet, par lequel vous accéderez au composant visuel, que ce soit lab. Ensuite, le type d'objet est sélectionné, il est sélectionné correctement : UILabel.

Encore plus bas dans la liste Stockage, sélectionnez le type de référence d'objet : faible ou forte. Si vous choisissez fort, alors l'objet pointé par la propriété existera aussi longtemps que la propriété pointe vers lui, auquel cas il ne sera pas automatiquement supprimé lorsqu'il n'est plus utilisé. En revanche, lorsqu'une référence faible est en vigueur, l'objet peut s'autodétruire. Alors, sélectionnez le type de lien faible et cliquez sur le bouton Connecter. En conséquence, la ligne suivante sera ajoutée au code :

@property (faible, non atomique) IBOutlet UILabel *lab;

Assurons-nous que Outlet est une propriété.

Créons maintenant un Outlet pour le bouton. L'algorithme reste le même. Uniquement pour la propriété Name, vous devez saisir un nom différent, par exemple mais. La ligne sera ajoutée au code :

@property (faible, non atomique) IBOutlet UIButton *mais ;

En conséquence, nous avons deux pointeurs vers des composants visuels : lab et mais - respectivement, une inscription et un bouton. Désormais, à l’aide de pointeurs, nous pouvons manipuler des composants dans le code.

Ensuite, vous devez créer un gestionnaire d'événements de clic sur un bouton. Pour ce faire, ouvrez le fichier d'implémentation ViewController.m dans une fenêtre séparée. Exactement de la même manière que vous avez fait glisser la ligne dans le fichier d'en-tête pour créer la prise, à partir du bouton, faites glisser la ligne dans le fichier d'implémentation et déposez-la dans le support de commande de fermeture - @end. Une fenêtre de création d'événement apparaîtra, similaire à la fenêtre de création d'un point de vente. Vous voyez la différence : un lien vers un objet est créé dans le fichier d'en-tête, une méthode est créée dans le fichier d'implémentation.


Remplissez le champ Nom, sa valeur représente le nom de la propriété - méthode. Que ce soit onClick. Laissez la valeur du champ Type par défaut - id. En Objective-C, ce type est l’ancêtre de tous les autres. Dans la liste déroulante Événement, l'événement Touch Up Inside est sélectionné par défaut, qui se produit lorsque le pointeur (souris, doigt...) est relâché sur le bouton, c'est-à-dire la dernière étape de l'appui sur le bouton. C'est ce dont nous avons besoin. Dans la liste Arguments, nous laisserons la valeur par défaut : Sender est l'objet qui a envoyé ce signal, dans notre cas ce sera toujours un bouton. Cliquez sur le bouton Connecter. En conséquence, le code suivant sera ajouté :

- (IBAction)onClick:(id)expéditeur ( )

Un moins au début signifie une méthode fermée (privée). Le mot-clé IBAction marque les événements (méthodes) des composants visuels d'Interface Builder.

Entre les parenthèses de commande, nous écrirons le code qui est exécuté lorsque le bouton est enfoncé :

Lab.hidden = !_lab.hidden;

Dans cette ligne de code nous inversons la valeur de la propriété cachée. Il est de type BOOL, qui a deux valeurs : OUI - vrai et NON - faux (un peu inhabituel pour les programmeurs Windows, où vrai et faux).

Faites attention au caractère de soulignement avant le nom de l'objet - l'étiquette (_lab). Sans cela, la compilation échouera. Le trait de soulignement est ajouté automatiquement pour les objets contenus dans d'autres objets ; autrement dit, dans ce cas, l'objet lab est contenu dans l'objet ViewController. Auparavant, il s'agissait d'une convention utilisée pour distinguer les objets déclarés comme membres d'une classe et les objets locaux. Et maintenant, c'est une règle stricte implémentée dans le compilateur du langage.

Vous pouvez maintenant compiler l'application et l'exécuter sur le simulateur. Nous avons choisi le simulateur pour iPhone 7, inclus dans Xcode 8. Le bouton compiler et exécuter est un rectangle noir et se situe dans la barre en haut de l'interface.

Après avoir compilé l'application, lancé le simulateur et chargé notre application, son interface s'affichera sur l'écran du simulateur : l'inscription « Hello, World » et le bouton Switch. Si vous appuyez sur le dernier, l'inscription disparaîtra, si vous appuyez à nouveau dessus, elle réapparaîtra.

Nous avons créé une application très simple pour comprendre l'essence du développement iOS. Vous pouvez apprendre des informations plus détaillées sur la création d'applications iOS en Objective-C grâce au cours de nos amis de GeekBrains « ». Le cours consacre deux mois à l'apprentissage de cette langue. Durant le premier mois - des sujets d'introduction, et le second - un véritable codage d'applications professionnelles.

Langage rapide

En 2014, Apple a introduit un nouveau langage de programmation : Swift. Elle est rapidement devenue la langue la plus parlée et celle qui connaît la croissance la plus rapide au monde. Il s'agit d'un langage fiable, sécurisé et intuitif permettant de développer des applications pour les systèmes d'exploitation macOS, iOS, tvOS et watchOS pour l'ensemble du parc d'appareils Apple. Swift est un langage de programmation efficace. Il est plus facile à apprendre que son prédécesseur, Objective-C, et Swift emprunte certaines de ses meilleures idées. Dans le même temps, les développeurs ont rendu les langages compatibles, c'est-à-dire qu'un programme peut contenir du code à la fois en Swift et en Objective-C. Il existe des milliards de lignes de code et des centaines de milliers de programmes existants écrits en Objective-C dans le monde, son support ne sera donc certainement pas abandonné.

Lors du développement de Swift, l'objectif était de créer le langage de programmation système le plus pratique : rapide, sûr et expressif.

L'algorithme de Swift est 2,6 fois plus rapide que le même algorithme d'Objective-C et 8,4 fois plus rapide que celui de Python. L'utilisation de Swift rend le processus de développement de programmes plus flexible et plus pratique.

En raison de son développement exponentiel, le langage Swift a été rendu accessible à la communauté open source le 3 décembre 2015. Dans le même temps, Apple surveille strictement son développement, organisant un comité pour son développement. Swift est désormais disponible non seulement sur les systèmes Apple, mais également sur Linux. Tous les outils supplémentaires pour travailler avec le langage, notamment un débogueur, une bibliothèque standard, un gestionnaire de packages, sont également gratuits et ouverts.

Cette langue est l'avenir. Vous pouvez trouver des informations plus détaillées à ce sujet dans le cours mentionné de GeekBrains « », dans lequel un mois entier est consacré à l'apprentissage de ce langage de programmation.

Magasin d'applications

En termes simples, l'App Store est un magasin de contenu pour toute la gamme d'appareils Apple. Ici, vous pouvez acheter des jeux et des applications auprès de grandes entreprises et de développeurs indépendants. Chaque développeur, quel que soit le pays dans lequel il réside, peut vendre ou distribuer gratuitement ses programmes sur cette plateforme de distribution numérique. Pour commencer, vous devez vous inscrire en tant que développeur et acheter une licence pour vendre vos applications. Il s'agit d'une redevance pour le service fourni et le développement de l'App Store.

Résultats

Nous avons développé une application simple pour le système d'exploitation mobile iOS en utilisant le système de programmation Xcode ainsi que le langage Objective-C. Nous avons testé l'application terminée sur un simulateur iPhone 7. Nous avons appris comment créer une interface utilisateur à l'aide d'Interface Builder, comment associer des éléments graphiques au code de l'application et comment créer des gestionnaires d'événements. Nous nous sommes familiarisés avec les bases d'Objective-C. De plus, nous avons attiré l'attention sur le prometteur langage Swift, utilisé pour développer des applications puissantes et sécurisées pour l'écosystème Apple.

Cependant, le matériel étudié n’est qu’un début. Afin de vous perfectionner intensivement dans le sens du codage mobile et du développement d'applications réellement commerciales, nous vous recommandons de suivre le cours « » sur le site Web de nos amis.

C'est un cours qui en vaut la peine : si vous le suivez, vous ne perdrez certainement pas votre temps. Cela commence par deux cours détaillés sur le langage Java, suivis d'un apprentissage de la programmation de base pour le système d'exploitation mobile Android. Vient ensuite un cours sur les bases de données en général et le langage SQL en particulier. Puis un cours approfondi sur le développement d’applications Android professionnelles. Après cela, le vecteur d'étude s'orientera vers les systèmes Apple : deux cours détaillés sur le langage Objective-C et un cours utile sur Swift.


Les cours magistraux sont dispensés par des professeurs professionnels possédant une vaste expérience dans le développement de logiciels. Si quelque chose n’est pas clair, vous pouvez poser une question sans tarder. En général, l'apprentissage sur GeekBrains est un processus en direct, vous pouvez communiquer, poser des questions et aider avec des réponses. Pour tester les connaissances acquises, les enseignants donnent des devoirs qui sont ensuite vérifiés. Après avoir terminé la formation, vous bénéficierez d'un stage garanti dans une entreprise informatique. Et puis tout dépend de vous, si vous vous montrez comme un spécialiste compétent, vous serez invité à travailler.

Projet spécial avec l'entreprise

Sans investissements financiers ni connaissances particulières.

Voici les instructions les plus simples pour créer une application iOS de base et l'essayer sur votre appareil. Sur cette base, vous pouvez approfondir le sujet et créer des programmes vraiment utiles.

Remarque pour les utilisateurs Windows : pour créer des applications pour iOS, vous devez installer OS X sur une machine virtuelle (VirtualBox, VMware). Ce processus n'est en aucun cas simple et nécessite des instructions distinctes.

1. Accédez à l'App Store et installez Environnement de développement XCode :

Si vous possédez déjà XCode, vous devez le mettre à jour.

2. Lancez xCode et sélectionnez l'élément de menu Déposer -> Nouveau -> Projet:

3. Sélectionnez la plateforme et le type d'application :

4. Fournissez des informations sur le projet. Veuillez noter que nous avons sélectionné le type d'application « Universel » :

5. Cliquez sur le bouton Nouveau dossier et indiquez le nom du dossier dans lequel nous stockerons les fichiers de l'application :

6. Décochez la case Créer un référentiel Git et cliquez sur le bouton Créer. En conséquence, vous devriez arriver à l'écran de démarrage pour travailler sur l'application :

7. Cliquez sur l'élément Storyboard principal dans le menu de droite, faites glisser l'élément vers le champ principal Étiquette et ajoutez-y du texte Bonjour le monde:

8. Nous devons maintenant créer une icône pour l'application. Nous sélectionnons une image et la téléchargeons sur mapappicon.com :

9. Nous attendons que l'application web ait fini de fonctionner et indiquons votre adresse e-mail pour recevoir l'archive avec des icônes :

10. Revenez à XCode et sélectionnez la section dans le menu de gauche Actifs.xassets:

11. Ouvrez l'archive à partir du courrier et faites glisser les icônes de là vers l'espace de travail XCode :

12. Sélectionnez l'un des simulateurs d'appareil, cliquez sur le bouton de lancement de l'application (triangle noir) et allumez-le sur votre Mac Mode développeur:

13. Nous essayons de recommencer. On attend qu'iOS se charge sur le simulateur :

14. Assurez-vous que l'application fonctionne :

Nous regardons l'application terminée sur l'appareil

Vous pouvez maintenant voir comment l'application fonctionne sur l'appareil. Avant de suivre les instructions, assurez-vous de disposer des dernières versions de XCode et iOS.

1. Allons à xCode -> Préférences -> Comptes et ajoutez votre identifiant Apple :

2. Connectez l'appareil iOS à l'ordinateur :

3. Sélectionnez l'appareil souhaité dans la liste et cliquez sur le bouton Démarrer. Nous attendons un moment.

4. Si un message concernant des problèmes de sécurité apparaît, sur l'appareil iOS, accédez à Paramètres -> Basique -> Gestion d'appareils et autorisez les applications du développeur à s'exécuter avec votre identifiant Apple :

5. Accédez au bureau et recherchez la nouvelle icône de l'application :

6. Lancement :

7. Déconnectez l'appareil de l'ordinateur. L'application peut désormais être utilisée.

Que faire si vous en voulez plus ?

En utilisant le piquage scientifique et Google, vous pouvez étendre la séquence d'actions ci-dessus et créer une application plus fonctionnelle. Mais vous ne pouvez l'utiliser que sur vos propres appareils.

Après tout, Apple impose des exigences très élevées aux applications. Les directives d'évaluation de l'App Store comprennent 29 points et plus d'une centaine de sous-points. Pour qu'une application s'y conforme et soit acceptée pour publication dans la boutique, le développeur a besoin d'une grande quantité de connaissances techniques.

Si vous souhaitez créer des applications iOS de haute qualité destinées à un usage de masse, vous devez apprendre !

Cet article commence une série destinée aux débutants. J'ose espérer que le niveau de présentation du matériel permettra même aux personnes peu familiarisées avec la programmation de le comprendre. Commençons notre histoire par une petite digression lyrique. Les applications pour iPhone et iPad sont écrites en Objective-C. Ce langage a été largement utilisé chez NeXT et est arrivé chez Apple après le retour de Steve Jobs. Actuellement, Objective-C est le langage principal pour développer des applications OS X et iOS.

Pour commencer à programmer pour iOS, vous aurez besoin d'un Mac Intel et de l'environnement de développement XCode. Si vous n'avez pas de Mac, cela n'a pas d'importance. Peut-être que l'une des méthodes décrites pour résoudre ce problème vous conviendra. Nous nous concentrerons sur XCode 4 et iOS5.

Installation de XCode

Tout d'abord, nous devrons nous inscrire sur le site de développement d'Apple. Suivez le lien et cliquez sur s'inscrire. Cliquez sur le bouton Commencer et terminez le processus d'inscription. Tout y est assez simple, je ne m'attarderai donc pas sur ce point. Après votre inscription, vous recevrez un e-mail avec votre identifiant Apple. Revenez à la page des développeurs Apple et utilisez-la pour accéder à la zone sécurisée. Dans la section DevCenters, cliquez sur le lien iOS. Comme vous pouvez le constater, Apple vous propose une tonne de documentation, de sources et de tutoriels. Cette page contient tout ce dont vous avez besoin pour démarrer le développement iOS. Tout en bas se trouve un bouton Télécharger Xcode sur lequel vous devez cliquer. Une fois téléchargé, installez Xcode sur votre Mac.

Apprendre à connaître l'interface XCode 4

Pour lancer Xcode, accédez à votre lecteur principal et cliquez sur développeur>Applications.

Une fois Xcode lancé, sélectionnez Fichier> Nouveau projet, puis Application à vue unique et entrez HelloWorld comme nom du produit. En conséquence, vous devriez voir quelque chose comme ceci

Tout votre code et vos ressources sont organisés dans des dossiers spéciaux, situés sur le côté gauche de la fenêtre Xcode. Le panneau s'appelle "Project Navigator" et contient tous les éléments de votre programme. Les fichiers de code source ont l'extension « .h » et « .m ». Si vous cliquez sur un tel fichier, un éditeur avec le code s'ouvrira sur le côté droit de Xcode.

Ne nous attardons pas sur le code pour l'instant. Nous reviendrons sur cette question un peu plus tard. Si vous regardez en haut de l'écran, vous verrez plusieurs boutons liés à votre projet. Étudions ce panneau plus en détail.

Le bouton "Exécuter" démarre votre projet. Vous pouvez tester votre application et vous assurer qu’elle se comporte réellement comme vous l’attendez. Le bouton "Tâches" arrête l'application en cours d'exécution.

À l'aide du bouton Schemr, vous pouvez sélectionner la plate-forme cible sur laquelle votre application s'exécutera. Ici, vous pouvez choisir un simulateur et déboguer le programme sur votre ordinateur, ou l'exécuter sur votre iPhone (appareil iOS) si vous avez payé les frais de 99 $. Le seul avantage qu'offre ce paiement est la possibilité d'exécuter le programme sur un appareil réel et de le publier dans l'App Store. Je ne vous recommanderais pas de dépenser de l’argent tant que vous n’avez pas préparé un programme normal.

Les points d'arrêt sont une chose très utile. À l'aide de ce bouton, vous pouvez marquer des lignes dans le code source, et lorsque le programme atteint la ligne marquée pendant l'exécution, le programme se mettra en pause et vous pourrez visualiser l'état des variables. Il s’agit d’un outil très puissant et largement utilisé.

Cliquez sur le bouton "Exécuter". Vous verrez une fenêtre d'émulateur avec votre projet. Comme vous pouvez le constater, même s’il ne brille pas par sa fonctionnalité, ce n’est qu’un blanc.

Programmation pour iPhone - La première étape

Assez tourné autour du pot, codons quelque chose. La fenêtre Project Navigator contient des fichiers de code source. Cliquez sur un fichier .m. Veuillez noter que certaines lignes sont de couleur verte - ce sont des commentaires qui font office d'aide-mémoire. Afin de ne pas se tromper dans le code, le programmeur peut se laisser des indices et des explications. Pour désigner les commentaires en langage C, la combinaison de barres obliques // est utilisée. Tout ce qui se trouve sur la ligne à droite de ces caractères est considéré comme un commentaire. Si vous souhaitez rédiger un commentaire multiligne, vous pouvez utiliser les combinaisons /* et */ pour indiquer le début et la fin d'un commentaire multiligne.

Avant de commencer à coder l'application, je dois vous expliquer quelques concepts avec mes doigts : POO (Object Oriented Programming), MVC (Modal View Controller), fichiers ".h" et ".m". Donc... la programmation orientée objet implique de diviser tout le code en soi-disant objets, dans lesquels les données et les commandes qui les traitent sont stockées. Un objet en Objective-C se compose de deux fichiers .h et .m. Le fichier.h est appelé en-tête ; il contient un « croquis » de l'objet - toutes les données et noms des blocs de commande (méthodes) contenus dans l'objet sont répertoriés. Le fichier .m est appelé fichier d'implémentation et décrit en détail tout ce qui est indiqué dans l'en-tête ; c'est là que toute la logique du programme est programmée.

MVC (Model View Controller) est quelque chose qui sépare le code et l'interface que l'utilisateur voit. Le modèle correspond aux données utilisateur et aux données que vous montrez à l'utilisateur. View est l'interface utilisateur et le code qui assurent la communication entre View et Model. Le concept de MVC peut vous paraître trop abscons maintenant, mais avec le temps vous verrez que cette approche simplifie vraiment la vie d'un programmeur. Ce concept implique l'ordre de travail suivant : le programmeur crée séparément un modèle de conception d'application, où il place tous les boutons, champs de texte et autres absurdités importantes, et écrit les programmes séparément. Ensuite, il montre à XCode quelle méthode (bloc de code) doit être appelée en réponse à une action particulière de l'utilisateur et quel nom porte tel ou tel élément de contrôle dans le texte du programme.

Nous développons une conception de programme pour iPhone

Commençons par créer notre application en développant le design. Dans la fenêtre du navigateur de projet, cliquez sur MainStoryboard_iPhone.storyboard. En conséquence, XCode lancera l'éditeur d'interface.

Dans le coin inférieur droit, vous voyez une liste d'objets (Bibliothèque) pouvant être utilisés dans votre interface ; dans la partie centrale, la fenêtre Vue est affichée, qui représente la disposition de l'interface de votre programme. La fenêtre supérieure droite comporte plusieurs modes, qui sont commutés à l'aide des icônes situées au-dessus de la fenêtre. La figure montre le mode Inspecteur d'attributs. Ici, vous pouvez modifier divers attributs des objets qui composent votre interface.

Déplaçons un objet Label de la fenêtre Bibliothèque vers notre disposition de fenêtre. À l'aide de la souris, nous modifierons la taille de l'objet, comme indiqué dans l'écran ci-dessous. L'inspecteur affiche les propriétés de l'objet Label. Centreons le texte en cliquant sur l'icône correspondante dans la ligne Mise en page.

Supprimons le texte dans le champ Texte (le mot Étiquette y a été écrit) et y entrons « Une chaîne ».

De même, ajoutez un bouton à la mise en page (objet Button)

Nous avons donc développé le design de notre application. Rien de compliqué, vous pouvez cliquer sur le bouton Exécuter et regarder le travail de votre programme dans la fenêtre de l'émulateur.

Commençons à coder

Nous avons donc deux composants visuels placés sur la mise en page. Nous voulons que le texte de la ligne change lorsque vous cliquez sur le bouton. Pour mettre en œuvre cette idée, nous devrons accéder à une ligne (objet Label) à partir du code du programme et appeler une méthode (bloc de code) lorsque le bouton est enfoncé.

Cliquez sur le fichier "ViewController.h" dans le panneau de gauche. Nous allons décrire IBOutlet. IBOutlet connecte notre code à un objet visuel, tel qu'une étiquette ou un bouton. Modifiez le code dans le fichier ViewController.h pour qu'il ressemble à

#importer @ interface ViewController : UIViewController (étiquette IBOutlet UILabel* ; // donne à notre chaîne le nom Label } //c'est l'en-tête de la méthode qui sera //appelé en réponse à un clic sur un bouton- Bouton (IBAction)Cliquez : (id) expéditeur ; @fin

C'est tout ce que nous devons écrire dans le fichier d'en-tête. IBAction vous permet de connecter une méthode à un élément de l'interface utilisateur, par exemple, en réponse à un clic sur un bouton, le code du programme que nous avons écrit sera appelé.

Nous avons donc dit que nous appellerions la chaîne avec l'étiquette de texte et que la méthode buttonClick serait appelée en réponse à l'action de l'utilisateur. Écrivons le code de cette méthode. Passons au fichier ViewController.m dans l'arborescence du projet. Après la ligne @mise en œuvre... ajoutez le code

- Bouton (IBAction)Cliquez : (id) expéditeur (label. text= @ ”Bonjour de Mobilab. ru”; )

Notez que si vous avez copié ce code, vous obtiendrez probablement une erreur lorsque vous exécuterez le programme. Le problème vient probablement des guillemets. Supprimez-les et saisissez-les depuis le clavier.

Voyons ce que nous voyons ici. Nous accédons à l'objet étiquette - une ligne de texte à l'écran. Puisqu'il s'agit d'un objet, il contient diverses données (qui en POO sont également appelées propriétés de l'objet) et des méthodes accessibles en plaçant un point après le nom de l'objet. La propriété text est responsable du texte contenu dans une chaîne.

Nous avons terminé le codage, il ne reste plus qu'à associer l'étiquette et le boutonClick aux éléments à l'intérieur de la mise en page du design. Cliquez sur la ligne MainStoryboard_iPhone.storyboard dans la fenêtre Project Navigator pour passer au concepteur d'interface. Cliquez ensuite sur l'icône « Afficher le contrôleur ». Passez en mode connexions dans l'inspecteur (dernière icône). Regardez, la ligne d'étiquette est apparue dans la zone Outlets de l'inspecteur. Il s'agit du nom que nous avons spécifié dans le fichier ViewController.h. Cliquez sur le cercle situé à droite de la ligne d'étiquette et faites-le glisser sur la ligne Un peu de texte dans la mise en page.

Faites une opération similaire avec le bouton. Cliquez sur le bouton avec un cercle dans le groupe « Actions reçues », puis cliquez sur le boutonCliquez et faites-le glisser sur le bouton dans la mise en page. En conséquence, un menu contextuel s'ouvrira, avec lequel vous pourrez sélectionner quand appeler la méthode. Vous pouvez par exemple appeler le code lorsque l'utilisateur appuie sur le bouton, ou lorsqu'il le relâche. Il existe de nombreuses options. Sélectionnez « Retoucher l'intérieur ».

C'est tout! Enregistrez le projet et cliquez sur le bouton "Exécuter" sur le panneau supérieur. Si vous avez tout fait correctement, l'émulateur avec votre programme devrait démarrer. Cliquez sur le bouton. Le texte de la ligne devrait changer. C'est tout. La première leçon est terminée

Êtes-vous déjà en train d’écrire des applications pour iOS ? Ensuite, vous devez être conscient des différentes options de développement. Et si l'idée de développer pour iOS vient d'apparaître dans votre tête, alors les questions suivantes devraient suivre :

  • quelle langue faut-il apprendre ?
  • où trouver du matériel pour étudier ?
  • as-tu besoin d'un mac ?
  • Avez-vous besoin d'un appareil iOS ?
  • Quel éditeur est adapté pour écrire du code ?

L'article répondra à ces questions et vous aidera à atteindre votre objectif.

Le système d'exploitation iOS a été lancé par Apple en 2007. Cela ne se limite pas à l'iPhone et à l'iPad, mais je parlerai du développement d'applications uniquement pour ces appareils. L'article est divisé en plusieurs parties :

  1. Développement d'applications natives.
  2. Langages de programmation pour créer des applications iOS.
  3. Environnement de développement.
  4. Développement d'applications et de jeux iOS avec réalité augmentée en utilisant le framework ARKit.
  5. Développement de jeux utilisant le framework SpriteKit.

En plus du développement natif, il existe également le développement multiplateforme, lorsque l'application est écrite immédiatement pour iOS et Android dans un langage différent du langage natif. Nous en reparlerons une autre fois, mais vous pouvez satisfaire votre curiosité dès maintenant et le lire, écrit pour Live Typing.

Développement d'applications natives

Le processus de développement d'une application native consiste à écrire un programme dans l'un des principaux langages de la plateforme iOS : Objective-C ou Swift. Cette voie a été créée par Apple et implique de suivre toutes ses idées. Apple fournit aux développeurs les dernières versions du SDK (kit de développement logiciel), de la documentation et de l'environnement de développement Xcode.

Avantages du développement natif :

  • l'application est optimisée pour la plateforme iOS, ce qui signifie qu'elle fonctionnera rapidement et correctement ;
  • l'application répond instantanément aux clics, il n'y a pas de retard dans l'animation ou lors du défilement du contenu ;
  • accès clair et facile au matériel des appareils - caméra, microphone, accéléromètre, géolocalisation, carnet d'adresses, lecteur, etc. La fonctionnalité de l'application peut être basée sur ces capacités et sur d'autres capacités de l'appareil ;
  • interface native de la plateforme. Les applications natives fonctionnent généralement avec des éléments d'interface « plateforme » : les menus, la navigation, les formulaires et tous les autres éléments de conception sont extraits du système d'exploitation et sont donc familiers et compréhensibles pour l'utilisateur ;
  • À chaque mise à jour iOS, la syntaxe du langage Objective-C reste pratiquement inchangée, la prise en charge de l'application est donc presque indolore - seule une petite quantité de code devra être modifiée ou réécrite.

Défauts:

  • Prise en charge rapide des applications. Les mises à jour régulières des versions de la plateforme iOS obligent à mettre à jour le code, mais avec l'arrivée de la cinquième version de Swift, Apple promet de faciliter ce processus ;
  • la plupart des projets actuels sont écrits en Objective-C. Chaque année, il devient de plus en plus difficile de trouver un programmeur prêt à y écrire, et de nombreuses entreprises refusent de réécrire des projets dans Swift, car il s'agit d'un processus énorme et incroyablement long.

Pour les clients des studios de développement, la question de savoir pour quel type de développement payer (natif ou multiplateforme) est également pertinente. Le développement multiplateforme peut être recommandé lorsque le budget est limité, que vous devez connaître la demande pour une application mobile ou si le client dispose de son propre programmeur Web. Dans d’autres cas, il vaut mieux faire un choix en faveur du développement natif. Live Typing peut vous aider dans les deux cas. , si vous comptez commencer à travailler sur votre application mobile pour iOS, nous sommes prêts à discuter de tout.

Dans quelle langue les applications iOS sont-elles écrites ?

Les développeurs Apple ont proposé deux options :

  • Objectif c Un vétéran avec une longue histoire, qui passe progressivement au second plan ;
  • Rapide. Très jeune et gagne rapidement en popularité parmi les développeurs.

Les deux langages appartiennent à la programmation orientée objet (POO) et mettent en œuvre avec succès ses principaux paradigmes : l'héritage, le polymorphisme, l'encapsulation et l'abstraction. En termes simples, la POO est un style de codage qui permet à un développeur de regrouper des tâches similaires en classes. Le code suit le principe DRY (ne vous répétez pas) et devient facile à maintenir.

Objectif c

Un langage de programmation créé au début des années 1980 du siècle dernier en croisant C (C) avec Smalltalk, alors populaire (communication avec des objets via des messages). Objective-C était initialement perçu comme un simple complément au langage C, modifiant certaines de ses structures syntaxiques, mais après que la société Next Step ait pris les licences, puis comme successeur d'Apple, Objective-C est devenu l'un des plus langages populaires pour le développement d'applications iOS. Par conséquent, de nombreux types de données en Objective-C héritent du préfixe NS (Next Step). Il s'agit du principal langage utilisé par Apple, dont la connaissance permet d'écrire pour n'importe quelle plateforme Apple, y compris macOS.

Avantages:

  • haut degré de prise en charge du code : à chaque mise à jour, les modifications dans Objective-C sont minimes ;
  • une grande quantité de documentation, de littérature technique et une immense communauté. Apple fournit et met régulièrement à jour des livres et des ressources officiels. Vous pouvez découvrir exactement de quelles connaissances un développeur iOS a besoin ;
  • une transition rapide depuis l'un des langages de la famille C. Objective-C est une extension du langage C. Cela signifie que tout code en C est également du code correct pour Objective-C, il vous suffit de vous habituer au syntaxe;
  • La compatibilité Objective-C au sein des projets écrits en Swift vous permettra d'utiliser deux langages simultanément.

Inconvénients :

  • Si vous n'avez jamais rencontré de programmation et avez décidé de commencer immédiatement avec Objective-C, il peut être difficile de comprendre les principes de la POO et la syntaxe encombrée. Les difficultés disparaîtront au fur et à mesure que la formation progresse ;
  • faible lisibilité du code : au début de l’apprentissage la syntaxe semblera compliquée ;
  • le système de type de données dynamique, qui est également un plus, implique la possibilité d'erreurs apparaissant ou manquantes même lors de la compilation. En particulier, les fautes de frappe peuvent retarder le processus ;
  • faibles performances par rapport au langage Swift ;
  • l'interaction avec les fichiers Swift s'effectue à l'aide d'un « pont » (un adaptateur conditionnel qui traduit le code Swift au format Objective-C), ce qui ralentit considérablement le processus de construction.

Exemples d'applications développées par notre équipe en Objective-C :

  • — boutique en ligne de parfums et cosmétiques ;
  • — une application destinée aux jeunes parents et aux femmes enceintes qui nécessitent une consultation médicale à tout moment de la journée ;
  • — boutique de vêtements en ligne.

Rapide



Un langage de programmation généraliste jeune, puissant et ouvert. Officiellement introduit par Apple le 2 juin 2014. Il combine toutes les meilleures fonctionnalités du C et d'Objective-C, mais n'a pas les limitations de ce dernier imposées par souci de compatibilité avec C. Swift utilise un typage d'objet strict, ce qui réduit le nombre d'erreurs même au stade du codage. Swift ajoute également des fonctionnalités modernes telles que des génériques, des fermetures, des valeurs de retour multiples, etc., faisant de la création d'applications une expérience plus flexible et plus amusante. La base du nouveau langage de programmation était le compilateur, le débogueur et les frameworks existants.

Swift semblera familier aux développeurs Objective-C. Il combine la lisibilité des paramètres nommés avec la puissance du modèle objet dynamique d'Objective-C.

Avantages:

  • vitesse. Désormais, le langage est presque au même niveau que le C++, et Cupertino promet que ce n'est pas la limite ;
  • navigation simplifiée dans les fichiers du projet. Contrairement à Objective-C, qui crée deux fichiers pour la déclaration et l'implémentation, Swift se contente d'un seul. De plus, les noms de méthodes et les commentaires entre les fichiers sont automatiquement synchronisés ;
  • facile à lire, puisque le langage n'est pas construit en C. Par exemple, il n'est pas nécessaire de mettre un point-virgule à la fin de la ligne et d'écrire des parenthèses pour entourer l'expression à l'intérieur de if/else. Pas de crochets, Swift ressemble à l'anglais ordinaire, est beaucoup plus propre et a une syntaxe simplifiée ;
  • brièveté. La quantité de code avec Swift devient beaucoup plus petite. Par exemple, pour ajouter deux lignes, vous pouvez utiliser l'opérateur « + » ;
  • b Ô De plus grandes capacités par rapport à Objective-C. Par exemple, les génériques (modèles universels). Le code générique vous permet d’écrire des fonctions et des types flexibles et polyvalents pouvant fonctionner avec n’importe quel autre type. Vous pouvez écrire du code qui n'est pas répétitif et exprime son contenu sous une forme abstraite ;
  • Une interaction complète avec le code écrit en Objective-C vous permettra d'utiliser deux langages simultanément ;
  • sécurité accrue. Swift, contrairement à Objective-C, est fortement typé, c'est-à-dire que lors de la déclaration de paramètres nommés, vous devez spécifier explicitement le type de données, sinon le compilateur générera une erreur lors de l'exécution du code. Cela facilitera le processus de correction des bogues, puisque vous pourrez résoudre le problème immédiatement ;
  • prise en charge des bibliothèques dynamiques. L'un des changements importants apportés à Swift est la transition des bibliothèques statiques vers des bibliothèques dynamiques, qui sont essentiellement des morceaux de code exécutables. Ils rejoignent l'application et « se lient » avec les nouvelles versions du langage, ce qui permet au programme de fonctionner de manière stable.

Inconvénients :

  • Swift évolue et change constamment. Par exemple, un appel de méthode peut changer après une mise à jour. Heureusement, Apple a construit ce processus de manière à ce que le code écrit sur les versions antérieures ne soit pas brisé. Vous ne verrez qu'un avertissement indiquant que votre code est écrit sur une ancienne version, et l'éditeur vous proposera de passer à une version plus récente et vous aidera à terminer ce processus ligne par ligne ;
  • l'interaction avec les fichiers Objective-C se produit à l'aide d'un « pont », ce qui ralentit considérablement le processus de construction.

B Ô La plupart des projets de notre entreprise sont écrits en Swift. Voici quelques exemples:

  • — demande d'ouverture d'une boutique de parfums et cosmétiques ;
  • — service d'achat de billets de cinéma;
  • — application de magasin de vêtements ;
  • — une application avec des articles sur la sécurité de l'information.

C++ (C+)



Un langage de programmation à usage général compilé et typé statiquement. Prend en charge les paradigmes de programmation tels que la programmation procédurale, la programmation orientée objet et la programmation générique.

Le C++ est supporté par iOS, mais il y a un « mais » : l’intégralité de l’application ne peut pas y être écrite. Le C++ convient à la résolution de problèmes logiques ou de modules d'application entiers, ainsi qu'à l'écriture d'algorithmes complexes, mais l'interface utilisateur doit être écrite en Objective-C ou Swift.

Une option pour une telle interaction consiste à utiliser le dialecte Objective-C++, une sorte de combinaison d’Objective-C et de C++. Pourquoi les mélanger ? Par exemple, la meilleure bibliothèque pour le problème actuel a été écrite en C++, parfois la solution au problème pourrait être faite de manière plus concise en C++, ou il est nécessaire d'appeler des fonctions Objective-C à partir d'un projet C++. Un exemple courant est le portage d’un jeu ou d’un moteur sur les plateformes Apple.

Enfin, vous pouvez utiliser C++ pour améliorer les performances. La flexibilité des messages d'Objective-C impose une certaine surcharge par rapport à la plupart des implémentations de fonctions virtuelles C++. Les objets Objective-C n'ont pas de fonctions virtuelles rapides C++ équivalentes. Cela peut être un facteur d’optimisation important.

Quelle langue dois-je choisir ?

Objective-C cède peu à peu la place au jeune Swift, qu'Apple popularise par tous les moyens. L'année dernière, en 2018, Objective-C s'est classé moins bien que Swift dans le classement Tiobe. Sur la base de ces statistiques et des avantages ci-dessus du langage Swift, je le recommanderais.

Mais vous ne pourrez pas ne pas connaître Objective-C du tout, puisque lors du développement d’applications pour iOS vous le rencontrerez, et vous devrez le lire et le comprendre.

Quant au langage C++, le connaître est une compétence utile, mais uniquement en option, c’est donc à vous de décider.

Où puis-je me procurer du matériel pour étudier ?

Matériel sur le langage Swift :

Il convient de noter qu'en plus des cours vidéo que j'ai recommandés, un grand nombre de supports de formation payants et gratuits sur Swift et Objective-C sont disponibles sur Youtube et sur des portails de formation spéciaux tels que Udemy et SwiftBook.

Matériel sur le langage C++

  • Langage de programmation C++. Un manuel utilisé dans la plupart des universités ;
  • cours vidéo gratuit sur C++ de la chaîne #CodeSimple.

Sources d'informations actuelles

Pour suivre les tendances, c'est une bonne idée de consulter la liste suivante de grandes entreprises et de grandes personnalités, et de les suivre sur Twitter, sur des blogs, etc. :

  • raywenderlich.com. Une source inépuisable de tutoriels gratuits. Convient aussi bien aux débutants qu'aux professionnels qui ont besoin de comprendre rapidement le fonctionnement d'un nouveau framework ;
  • NSHipster. Un blog du concepteur et développeur du service cloud Heroku, qu'il n'entretient plus seul. Les frameworks, les objets framework, Objective-C, Swift, Xcode, les projets open source sont importants - il y a des articles utiles sur tout ici ;
  • Natacha le robot. Excellent blog du développeur iOS Natasha Murashev. Un must pour tous ceux qui comprennent Swift et plus encore ;
  • Blog du développeur iOS de Plausible Labs, Mike Ash. Ce qui est dit ici nécessite des connaissances un peu plus profondes que les bases ;
  • Petites bouchées de cacao. Un blog avec toutes sortes de guides utiles. Les développeurs débutants et expérimentés l’apprécieront pour la brièveté de ses articles et l’étendue des problématiques abordées ;
  • Développeur iOS hebdomadaire. Un aperçu de l'actualité du monde du développement mobile iOS. Arrive par courrier le vendredi. Organisé par Dave Verver;
  • Github de la célèbre société Rambler&Co. Contient beaucoup de choses intéressantes provenant de l’Open source. Aussi leur espace interne et leur blog ;
  • Blog sur le développement iOS sur Habrahabr ;
  • Site Web iosgoodreads.ru et chaîne Telegram de Rambler. Les articles, vidéos et actualités les plus intéressants liés au développement iOS.

Environnement de développement d'applications iOS

Les environnements de développement d'applications iOS les plus populaires, ou IDE (Integrated Development Environments), sont Xcode d'Apple et AppCode de JetBrains.

Xcode



Un éditeur rapide, équipé d'un ensemble complet d'outils de développement pour iOS, macOS, etc. Téléchargé gratuitement depuis l'App Store.

Avantages:

  • IB (Constructeur d'interfaces). IB est une application de boîte à outils de développement GUI intégrée à Xcode. Le processus de travail rappelle la création d'un dessin « sur toile ». Toute la mise en page peut être réalisée dans IB, puis les éléments visuels peuvent être liés à un fichier d'implémentation, qui décrit toute la logique pour interagir avec eux.

L'avantage d'Interface Builder est la mise en page visuelle, la personnalisation des styles, de l'arrière-plan, des polices, etc., mais l'inconvénient est, par exemple, le travail avec l'animation, qui ne peut être réalisé qu'avec du code.

  • simulateur. Fournit un ensemble complet d'appareils iOS sur lesquels vous pouvez exécuter et tester votre application ;
  • débogueur Savoir analyser la partie visuelle élément par élément pour trouver des erreurs dans la mise en page, aidera également à détecter un bug et à résoudre le problème des fuites de mémoire. En plus de cela, le débogueur peut effectuer toutes ces opérations et tests d'interface utilisateur sans fil ;
  • système de contrôle de version intégré dans GitHub. En plus des fonctions de branchement standard, le mode écran partagé vous permet de visualiser les modifications dans diverses « branches » ;
  • fonction de simulation de géolocalisation. Indispensable lorsque l'on travaille avec une carte. Il dispose d’un ensemble de villes « câblées », dont la liste peut être étendue ;
  • contient Swift Playground, un « bac à sable » qui vous permet de tester rapidement un nouvel algorithme ou une routine graphique (par exemple, quelques lignes de code) sans créer une application entière ;
  • peut créer l'application directement sur un appareil iOS ;
  • prise en charge du thème sombre macOS.

Inconvénients :

  • instable. Pendant le fonctionnement, il peut se fermer spontanément en cas d'erreur. Le projet ne sera en aucun cas affecté et les dernières modifications du code ne seront pas perdues. Redémarrez simplement Xcode et continuez à travailler là où vous vous êtes arrêté ;
  • La saisie semi-automatique ne fonctionne souvent pas (la fonction de compléter le texte en fonction de la partie saisie).

Code d'application



Comme Xcode, il contient un ensemble complet d'outils nécessaires pour un travail efficace et pratique avec Objective-C, Swift, C++ et est 100 % compatible avec Xcode.

Avantages:

  • écurie Il n'y a pas de fermetures soudaines comme dans Xcode ;
  • l'auto-complétion ne tombe pas et fonctionne plus rapidement que dans Xcode ;
  • intégration avec des trackers de bogues/problèmes tels que JIRA, YouTrack, Lighthouse, Pivotal Tracker, GitHub, Redmine, etc. ;
  • des descriptions plus détaillées des erreurs et des avertissements ;
  • peut créer une application directement sur un appareil iOS, tout comme Xcode.

Inconvénients :

  • vous avez toujours besoin de Xcode pour créer l'application ;
  • pas de constructeur d'interface. L'ouverture d'un fichier IB à partir d'AppCode se produit dans Xcode ;
  • pas de débogueur visuel et pas de débogage sans fil ;
  • pas de terrain de jeu Swift ;
  • L'application se lance sur le simulateur Xcode ;
  • AppCode est un produit payant, 30 jours sont accordés pour un essai gratuit. Au moment de la rédaction, les prix sont les suivants : pour la première année d'utilisation, vous devrez payer 199 $, la seconde - 154 $, les années suivantes - 119 $ (données extraites du site officiel) ;
  • La mise à jour linguistique arrive avec un certain retard. Dans Xcode, vous recevrez la dernière version lors des tests bêta.

En d’autres termes, même si vous choisissez AppCode comme IDE principal, vous avez toujours besoin de Xcode pour développer pleinement des applications mobiles sur iOS.

Avez-vous besoin d'un Mac ?

Oui. Pour le développement, vous avez besoin de l'IDE Xcode (Integrated Development Environment). Vous ne pouvez installer Xcode que sur Mac. Choisissez parmi ces options : MacBookPro/Air, iMac, MacPro ou Mac mini (l'option la plus économique). Vous n'êtes pas obligé d'en acheter un nouveau, mais pour vous assurer que votre Mac peut prendre en charge la dernière version de macOS pendant au moins deux ans, je vous recommande d'en acheter un qui n'a pas plus de cinq ans.

Une option à examiner consiste à installer une machine virtuelle sur votre PC en utilisant, par exemple, VirtualBox. L'article Installer MacOS sur VirtualBox décrit en détail comment procéder. Cela fonctionnera lentement, mais pour un « démarrage rapide », c'est tout à fait approprié.

Avez-vous besoin d'un appareil iOS ?

Pas nécessaire. L'IDE Xcode d'Apple comprend un simulateur de périphérique. Par exemple, vous pouvez choisir l'iPhone XR et vérifier les résultats de votre travail en direct. Malheureusement, le simulateur ne remplacera pas complètement l'appareil réel (par exemple, il ne dispose ni de caméra ni d'accéléromètre).

Développer des applications et des jeux de réalité augmentée à l'aide d'ARKit



ARKit est un framework développé par Apple pour travailler avec AR. Qu’est-ce que la RA et comment ça marche ? La RA est une technologie capable de scanner l'espace environnant et d'intégrer des objets virtuels dans la vie réelle de la manière la plus fiable possible. Ces mêmes éléments virtuels peuvent afficher des appareils spéciaux prenant en charge cette technologie :

  • smartphones et tablettes. Dans notre cas, il s'agit de l'iPhone et de l'iPad ;
  • Casques et lunettes AR. L'un des derniers développements concerne les lunettes Magic Leap ;
  • des ordinateurs.

L’espace est numérisé à l’aide de la caméra de l’appareil. Que peut faire une application AR ? Par exemple, une boutique de baskets en ligne, où, en plus d'acheter, vous avez la possibilité de scanner votre pied et d'« essayer » le modèle que vous aimez, ainsi, sur l'écran de votre iPhone ou iPad, votre pied portera la sneaker sélectionnée. . Un autre exemple d'utilisation de la RA est une application d'IKEA

Tutoriels SpriteKit :

Important! Le développement de jeux iOS ne se limite pas au framework SpriteKit. Il existe un grand nombre de moteurs pour créer des jeux 2D et 3D. Les plus populaires d'entre eux sont Unity et Unreal. Et pour créer le jeu d'arcade hardcore Trigono, les développeurs de Live Typing ont utilisé le moteur OpenFL avec des modifications personnalisées.

Conclusion

Le langage de développement mobile le plus récent pour iOS en 2019 est Swift. La raison n'est pas seulement due à sa rapidité et à sa syntaxe concise, mais aussi au fait qu'il devient de facto un standard de développement et reçoit de plus en plus de soutien de la part des développeurs Apple.

Cela n'élimine pas la nécessité de se familiariser avec Objective-C : des bibliothèques utiles ont été créées dans ce langage, et la prise en charge de projets anciens, mais volumineux et intéressants, est bien rémunérée.

Comme vous pouvez le constater, le développement iOS est approfondi et comprendre toute sa profondeur augmentera votre valeur sur le marché des développeurs. J'espère que cet article a répondu à toutes les questions possibles et que vous le partagerez avec vos amis. Sinon, laissez des commentaires et j'y répondrai.

Et si vous êtes sûr d'être prêt à travailler sur une application iOS, nous vous contacterons pour une consultation gratuite.