Comment devenir développeur iOS - Le guide ultime (2024)

développeur ios

Dans cet article, nous allons passer en revue ce qu'il faut, selon nous, pour devenir développeur iOS. 

Nous destinons ce guide directement à deux groupes de personnes :

  • Débutants absolus en Swift (Swift est le langage utilisé pour coder les applications iOS) – personnes qui n'ont jamais rien créé pour iOS auparavant.
  • Et les personnes qui ont déjà essayé d’apprendre Swift mais qui n’ont jamais vraiment atteint leur objectif d’obtenir un emploi à temps plein.

Quel que soit votre niveau actuel, l'objectif ici est le même : vous permettre de postuler à un poste de développeur iOS junior dans une entreprise.

Nous examinerons les compétences que vous devriez acquérir, les cours que vous pouvez suivre, comment vous connecter à la communauté, les erreurs courantes commises par les gens et bien plus encore. 

Mieux encore, tout ce dont nous discuterons sera entièrement gratuit.

Sérieusement, beaucoup trop de gens pensent que dépenser beaucoup d'argent les mettra sur la voie rapide vers l'emploi de leurs rêves, alors que les facteurs les plus importants sont la détermination et la volonté.

Cet article est divisé en sept sections :

  1. Compétences de base que vous devez posséder pour obtenir un emploi.
  2. Des compétences agréables à posséder pour vous démarquer de la foule
  3. Erreurs courantes que les gens commettent lorsqu'ils tentent d'apprendre.
  4. Les nombreuses ressources gratuites disponibles pour vous aider à apprendre Swift.
  5. Comment entrer en contact avec la communauté de développement iOS.
  6. Une estimation du temps qu'il vous faudra pour atteindre votre objectif.
  7. Préparez-vous à postuler pour votre premier emploi.

Lisez l’intégralité de l’article ou passez directement à l’information que vous recherchez, c’est entièrement à vous de décider !

Les compétences fondamentales requises pour devenir développeur iOS

Qu'est-ce qu'un développeur iOS ?

Un développeur iOS travaille sur des applications pour le Apple gamme de téléphones. iOS est spécifiquement destiné à l'iPhone et vous travaillerez principalement avec des jeux et des applications pour ce téléphone.

Vous pourriez être impliqué dans :

  • Conception et planification d'applications
  • Écrire du code et développer des applications
  • Effectuer la maintenance sur les applications ou les serveurs d'applications
  • Identifier les problèmes et les résoudre
  • Développer des mises à jour et des améliorations
  • Travailler avec des équipes tout au long du cycle de vie des applications

Même si vous vous spécialisez dans un produit particulier, de nombreuses tâches sont impliquées dans une journée moyenne.

Décomposons les cinq éléments en plus petits morceaux.

Compétences de base requises pour devenir développeur iOS

Quel est le strict minimum absolu de compétences requises pour décrocher un emploi dans le développement iOS ? 

Nous pensons que vous aurez besoin de cinq compétences essentielles en tant que développeur iOS :

  1. Programmation rapide
  2. SwiftUI 
  3. Networking
  4. Travailler avec des données
  5. Gestion de version

Décomposons les cinq éléments en plus petits morceaux.

1. Apprentissage rapide

Swift est le premier sur la liste. C'est Applelangage de programmation de base de . Il n'a aucun concept d'affichage d'informations sur l'écran d'un iPhone ou de téléchargement de données à partir d'Internet. 

C'est simplement un langage comme JavaScript ou Python. Il s'agit simplement de code pur que vous utilisez pour créer des variables, écrire des fonctions, etc.

Swift n'a que quelques années et utilise presque toutes les fonctionnalités de pointe disponibles. 

Cela signifie que vous pouvez éviter tous les anciens comportements courants dans les langages plus anciens comme C++ et Java.

Cela signifie également qu’il dispose de nombreuses fonctionnalités avancées dont vous pouvez profiter.

2. SwiftUI

La deuxième compétence essentielle requise est SwiftUI. C'est un Apple cadre qui nous permet d'utiliser Swift pour créer des applications pour iOS, Mac OS, tvOS, et même watchos. 

Là où Swift est le langage de programmation, SwiftUI fournit les outils pour développeurs pour créer des applications.

Pour être clair, SwiftUI ne remplace pas Swift – c'est un framework construit sur Swift qui nous permet de créer des applications.

Vous devrez connaître Swift et SwiftUI pour réussir.

SwiftUI est un framework assez jeune, il est apparu pour la première fois en 2014, et il a été développé pour remplacer l'archaïque Objective C.

Malgré son jeune âge, la communauté iOS l'a adopté sans réserve car il est si facile à utiliser.

Apple dispose également d'un cadre plus ancien pour la création d'applications iOS appelé UIKit. Si vous demandez à un groupe de personnes si vous devriez d'abord apprendre SwiftUI ou UIKit, vous obtiendrez une variété de réponses. 

Nous pensons que vous devriez apprendre SwiftUI et voici le raisonnement pour lequel vous devriez donner la priorité à SwiftUI en tant que compétence de base.

SwiftUI est nettement plus facile que UIKit, et - il faut peut-être un quart du code pour obtenir les mêmes résultats que UIKit, et il y a moins de choses à apprendre en cours de route. 

Cela signifie que vous gagnez beaucoup d'élan car vous pouvez construire des choses plus rapidement, voir des résultats plus rapidement et itérer sur ces résultats avec plus d'agilité.

Créé pour Swift

Créé pour Swift

SwiftUI a été créé pour Swift, en utilisant des fonctionnalités linguistiques pour aider à éviter les problèmes et à atteindre des performances maximales. 

Par exemple, si vous modifiez certaines données sur un écran d'une application, SwiftUI garantira automatiquement que les nouvelles données sont mises à jour ailleurs dans votre application qui les utilise.

Vous n’avez pas besoin d’écrire du code pour tout synchroniser vous-même, ce qui est généralement assez complexe. 

