Concepts de base
La principale différence entre un développeur novice dans le domaine d'iOS et du développement Cocoa et un professionnel expérimenté, c'est la connaissance de la " façon Apple " de faire les choses. Un développeur qui vient de Java ou de tout autre langage ou environnement de développement, peut être opposé à la façon de faire d'Apple et peut vouloir travailler avec des outils avec lesquels il est à l'aise. Un développeur Cocoa est familier avec toutes les technologies importantes d'Apple (Core Data, GCD, Xcode Workspaces, Frameworks). Un développeur débutant substituera ses technologies préférées aux technologies conçues pour le développement iOS.
Un développeur professionnel saura quoi utiliser quand. Un développeur Cocoa expérimenté connaît les problèmes liés à la technologie Apple et sait quelle approche utiliser quand. Le développeur saura quand utiliser la " méthode Apple " et quand trouver une nouvelle approche.
Un développeur iOS pro aura l'expérience des techniques de gestion de projet propres à Apple. Ils connaîtront les secrets de Xcode ( ce que signifie chaque paramètre de construction, capable d'identifier rapidement les erreurs etc...). Ils sauront comment publier sur l'App Store (profils de provisionnement, certificats de développeur, soumission d'applications). Ils connaîtront le déploiement continu du code avec des services comme TestFlight ou HockeyApp ou une solution personnalisée. Un professionnel aura une certaine connaissance du développement agile et du TDD (Test Driven Development) ou BDD (Behavior Driven Development) avec iOS.
Attitude
Un grand développeur iOS a de la patience avec Apple. La façon dont Apple'fait les choses est "leur façon ou l'autoroute" et les développeurs doivent faire avec. Un développeur doit aimer apprendre chaque nouvelle chose qu'Apple révèle et doit persister malgré les problèmes liés à la technologie Apple.
Un développeur iOS a besoin de passion. Il est facile de penser qu'il y a un million d'applications sur l'app store et qu'une de plus ne fera pas de différence. Une croyance passionnée dans le pouvoir de la technologie mobile est nécessaire.
Principes généraux
Je vois la principale différence entre un développeur iOS pro et quelqu'un de tout nouveau dans le développement iOS comme la volonté de travailler dans différents domaines. Un développeur gourou prendra l'initiative de s'assurer que les choses soient faites. Il est prêt à créer une animation personnalisée ou un système de connexion sécurisé. Il contactera l'équipe de conception pour s'assurer que les ressources graphiques sont prêtes. Il discutera avec les responsables du serveur pour s'assurer que les API serviront efficacement l'application mobile, et il sera toujours en contact avec les autres développeurs du projet. Un développeur iOS pro est en partie gestionnaire, architecte système, chercheur, ingénieur de construction, et bien plus encore.
Description des trois étapes
- Développeur junior - Un développeur junior débute et n'est pas familier avec la technologie Apple. Ils sont maladroits avec Xcode et ont du mal à faire fonctionner leur logiciel sur un appareil. Ils sont désemparés lorsque vous leur demandez d'écrire des tests pour leur logiciel ou de déployer leur application via un serveur de construction comme Jenkins.
- Développement de niveau intermédiaire - Un développeur de niveau intermédiaire se sent à l'aise avec Apple et les outils impliqués dans le développement iOS. Ils ont suffisamment de confiance et d'expérience pour gérer la plupart des problèmes et ont traité la plupart des domaines du SDK iOS.
- Dev senior - Tout ce qui précède, plus des connaissances en dehors d'iOS. Ils savent comment écrire du code et architecturer des systèmes pour qu'ils soient facilement portables sur Android ou d'autres plateformes. Ils savent comment optimiser le processus de développement avec des techniques de développement agiles et le déploiement continu. Ils ont la confiance nécessaire pour diriger d'autres développeurs et peuvent leur apprendre exactement comment utiliser les outils d'Apple. Ils sont rarement bloqués par des problèmes, mais ont l'humilité de respecter l'expertise des autres.
TL;DR Les bons développeurs iOS connaissent très, très bien les outils d'Apple.