Astuce iOS de novice à expert

Même s'il est possible d'apprendre l'essentiel du développement iOS en un week-end, il faudra beaucoup plus de temps pour maîtriser le métier. La question est alors de savoir comment passer d’un novice à un expert? Dans cette astuce, je vais vous fournir un fil d'Ariane qui peut vous aider à devenir un excellent développeur iOS..


1. Pratique, pratique, pratique

Il n'y a pas de raccourci. C’est quelque chose sur lequel je voudrais insister avant de continuer, car il est important de vous débarrasser de toutes les illusions qui pourraient vous rester en tête. Vous ne devenez pas un développeur expérimenté si vous ne programmez que le dimanche après-midi entre 16h et 17h… si le soleil ne brille pas et qu'il n'y a rien à la télévision. Comprenez-moi bien, c'est peut-être amusant, mais cela ne vous rapprochera pas beaucoup de votre objectif de devenir un développeur expert. À quelques exceptions près, la plupart des gens ont besoin de pratique - et de nombreuses autres. Si vous n'êtes pas prêt à travailler dans les heures, il est préférable de revoir vos objectifs et vos ambitions. Devenir grand à quelque chose que vous aimez et le temps passé à pratiquer sera sa propre récompense.


2. Apprendre des autres

L'une des meilleures stratégies pour améliorer vos compétences et adopter les meilleures pratiques consiste à apprendre du code des autres. Cela signifie non seulement parcourir le débordement de la pile, mais aussi et surtout les bibliothèques ou les extraits de code qui proviennent de sources ouvertes par d'autres développeurs..

Chaque fois que vous plongez dans une bibliothèque, telle que AFNetworking ou Magical Record, il est essentiel de ne pas être submergé par le code que vous avez lu. Les chances sont que vous ne comprenez pas chaque ligne de code dans ces bibliothèques, mais ce n'est pas vraiment le point. Le but est d'examiner le code source à un niveau supérieur et d'en apprendre le plus possible, telles que les conventions de dénomination, les meilleures pratiques, les modèles de conception, etc..

En plus d'apprendre à partir du code d'autres personnes, c'est une bonne expérience d'apprentissage de créer vos propres bibliothèques. Il y a quelque temps, je développais une application utilisant Core Data comme couche de données. Au lieu d'utiliser Magical Record, j'ai décidé de créer ma propre bibliothèque en explorant Magical Record et en recréant les fonctionnalités dont j'avais besoin. Cela a non seulement abouti à une bibliothèque mince et agile, mais m'a aussi beaucoup appris sur le fonctionnement interne de Magical Record..


3. Ne pas copier et coller

Cela m'amène à un autre aspect clé de l'apprentissage de la bonne façon: ne copiez et ne collez pas du code sans réfléchir. Nous utilisons tous des extraits de code que nous trouvons à des endroits tels que Stack Overflow ou les forums de développeurs Apple, mais il est important de ne pas copier et coller sans réfléchir le code que vous trouvez sur le Web. En copiant le code que vous trouvez, vous n’apprenez rien. Le plus grand danger est que vous ne savez pas ce que vous venez d'ajouter à votre base de code. Cela pourrait entraîner un comportement inattendu et rendre très difficile le débogage de votre code ultérieurement.

Il peut être tentant de temps en temps d'utiliser rapidement un extrait de code qui résout apparemment le problème sur lequel vous travaillez, mais je vous le déconseille vivement. Lisez le code, comprenez ce que vous ajoutez dans la base de code et, éventuellement, personnalisez la solution en fonction de vos besoins..

Il va sans dire que cela ne s'applique pas aux bibliothèques ni aux frameworks qui sont activement maintenus. Si vous deviez passer par Magical Record avant de pouvoir l’utiliser dans votre projet… je suis sûr que vous comprenez la différence. Utilisez votre bon sens.


4. Les motifs

Cocoa et Objective-C sont à bien des égards très différents des autres langages et environnements de programmation. Cela signifie qu'ils ont leurs propres modèles et meilleures pratiques. Je suis sûr que vous connaissez déjà quelques modèles courants, tels que la délégation et les notifications. Cependant, de nombreux autres modèles peuvent vous aider au cours de votre développement, tels que les modèles de singleton, d'observateur et de commande. Le Guide des principes fondamentaux du cacao vous donne un bon aperçu des modèles les plus courants dans le cacao.


5. Connaissez vos outils

Devenir un excellent développeur ne consiste pas uniquement à comprendre le langage et les frameworks. Il est tout aussi important de travailler efficacement avec les outils que vous utilisez jour après jour. Pour le développement iOS, cela signifie Xcode et éventuellement d’autres outils, tels que PonyDebugger et Charles..

Si vous souhaitez apprendre quelques astuces supplémentaires, un précédent conseil que j'ai écrit sur ce sujet pourrait vous intéresser..


6. Restez à jour

Même si vous ne pouvez pas assister à la conférence annuelle des développeurs d’Apple, WWDC, c’est une bonne idée de parcourir les nombreuses vidéos de session et de regarder celles qui éveillent votre intérêt. Les présentations sont généralement données par les ingénieurs qui travaillent sur les technologies abordées dans la session, ce qui vous donne des informations détaillées et des instructions sur la façon de les utiliser. C'est aussi un excellent moyen de se familiariser rapidement avec ces technologies..

Il y a beaucoup d'excellents développeurs qui écrivent régulièrement sur leur métier, tels que Matt Gemmell, Aaron Hillegass et Mike Ash. Vous pouvez trouver une liste plus complète dans un précédent post que j'ai écrit pour Mobiletuts+.


Bonus: apprendre d'autres langues

J'ai constaté que ma compréhension globale du développement de logiciels s'était considérablement améliorée en apprenant de nouvelles langues ou en travaillant avec de nouveaux cadres. L'avantage de cette approche est que vous ne limitez pas votre vision de ce qui est possible au langage que vous connaissez le mieux..

J'ai récemment trempé mes orteils dans Ember.js et appris que les créateurs, Yehuda Katz et Tom Dale, s'inspiraient de Cocoa. L'implémentation du modèle MVC (Model-View-Controller) de Ember.js est un peu non conventionnelle pour un framework JavaScript, mais ce n'est pas surprenant si vous connaissez Cocoa..

Il n’existe pas de "meilleur" langage pour écrire un logiciel car ils ont tous le pour et le contre. La bonne chose, cependant, c'est qu'ils sont tous un peu (ou beaucoup) différents et que ces différences rendent l'apprentissage de nouvelles langues intéressant et révélateur. Ruby, par exemple, a été une véritable révélation pour moi en termes d’écriture sur code DRY (Don't Repeat Yourself), lisible et code propre.


Conclusion

Si vous ne voulez pas passer de longues heures à devenir un meilleur programmeur, vous voudrez peut-être reconsidérer pourquoi vous vouliez devenir programmeur. Cependant, si vous êtes enthousiasmé par une nouvelle bibliothèque ou un nouvel outil susceptible de vous aider dans votre développement, vous n'aurez probablement aucun problème à améliorer vos compétences au fil du temps. Vous devez vraiment aimer ce que vous faites pour devenir bon et je pense que cela est particulièrement vrai pour la programmation. Peu importe ce que les gens vous disent, vous ne deviendrez pas un développeur expert du jour au lendemain, mais je vous promets que vos compétences s'amélioreront si vous continuez à apprendre et à battre votre art..