UIKit a été écrit pour AppleL'ancien langage de, Objective-C. En conséquence, il présente toutes sortes de bizarreries liées à son âge.

SwiftUI est compatible avec tous Apple« S plates-formes, vous pouvez utiliser ce que vous avez appris sur iOS pour créer une application ou macOS watchos avec le code presque identique. 

Bien sûr, des fonctionnalités telles que la couronne numérique sont exclusives à un seul appareil, le Apple Regardez, mais la grande majorité de ce que vous apprenez fonctionnera sur n'importe quel appareil.

Plus important encore, SwiftUI est la direction dans laquelle les choses vont. 

Si vous postuliez pour un emploi il y a quelques années, vous auriez probablement besoin de connaître UIKit. Le fait que vous lisiez ceci signifie que vous êtes beaucoup plus avancé dans le processus. 

Alors qu'UIKit était autrefois plus populaire, SwiftUI est désormais le framework d'interface utilisateur dominant.

Les plus grandes entreprises du monde, y compris Apple eux-mêmes vont maintenant de l'avant avec SwiftUI.

Quand Apple widgets récemment lancés dans iOS 14, ils ont imposé l'utilisation de SwiftUI.

Réseautage et manipulation de données

Les troisième et quatrième compétences que nous avons mentionnées étaient le réseautage et la manipulation de données. Comparés à Swift et SwiftUI, ceux-ci sont assez simples, ou du moins simples au niveau requis pour obtenir un travail de développeur iOS junior.

La mise en réseau est la pratique consistant à récupérer des données sur Internet ou à envoyer des données d'un appareil local à un serveur distant.

Sur une application mobile, c’est une compétence fondamentale.

Il existe de nombreuses méthodes pour y parvenir, mais la chose la plus importante à comprendre est de savoir comment récupérer JSON à partir d'un serveur.

C’est là qu’intervient l’autre compétence essentielle : travailler avec les données. 

Encore une fois, il existe de nombreuses façons de charger et de sauvegarder des données. Le minimum absolu que vous devez être capable de faire est de convertir les données que vous avez reçues d'un serveur en informations que votre application peut afficher.

Ainsi, les troisième et quatrième compétences de base sont inextricablement liées.

Récupérez des données sur un serveur, puis convertissez-les en informations pouvant être affichées dans votre application.

Certains développeurs plaisantent en disant qu'écrire ce type de code représente la moitié du travail d'un développeur iOS, et il est certainement vrai que nous en dépendons beaucoup.

Version control

La compétence finale n'est pas du tout de coder, c'est version control, comme Git. Encore une fois, vous n'avez pas besoin de grand-chose ici, mais il est important que vous puissiez publier votre code dans un endroit public, comme GitHub, afin que les recruteurs puissent voir votre travail.

Peu de gens dans le monde comprennent vraiment comment fonctionne Git, mais ce n'est pas grave : il vous suffit de connaître suffisamment les bases pour stocker vos données en toute sécurité et collaborer avec les autres.

Ainsi, lorsque ces cinq sont additionnés, il y en a deux massifs – Swift et SwiftUI – ainsi que trois mineurs mais importants. 

Si vous pouvez vous concentrer uniquement sur ces cinq choses sans vous laisser distraire, vous serez sur la bonne voie pour votre premier travail de développeur iOS.

Ça y est : ce sont les cinq compétences essentielles dont vous avez besoin, selon moi, pour être un développeur iOS !

Il y a des milliers de personnes qui n'ont que ces compétences et qui peuvent créer et livrer des applications fantastiques sur l'App Store.

Ce qui vient après les fondamentaux

Qu'est-ce qui vient après les fondamentaux ?

Une fois que vous maîtriserez les cinq compétences de base, vous serez en mesure de proposer vos propres applications et de travailler en tant que développeur indépendant. Vous pourrez peut-être également postuler à des postes de développement iOS junior et travailler pour une entreprise si c'est ce que vous souhaitez faire. 

Il n'y a pas d'autres qualifications particulières requises - tout nail ces compétences de base et vous serez bien.

Cependant, si vous maîtrisez ces compétences et souhaitez progresser, nous vous recommandons d'acquérir cinq autres compétences.

Vous deviendrez encore plus employable et la gamme d’applications que vous pourrez créer s’élargira encore davantage.

Les capacités sont les suivantes :

  • Uikit 
  • Données de base 
  • Validation
  • Contrôle de qualité
  • Architecture logicielle
  • multithreading

Comme précédemment, nous aimerions passer en revue chacun d'entre eux plus en détail afin que vous compreniez pourquoi nous pensons qu'ils sont importants - et pourquoi nous les considérons comme des compétences d'extension plutôt que comme des compétences de base.

Uikit

D'abord, il y a Uikit. C'est AppleL'ancien cadre d'interface utilisateur de , utilisé pour le développement d'applications depuis 2008 – ce qui est ancien en termes de logiciel.

Mais cela ne veut pas dire qu’UIKit est mauvais. En fait, à mesure que vous vous habituerez à son fonctionnement, vous serez surpris de voir à quel point il peut être élégant.

Il existe de nombreuses raisons pour lesquelles UIKit vaut la peine d'être appris, notamment :

Des centaines de milliers d'applications ont déjà été écrites dans UIKit. Si vous rejoignez une entreprise qui possède une application importante et bien établie, vous devrez presque certainement écrire du code UIKit pour la maintenir.

UIKit est bien plus puissant que SwiftUI - il y a beaucoup de choses que vous pouvez faire dans UIKit qui ne sont actuellement pas possibles dans SwiftUI.

En utilisant la technologie de mise en page automatique, vous pouvez créer des mises en page extrêmement précises.

Si vous rencontrez des problèmes avec votre code, UIKit propose plus de solutions que SwiftUI simplement parce qu'il existe depuis bien plus longtemps.

Tout cela rend UIKit fantastique, alors pourquoi en ai-je fait une compétence d'extension plutôt qu'une compétence de base ? 

Parce que UIKit a aussi des problèmes :

Presque tout est plus difficile à faire dans UIKit que dans SwiftUI, certaines tâches nécessitant cent fois, sinon plus, du code. 

SwiftUI a été conçu spécifiquement pour le développement iOS moderne, il fait donc beaucoup de travail pour vous.

Parce que UIKit n'a pas été écrit en Swift, il possède de nombreuses fonctionnalités que SwiftUI n'a pas - de nombreuses options implicitement déballées, le code de marquage avec un attribut spécial @objc pour le rendre disponible pour le ventre Objective-C d'UIKit, et la nécessité d'utiliser des protocoles et des délégués pour afficher des données simples.

Rien dans la mise en page automatique n’est automatique. En fait, si jamais vous essayez de créer une mise en page complexe, vous risquez de faire des cauchemars à propos de la mise en page automatique.

C'est extrêmement intelligent, mais c'est aussi extrêmement difficile par endroits.

C'est pourquoi nous considérons UIKit comme une compétence d'extension. L'apprentissage prend beaucoup plus de temps et d'efforts que SwiftUI, ce qui signifie que cela nécessite beaucoup plus de détermination.

Vous devez vraiment vouloir l'apprendre, sinon vous serez confus, ennuyé, en colère, ou potentiellement les trois !

Bien sûr, SwiftUI ne possède pas toutes les fonctionnalités d'UIKit, mais il vous permet de progresser rapidement et de prendre de l'ampleur avant de passer à UIKit.

 

Gestion des données de base

Gestion des données de base

Données de base, Apple's framework pour travailler avec les données d'application, est la deuxième compétence d'extension que j'ai mentionnée. 

Core Data vous permet de manipuler les données une fois que vous les avez obtenues, comme rechercher des valeurs spécifiques, trier les résultats, etc., le tout de manière très efficace. 

Il peut également se connecter facilement à iCloud, garantissant ainsi que les données des utilisateurs sont synchronisées sur tous leurs appareils.

Core Data présente de nombreux inconvénients. Le plus grave c'est qu'il n'est pas toujours agréable de travailler avec.

Core Data est presque aussi ancien que UIKit, et bien qu'il fonctionne bien en Objective-C, cela ne semble pas aussi naturel dans Swift. 

Il s'intègre bien avec SwiftUI, ce qui le rend moins étrange, mais cela reste un sujet étonnamment complexe.

Comme UIKit, Core Data est extrêmement populaire - des centaines de milliers d'applications ont été créées avec lui, et il est utilisé dans de nombreuses grandes et petites entreprises. 

Les données de base, comme UIKit, sont extrêmement puissantes, et bien que vous puissiez en recréer les parties les plus importantes dans votre propre code, pourquoi le feriez-vous ?

Tester votre code

La troisième compétence de ma liste d'extensions est le test. Écrire du code spécial pour vous assurer que le code de votre application principale fonctionne comme prévu. 

Les tests nous permettent de garantir que notre code fonctionne correctement et, plus important encore, qu'il continue de fonctionner correctement même après avoir apporté des modifications importantes.

Les tests sont essentiels et vous aideront à écrire des logiciels de meilleure qualité. Alors, pourquoi est-elle considérée comme une compétence d’extension plutôt qu’une compétence de base ? 

Il y a trois raisons à cela:

La communauté iOS est très mauvaise en matière de tests, pour quelque raison historique que ce soit. De nombreuses grandes applications n'ont aucun test et, malheureusement, un certain nombre de développeurs iOS senior sont presque fiers de ne jamais écrire de tests. 

Quand on considère toutes les choses étonnantes avec lesquelles on peut créer Appleoutils et frameworks de , écrire des tests ne semble pas très amusant en comparaison. 

Lorsque vous postulez pour un emploi, connaître Swift et AppleLes principaux frameworks de seront toujours plus utiles que de savoir écrire des tests. 

Les entreprises préféreraient que vous sachiez comment utiliser SwiftUI, UIKit ou l'un des autres grands noms, car les tests sont un sujet beaucoup moins important.

Les tests sont donc importants, les tests comptent, et si vous voulez être un excellent développeur global, vous devez apprendre à écrire d'excellents tests.

Mais seulement après avoir maîtrisé les principes fondamentaux du développement d'applications – après avoir connu un certain succès, ressenti l'enthousiasme de mettre votre application en ligne sur l'App Store et maîtrisé les tests.

Architecture logicielle

Architecture logicielle

La quatrième compétence d'extension dont nous aimerions discuter est l'architecture logicielle, qui concerne la façon dont nous écrivons du code. 

Vous allez écrire un code terrible lorsque vous débutez. 

Ce n'est pas grave parce que c'est comme ça qu'on apprend. Vous ne commencez pas bien - vous devenez bon en étant mauvais pendant longtemps et en apprenant de meilleures façons de faire les choses avec l'expérience et l'exposition.

Le fait est que vous vous en tenez à votre mauvais code jusqu’à ce que vous trouviez comment faire mieux. C'est là qu'intervient l'architecture logicielle.

Examinez des techniques éprouvées pour structurer votre code afin de le rendre plus facile à lire, à utiliser, à modifier et à maintenir à long terme. 

Ces techniques reposent parfois sur le fonctionnement de Swift – des fonctionnalités de langage qui peuvent être utilisées pour écrire un meilleur code. 

Cependant, il existe de nombreuses autres techniques qui fonctionnent dans n'importe quel langage de programmation et sont communément appelées modèles de conception.

Un aspect important de cette compétence que vous devriez commencer à apprendre est de savoir comment décomposer votre code. 

Par exemple, si vous créez un seul écran dans votre application, il peut inclure un bouton de connexion, une galerie d'images et une liste d'amis. 

Cependant, vous devez idéalement séparer chacune de ces parties - un composant de bouton de connexion, un composant de galerie d'images et un composant de liste d'amis - afin que vous puissiez réutiliser n'importe lequel de ces composants dans d'autres parties de votre application.

L'architecture logicielle est beaucoup plus subjective que les autres compétences dont nous avons parlé jusqu'à présent. Pour les autres, comme SwiftUI, vous pouvez raisonner : "Eh bien, je sais comment faire X, Y et Z, donc je suis convaincu que je suis un bon développeur SwiftUI."

L'architecture logicielle est un sujet très vaste et il n'existe souvent pas de « bonne » manière évidente de résoudre un problème.

La meilleure référence pour cela est la suivante : regardez-vous votre code d'il y a six mois, il y a un an, etc.

Écrire du mauvais code est acceptable si cela vous rapproche de l’écriture d’un meilleur code. 

Vous vous gratterez certainement la tête par endroits lorsque vous repenserez au code que vous avez écrit il y a cinq ans, car vous en saurez plus maintenant qu'à l'époque.

C'est comme cela devrait être.

multithreading

La dernière compétence d'extension dont nous parlerons est le multithreading. Il s'agit de faire en sorte que votre code fasse plus d'une chose à la fois. 

Le multithreading peut être très pénible car il est difficile à comprendre pour notre cerveau.

Lorsque votre code fait une chose à la fois, nous pouvons y réfléchir de manière linéaire, mais lorsque deux ou trois choses se produisent en même temps, se chevauchant potentiellement, cela peut vraiment perturber votre réflexion.

Ainsi, même si le multithreading est une excellente compétence, vous devez être prudent. Votre objectif devrait être de comprendre juste assez de concepts et de code pour que cela fonctionne bien sans aller trop loin. 

Pour être honnête, de nombreux développeurs pensent que le multithreading rendra instantanément leur code trois ou quatre fois plus rapide. 

Bien que cela soit vrai dans certains cas, dans de nombreux autres cas, votre code s'exécutera plus lentement et vous devrez désormais gérer toute la complexité supplémentaire du code.

"Ma recommandation spécifique est d'éviter autant que possible d'écrire du code asynchrone/concurrent. Cela peut sembler étrange en 2018, mais le coût en complexité et en performance est élevé.

Alors, apprenez-en un peu plus sur le fonctionnement du multithreading dans Swift pour montrer que vous comprenez les concepts et la mise en œuvre, mais n'allez pas trop loin ! »

David Smith- Apple Équipe SwiftUI

Erreurs courantes commises par les nouveaux développeurs iOS

Erreurs courantes commises par les nouveaux développeurs iOS

À ce stade, nous avons répertorié toutes les compétences de base et d'extension dont vous aurez besoin pour travailler en tant que développeur iOS à temps plein. 

Nous souhaitons également discuter de certaines des erreurs les plus courantes commises par les gens lors de leur apprentissage.

Des erreurs, je les vois tout le temps et je sais à quel point elles font reculer les gens.

Il y a sept problèmes majeurs auxquels les gens sont confrontés. 

  1. Se souvenir de tout
  2. Syndrome d'objet brillant 
  3. Apprentissage du loup solitaire
  4. Utiliser un logiciel bêta
  5. Selon Appledocumentation de
  6. S'enliser dans Objective-C
  7. Viser d'autres langues

Passons en revue chacun d'eux un par un.

Arrêtez d'essayer de vous souvenir de tout

Arrêtez d'essayer de vous souvenir de tout

Le premier problème, et de loin le plus courant, que les gens rencontrent est d’essayer de tout mémoriser.

Personne ne se souvient de tout. Personne n’est près de se souvenir de tout.

Même si l'on considère uniquement les API publiées par Apple, il doit y en avoir bien plus de cent mille. 

Même si vous vous limitez aux composants essentiels du développement d’applications, vous en aurez quand même plusieurs centaines.

Le tout fonctionnant d’une manière très précise qui demande beaucoup d’apprentissage à l’utilisation.

Au lieu de cela, apprenez à faire quelque chose de nouveau, puis oubliez rapidement comment le refaire. 

Alors, vous le recherchez, vous l’utilisez à nouveau, puis vous l’oubliez rapidement.

Donc, vous le recherchez une troisième fois et l’utilisez, et cette fois vous l’oubliez presque – certaines parties restent avec vous. 

Ce cycle se poursuit indéfiniment, vous devez à chaque fois vous référer à un tutoriel ou à un autre guide de référence, jusqu'à ce que les principes fondamentaux soient ancrés dans votre esprit au point que vous puissiez le faire sans consulter personne d'autre.

Si vous ne le saviez pas déjà, l'oubli est une partie importante de l'apprentissage.

Chaque fois que vous oubliez quelque chose et que vous le réapprenez, cela s’enfonce plus profondément dans votre cerveau.

Lorsque vous réapprenez quelque chose, votre cerveau établit de nouvelles connexions avec d'autres choses que vous avez apprises, ce qui vous aide à mieux comprendre le contexte de ce que vous essayez de faire. 

Si vous décidez de tout mémoriser, vous allez avoir du mal.

Au lieu de cela, ne vous inquiétez pas d'oublier des choses. Savoir où les rechercher est bien plus important que de mémoriser un code Swift spécifique pour accomplir quelque chose.

Éviter le syndrome de l'objet brillant

Le deuxième problème le plus courant est le « syndrome des objets brillants ».

C'est là que l'on trouve un tutoriel qui fonctionne et que l'on commence à progresser. Mais après une semaine ou deux, nous remarquons une autre série de didacticiels que nous souhaitons suivre et y passer à la place. 

Le problème ici est que de nombreux aspects de l’apprentissage sont sans intérêt. Ce n'est pas nécessairement la faute du professeur. 

C'est juste un fait d'apprendre à coder - certaines choses vous donnent d'excellents résultats avec peu d'effort, tandis que d'autres prennent beaucoup plus de temps à comprendre, ne produisent pas de résultats fantaisistes ou ne sont qu'une partie d'un concept plus large.

Lorsque vous atteignez ces courbes d’apprentissage abruptes, le syndrome des objets brillants entre en jeu.

Avec autant de didacticiels gratuits disponibles, vous pouvez passer à l'un d'entre eux et redémarrer, et vous serez de retour dans la partie peu profonde de la piscine, couvrant les parties les plus faciles que vous avez déjà apprises. 

Mais, à moins que le cours original n'ait choisi un sujet inhabituel à aborder, vous allez probablement devoir l'apprendre un jour ou l'autre, et vous ne faites que retarder l'inévitable.

Soyez conscient du syndrome des objets brillants.

Lorsque vous rencontrez un problème, essayez de demander de l’aide à quelqu’un d’autre et de persévérer plutôt que de changer.

Ne fais pas cavalier seul

Ne fais pas cavalier seul

En parlant de demander à quelqu'un d'autre, le troisième problème que nous voyons les gens rencontrer est lorsqu'ils se lancent seuls dans leur apprentissage.

Ils pensent qu'ils sont tout à fait capables d'apprendre à créer des applications iOS à l'aide de Swift par eux-mêmes et n'ont besoin d'aucune aide.

Cette méthode fonctionne pour un très petit nombre de personnes, généralement celles qui ont une vaste expérience avec d'autres langages de programmation ou plates-formes. 

Cependant, pour la plupart des gens, apprendre de cette manière est une expérience terrible.

Chaque erreur ou malentendu prend cinq fois plus de temps à être remarqué puis résolu. Il est extrêmement facile de perdre la motivation et vous manquez d'inspiration en regardant les autres réussir.

Si vous êtes un apprenant naturel "loup solitaire", nous vous invitons à changer vos habitudes. 

Partagez ce que vous apprenez, connectez-vous avec d'autres qui apprennent et développez l'habitude de poser des questions. 

Vous découvrirez une fantastique communauté d'apprenants qui vous soutiendront et vous encourageront. Vous serez également inspiré par leur travail et, à votre tour, les inspirerez avec le vôtre.

C'est complètement transformateur !

Ne pas utiliser les versions bêta

Le quatrième problème majeur est lorsque les gens insistent pour utiliser des versions bêta de Appleles outils de développement de. 

Chaque année, Apple lance un nouvel iOS, un nouveau macOS et d'autres produits, nous proposant toujours de nouvelles choses passionnantes à essayer.

Il est naturel que les gens veuillent connaître les dernières nouveautés, surtout s'ils savent que Swift a une longue histoire de changement.

Cependant, lorsque les gens essaient d'apprendre avec un logiciel bêta, ils rencontrent un certain nombre de problèmes :

Étant donné que les didacticiels n'ont pas été mis à jour pour la version bêta, suivre leurs instructions ne sera pas toujours possible ou échouera.

Les bugs sont courants dans les versions bêta, en particulier celles publiées pour les mises à jour majeures d'iOS.

AppleLes frameworks bêta de prennent du temps à se stabiliser, ce qui signifie que le code qui a fonctionné dans la version bêta 1 peut ne pas fonctionner dans la version bêta 3.

Ainsi, même s'il est passionnant d'apprendre de nouvelles choses et que vous pensez peut-être avoir une longueur d'avance avec de nouvelles fonctionnalités, cela n'en vaut généralement pas la peine. 

Utilisez toujours les versions publiques les plus récentes de Appledes outils de développement jusqu'à ce que vous soyez à l'aise avec eux.

Se fier à la documentation officielle

Se fier à la documentation officielle

Le cinquième problème majeur auquel les gens sont confrontés lorsqu'ils tentent d'apprendre est de s'appuyer sur Applela documentation de. 

AppleL'équipe de publications des développeurs travaille dur pour documenter autant que possible à partir de la vaste gamme de frameworks de l'entreprise.

Mais leur travail principal consiste à rédiger du matériel de référence – des éléments que vous lisez lorsque vous essayez d'utiliser un élément spécifique de leurs outils – plutôt que de créer un cours structuré pour vous aider à apprendre à créer des applications iOS.

Nous ne comptons plus le nombre de fois où les gens ont demandé : « Comment puis-je apprendre Swift ? » seulement pour se faire dire : "Lisez Applele guide de référence Swift de ". 

Cette approche fonctionne pour certaines personnes. 

Cependant, pour la plupart des gens, c'est comme essayer d'apprendre une langue humaine en lisant un dictionnaire.

Les documents sont destinés à couvrir tout ce qui concerne la langue plutôt que de vous apprendre les parties les plus importantes et comment les appliquer.

Donc, si vous avez une vaste expérience avec d'autres langues, la lecture AppleLes guides de référence de peuvent être utiles. Mais si vous débutez, vous voudrez peut-être y revenir après quelques mois.

S'enliser dans Objective-C

Le sixième problème majeur auquel les gens sont confrontés est la tentative d'apprentissage d'Objective-C.

Ce fut AppleLe principal langage de développement de avant l'introduction de Swift. Bien qu'il existe des vestiges dans certaines anciennes bases de code, la grande majorité du code existant est désormais Swift, et presque tout le nouveau code est également Swift.

Certaines personnes passent des années à écrire Objective-C avant Swift et finissent par l'aimer vraiment. Mais sa courbe d'apprentissage est extrêmement abrupte et il lui manque la plupart des fonctionnalités importantes de Swift. 

Quand Apple Après avoir annoncé pour la première fois le SDK pour iPhone, de nombreuses personnes ont été horrifiées par Objective-C car il ne ressemblait à rien de ce que l'on avait vu jusqu'à présent.

Objective-C et Swift n'ont presque rien en commun pour un débutant. 

Oui, ils partagent le même Apple cadres, mais à moins que vous n'envisagiez de travailler à Apple – la seule entreprise au monde produisant encore de grandes quantités d'Objective-C – vous devriez laisser Objective-C tranquille et vous concentrer entièrement sur Swift.

Ignorer les autres langues

Ignorer les autres langues

La dernière erreur majeure que les gens commettent lors de l'apprentissage de Swift est de rejeter les autres langues comme inférieures à Swift. 

La cible la plus courante est JavaScript. Vous verrez également des gens s’intéresser à Python, Java, Ruby, Go et d’autres langages, et pour quoi ?

Ce n'est pas une course : il n'est pas nécessaire que ces langues perdent pour que Swift gagne. En fait, Swift et SwiftUI s'inspirent fréquemment d'autres langages et frameworks.

Chaque fois que de nouvelles fonctionnalités de langage sont envisagées, la communauté examine des implémentations similaires dans Rust, Python, Haskell et d'autres langages, et SwiftUI est fortement influencé par JavaScript. React cadre.

Ressources et cours de développement iOS

Ressources et cours de développement iOS

Passons maintenant à la partie qui intéresse la plupart des gens. Quelles ressources devriez-vous utiliser pour apprendre Swift, SwiftUI et plus encore – afin d'atteindre votre objectif de devenir développeur iOS ?

Il y en a beaucoup et la communauté Swift compte un groupe si diversifié de personnes partageant leurs connaissances. 

Cependant, dans cet article, nous allons nous concentrer sur les ressources gratuites - des endroits où vous pouvez apprendre à créer des applications fantastiques sans dépenser un centime.

Cela est dû à deux facteurs:

  1. Certaines personnes pensent que plus le prix d’un cours Swift est élevé, meilleur il doit être.
  2. De nombreux sites, comme Udemy, s'appuient sur la vente d'un grand nombre de cours à faible coût, convaincus que si vous n'en aimez pas un, vous en achèterez simplement un autre. Ils ont également un modèle économique comme celui de Steam dans la mesure où les ventes sont constantes, encourageant les gens à accumuler un grand nombre de cours pour étudier « un jour ».

Donc, ici, nous ne listons que des ressources gratuites afin que vous ne dépensiez pas cent dollars ou plus pour votre premier cours, et n'achetiez pas une douzaine de cours bon marché en pensant que cela fera de vous un développeur.

Tutoriels

Pour commencer, Apple dispose de deux ressources principales qui peuvent vous aider. Le premier est son Code d'enseignement en ligne.

Il contient des ressources pour les étudiants et les enseignants pour apprendre Swift de A à Z, jusqu'aux certifications professionnelles. 

Leur programme est vaste, il peut donc prendre un certain temps pour trouver le meilleur point d'entrée pour vous, mais une fois là-bas, vous trouverez beaucoup à explorer.

En second lieu, Apple a une série de Tutoriels SwiftUI qui vous guident tout au long du processus de création d'applications du monde réel. Cependant, ceux-ci n'enseignent pas Swift, vous devez donc d'abord suivre leur programme axé sur Swift.

YouTube et autres sites

Il y en a d'excellents Vidéos YouTube qui vous expliquent les principes fondamentaux de SwiftUI.

Il existe d'autres sites proposant des didacticiels Swift et SwiftUI de haute qualité, notamment BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee, etc. Nous encourageons vraiment les gens à visiter une variété de ressources et à trouver ce qui fonctionne pour eux.

Éducation basée sur les applications

Si vous préférez apprendre via des applications, je vous en recommande une entièrement gratuite. AppleLes terrains de jeux Swift app.

Il vous permet d'apprendre Swift directement depuis votre iPad ou Mac. 

Il existe de nombreuses leçons interactives destinées aux enfants, mais il existe également des leçons plus avancées qui vous aideront à améliorer vos compétences.

Trouver des solutions

Enfin, vous devrez apprendre à trouver des réponses en ligne. Cela pourrait signifier aller à Stack Overflow, mais j'espère que non car ce n'est pas un endroit particulièrement agréable.

Posez plutôt des questions sur les forums Hacking with Swift, votre groupe Slack préféré, les sessions iOS Dev Happy Hour, Twitter/X et ailleurs – nous sommes une communauté véritablement chaleureuse et accueillante avec de nombreuses personnes désireuses de vous aider à atteindre vos objectifs.

S'impliquer dans la communauté

S'impliquer dans la communauté

En parlant de communauté, j'aimerais discuter d'un sujet très important qui vous aidera à rencontrer des personnes occupant des postes similaires au vôtre, à apprendre plus efficacement et à trouver des offres d'emploi.

C'est une situation gagnant-gagnant partout.

Le sujet se connecte avec la communauté de développement iOS. Cela inclut de savoir où chercher des nouvelles et des idées intéressantes, où aller pour rencontrer des gens et partager des conseils, et où aller pour poser des questions.

Qui dois-je suivre sur Twitter ?

Commençons par le plus simple, qui est d'utiliser Twitter. Twitter est un moyen fantastique de suivre les choses qui vous intéressent, et il y a quelques personnes que je recommande fortement dans le cas du développement iOS.

Oui, ces personnes tweetent sur leur propre travail, mais je pense qu'elles sont super à suivre parce qu'elles tweetent aussi beaucoup sur le travail d'autres personnes - elles vous aideront à voir une variété de points de vue sur un sujet particulier, et elles partagent toutes sortes d'idées intéressantes et de choses à essayer.

Voici 9 personnes que nous vous recommandons de suivre sur Twitter :

Sean Allen passe beaucoup de temps sur YouTube à créer des vidéos de développement Swift et iOS, mais il travaille aussi très dur pour faire connaître le travail des autres – il fait vraiment un excellent travail pour aider tout le monde à découvrir quelque chose de nouveau chaque semaine.

Antoine van der Lee gère un site Web de développement iOS sur https://www.avanderlee.com, mais il partage également d'excellents liens vers des ressources utiles qu'il trouve sur GitHub, des newsletters et bien plus encore.

Novall Khan travaillant pour Apple, mais cela ne l'empêche pas de publier régulièrement des vidéos sur ce sur quoi elle travaille, ce qu'elle apprend, ce avec quoi elle a des problèmes, et plus encore – elle est vraiment inspirante.

Steve Troughton-Smith est bien connu pour son travail antérieur de bricolage avec iOS, mais vous devriez vraiment le suivre pour le fantastique éventail de liens qu'il partage vers un travail impressionnant. J'aime la façon dont il partage la progression du développement de ses propres applications, afin que vous puissiez les voir grandir du début à la fin.

Kaya Thomas est l'une des développeurs indépendantes les plus connues de notre communauté, et elle a été présentée par Apple plus de fois que je ne peux compter. Elle tweets souvent de son propre travail et des présentations, mais elle partage aussi des liens vers des livres de lecture, elle, nos articles qu'elle a lu, et d'autres ressources.

Majid Jabrailov non seulement il écrit un blog fantastique sur Swift et SwiftUI, mais il est également un promoteur infatigable des autres – si vous le suivez sur Twitter, vous recevrez idée après idée provenant d'une grande variété de sources.

Donny Wals écrit un blog Swift et, plus récemment, des livres sur Combine et Core Data, mais il encourage également les gens à partager ce sur quoi ils travaillent sur Twitter. Même le simple fait de lire ce fil une fois par semaine vous incitera à essayer de nouvelles choses, vous devez donc absolument suivre Donny.

Panage d'été travaille sur Applel'équipe d'accessibilité de , donc même si elle est quelque peu limitée dans ce qu'elle peut dire, elle tweete beaucoup de conseils de premier ordre d'elle-même et d'autres que tout le monde peut utiliser pour créer de meilleures applications.

Natasha Fadeeva écrit un blog sur le développement Swift et iOS, y compris des articles sur les données de base, des questions d'entretien et d'autres sujets, mais elle tweete également sur des choses qu'elle trouve ailleurs.

Bulletins et plus

Bulletins et plus

Bien entendu, Twitter n’est pas le seul endroit où rester en contact avec la communauté ; il existe également des newsletters, des groupes Slack, des rencontres Zoom, des forums, des conférences et d'autres lieux.

Je ne veux pas trop vous ennuyer, alors je vais juste en énumérer un de chaque ici :

Vous ne pouvez pas vous tromper avec iOS Dev hebdomadaire pour les bulletins d'information.

Si vous souhaitez publier sur un forum Web, https://www.hackingwithswift.com/forums est plutôt bon. Il existe de nombreuses catégories parmi lesquelles choisir, et tout le monde, quel que soit son niveau d'expérience, est le bienvenu pour participer. Vous êtes plus que bienvenu à poster vos questions de débutant ici, croyez-moi !

Chaque mois, le Happy Hour pour les développeurs iOS est tenu lors d’un appel de groupe Zoom. Le vrai plaisir se trouve dans les salles de sous-commission, où vous pouvez discuter avec des groupes de 6 à 8 personnes à la fois. C'est très amusant et vous rencontrerez de nouvelles personnes.

Assister à des conférences a été difficile en raison de la pandémie de coronavirus, mais Apple's WWDC a été un énorme succès l’année dernière et s’est accompagné de nombreux événements communautaires.

Un groupe d'amis et moi avons créé un GitHub référentiel pour aider à garder une trace de tous les autres événements, articles et autres choses qui se sont produites – jetez un œil !

Enfin, si vous préférez discuter sur Slack où vous pouvez obtenir des réponses plus rapidement, vous pouvez rejoindre gratuitement Piratage avec le groupe Swift Slack et rejoignez l'un des canaux Swift, SwiftUI et autres.

Combien de temps faut-il pour apprendre iOS ?

Il s’agit d’une question fréquemment posée et à laquelle nous souhaitons répondre dès maintenant.

Combien de temps faut-il pour passer de l'ignorance de Swift à la possibilité d'obtenir un poste de développeur iOS débutant ?

La réponse évidente est « ça dépend », mais ce serait une échappatoire dans ce cas, alors abordons-le de différentes manières.

La règle d'or est de ne pas se précipiter

Avant tout, vous ne pouvez pas suivre plusieurs cours en même temps. Vous vous souvenez de ce que j'ai dit à propos du « syndrome des objets brillants » ?

Oui, beaucoup de gens pensent qu'ils peuvent suivre deux cours en même temps, puis étudier pendant quatre, cinq heures, voire plus, chaque jour, tout en ayant une compréhension de haute qualité des sujets abordés.

Pour être clair, j’ai vu des gens essayer cela à maintes reprises et cela échoue toujours. À chaque fois.

Cela ne fonctionne jamais, et j'entends des gens dire que c'est parce que les tutoriels étaient mauvais, ou parce que Swift était trop difficile, ou pour toute autre raison autre que d'essayer de se précipiter dans quelque chose de complexe.

Apprendre Swift peut parfois être difficile, et apprendre à créer des applications nécessite beaucoup d'essais et d'erreurs, de faire des erreurs et de prendre de mauvais virages.

Et c'est très bien – c'est mieux que bien, c'est fantastique ! 

Chaque fois que vous essayez quelque chose, faites une erreur ou prenez un mauvais virage, vous apprenez quelque chose en cours de route. Lorsque vous arriverez enfin à la solution, vous la comprendrez beaucoup mieux.

Donc, le TL;DR ici est de ne pas vous précipiter – prenez votre temps, n'ayez pas peur d'explorer les tangentes qui se présentent.

N'ayez pas peur d'expérimenter vos projets et n'ayez pas peur de revenir sur quelque chose que vous avez appris précédemment et de le réapprendre si nécessaire.

Quelle est votre formation

Quelle est votre formation?

Deuxièmement, vous devez tenir compte de votre parcours avant de rejoindre Swift.

Vous voyez, apprendre à créer des applications nécessite un large éventail de compétences. Si vous possédez de nombreuses connaissances préalables telles que version control, les structures de données, les algorithmes et bien plus encore, vous aurez un avantage significatif sur ceux qui débutent en informatique en général.

Alors, voici quelques possibilités pour savoir où vous pourriez être en ce moment :

Si vous avez un diplôme en informatique, vous connaissez déjà de nombreux principes fondamentaux de CS nécessaires pour démarrer avec Swift.

Les variables, tableaux, boucles, tableaux, ensembles, fonctions, POO et autres concepts seront utiles dans Swift, tout comme tout votre travail avec les structures de données et les algorithmes.

Cela pourrait vous faire gagner 4 à 6 mois de temps d'études en fonction des matières que vous avez étudiées, et cela vous donnera également un avantage lorsque vous postulez à des emplois dans de nombreuses entreprises.

Si vous n'avez pas de diplôme CS mais que vous avez participé à un bootcamp de codage, vous disposerez de nombreuses bases fondamentales dont vous aurez besoin pour démarrer avec Swift.

Cela ne vous donnera pas le même avantage lorsque vous postulez à des emplois dans ces entreprises, car elles s'attendent souvent à un diplôme simplement pour cocher une case sur leur liste d'exigences arbitraires. Mais cela vous fera quand même gagner trois ou quatre mois.

Si vous n'avez pas de diplôme en informatique et que vous n'avez pas participé à un bootcamp, mais que vous avez codé pendant votre temps libre, vous gagnerez du temps - probablement environ deux mois, selon le langage ou les frameworks que vous utilisiez. .

Que se passe-t-il si vous n'avez pas de diplôme CS, n'avez pas participé à un bootcamp et n'avez aucune expérience préalable en codage ?

Ensuite, j'estimerais qu'il faut 9 à 12 mois pour passer de rien à un emploi de débutant.

Oui, cela pourrait représenter une année complète de travail en plus de votre emploi actuel à temps plein, et c'est juste pour obtenir votre premier emploi en tant que développeur iOS.

Est-ce toujours la même année ?

Non. Si vous avez une expérience préalable, vous pouvez réduire ce délai à 1 à 6 mois, comme je l’ai indiqué précédemment.

Si vous prenez les meilleurs chiffres des deux côtés – 9 mois de rien à un emploi de débutant, plus 6 mois pour avoir un diplôme CS – cela signifie que vous pourriez être embauché en seulement 3 mois, ce qui est incroyable.

Donc, vous n'avez pas besoin d'un diplôme en informatique ou d'un bootcamp, mais vous devez être prêt à travailler dur.

Accordez-vous une certaine latitude

Le troisième point que j'aimerais faire avant que nous passions à autre chose est que « cela prend autant de temps qu'il le faut ». J'adore les paroles de John Lennon qui disent : "La vie, c'est ce qui arrive quand tu es occupé à faire d'autres projets."

Ne soyez pas trop dur avec vous-même si vous prenez du retard dans votre programme d'apprentissage, ou si vous manquez quelques jours, voire quelques semaines, etc.

Tant que vous serez résilient, vous y arriverez.

Se préparer à postuler

Se préparer à postuler

Enfin, si vous êtes un peu plus avancé dans votre parcours d'apprentissage iOS et que vous envisagez de décrocher votre premier emploi de débutant, j'aimerais vous diriger vers une vaste collection de ressources pour vous aider.

je recommanderais Vidéos de conseils sur l'interview Swift de Sean Allen.

Il leur propose toute une liste de lecture dans laquelle vous pouvez travailler sur des discussions individuelles telles que les classes et les structures, la programmation fonctionnelle, la gestion des erreurs, etc.

Aucun d'entre eux n'est particulièrement long, mais ils sont tous conçus pour vous fournir les compétences dont vous avez besoin pour réussir lors d'un entretien.

Où maintenant?

D'accord, j'ai donc passé en revue les compétences de base et d'extension dont vous aurez besoin, les erreurs d'apprentissage courantes, les cours que vous pouvez suivre, comment vous connecter à la communauté iOS.

J'ai également expliqué comment préparer votre entretien d'embauche.

De plus, j'espère avoir démontré combien d'informations sont disponibles gratuitement. 

Oui, la tentation de dépenser cent dollars ou plus pour un cours est forte. Mais détendez-vous : commencez par bouger, trouvez un élan et trouvez quelqu'un qui enseigne Swift d'une manière qui vous convient.

Lorsque vous êtes dans un bon endroit et que vous vous sentez prêt, allez-y et dépensez de l'argent si vous le souhaitez.

Bonne chance pour votre voyage! 

À propos de l’auteur
David Attar
David travaille dans ou autour de l'industrie en ligne et numérique depuis 21 ans. Il possède une vaste expérience dans les secteurs des logiciels et de la conception Web utilisant WordPress, Joomla et les niches qui les entourent. Il a travaillé avec des agences de développement de logiciels, des éditeurs de logiciels internationaux, des agences de marketing locales et est désormais responsable des opérations marketing chez Aphex Media, une agence de référencement. En tant que consultant numérique, son objectif est d'aider les entreprises à obtenir un avantage concurrentiel en utilisant une combinaison de leur site Web et des plateformes numériques disponibles aujourd'hui. Son mélange d'expertise technologique combiné à un fort sens des affaires confère un avantage concurrentiel à ses écrits.

Encore une chose ... Saviez-vous que les personnes qui partagent des informations utiles comme cet article ont l'air géniales aussi? ;-)
Veuillez laisser un incontournable commentez vos pensées, puis partagez-les sur votre ou vos groupes Facebook qui trouveraient cela utile et récoltons ensemble les avantages. Merci d'avoir partagé et d'être gentil!

Divulgation: Cette page peut contenir des liens vers des sites externes pour des produits que nous aimons et que nous recommandons sans réserve. Si vous achetez des produits que nous suggérons, nous pouvons percevoir des frais de parrainage. Ces frais n'influencent pas nos recommandations et nous n'acceptons pas les paiements pour les avis positifs.

Auteur (s) présenté sur:  Logo du magazine Inc   Logo Sitepoint   Logo CSS Tricks    logo webdesignerdepot   Logo WPMU DEV   et beaucoup plus ...