Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quel est le niveau de difficulté d'apprentissage du développement iOS
(Objective-C, Cocoa...) ?

Le , par teumm

0PARTAGES

1  0 
Niveau de difficulté de l'apprentissage du développement iPhone (iOS, Objective-C, Cocoa...)
Cela fait maintenant 3 ans que je suis développeur PHP et je souhaite me former au développement iOS. A la base j'ai une formation de programmeur polyvalent, et bien que cela remonte un peu j'ai déjà développé en Java, C++ (quelques bases de C aussi).

J'ai déjà suivi une première formation en ligne sur Objective-C ainsi que des tutoriaux sur Cocoa, j'ai lu pas mal de docs techniques aussi sur ce dernier.
Malgré tout je rencontre encore pas mal de difficultés de compréhension alors je souhaitais simplement savoir si d'autres ont eu des difficultés à aborder le développement iOS (ou Cocoa simplement).

A la base, PHP n'est déjà pas un "vrai" langage objet (même si je l'utilisais plus ou moins comme tel) et n'est pas restrictif du tout ni particulièrement structuré, en fait tout repose sur l'utilisation qu'on en fait contrairement à d'autres langages. Alors passer d'un tel langage à Objective-C me semble déjà compliqué dans le principe, d'autant plus qu'il faut à la fois apprendre un nouveau langage ET l'utilisation des frameworks qui vont avec (Cocoa, Foundation...).

J'aimerais donc avoir votre avis sur la chose et je vais essayer de joindre un sondage à ce post, c'est la première fois que je le fais donc j'espère ne pas me tromper

Merci d'avance

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de sgamel
Membre éprouvé https://www.developpez.com
Le 26/01/2011 à 13:16
Certes ObjC n'est pas PHP ni Java. Il partage cependant de nombreux points communs avec ce dernier.

Il ne faut pas se laisser avoir par la syntaxe "exotique". Au final seuls les principes comptent.

Java et Objective-C sont très similaires tant sur les principes du langage que sur les bibliothèques de bases. NSString/NSMutableString ressemblent beaucoup a leurs pendants String et StringBuffer.

L'heritage simple, les interface (protocoles en ObjC) sont aussi des points communs.

Seul l'utilisation des blocs peut paraitre nouvelle, sauf si vous connaissez des langages fonctionnels comme Lisp et Scheme. Mais Java cherche a introduire lui aussi cette fonctionnalité (les closures).

Le plus difficile est de surtout bien comprendre les frameworks et ne pas chercher a en détourner les usages.
Il faut apprendre quelques design patterns: delegation, codage clef-valeur (KVC) et observation (KVO et Observer), sans oublier l'indétronable MVC qui est non seulement poussé par Apple mais totalement incontournable.
2  0 
Avatar de Virgil Scipion
Membre habitué https://www.developpez.com
Le 27/01/2011 à 10:38
Bin soit t'es un vrai programmeur, et alors peu importe le langage, tu t'y fera très vite. Ou alors t'es pas un vrai, et là t'as qu'à bosser en SS2I pour des contrats de deux mois

Si tu veux un exemple parlant, je connais super bien le C++, j'ai eu aucun souci (évidemment) pour passer sur C# et Java, mais j'ai aussi aucun problème quand je dois écrire des macros en VBA.
Certes je pleure, car c'est minimaliste, mais il n'empêche que je les écris bien.

Un jour j'avais maudit un prof parce qu'il nous enseignait seulement la programmation, mais aucun langage, donc que des algorithmes écrit avec des mots courants.
Jusqu'au jour où j'ai découvert le Prolog, le Small-C et le VBA, et là j'ai compris qu'il valait mieux penser en terme de concepts plutôt que parler la seule langue du C++ & co.

De toutes manière, la majorité du boulot n'est pas d'écrire un programme, mais de comprendre toute les petites saloperies spécifiques à la plate-forme. Que ça soit les API de Windows, les subtilités du HTML ou le code assembleur de la machine.

Et l'autre majorité de notre boulot est de faire comprendre notre boulot. On peut se la jouer comme bon nombre et ne pas savoir parler sans utiliser de termes techniques. Ou alors comprendre le sens du mot "vulgarisation", et donc être capable d'expliquer notre point de vue à n'importe qui, commerciaux et patrons, et même une fois qu'on se démerde à ce jeu, on pourrait vendre un verre d'eau à un dauphin juste parce qu'on appelle ça H20.
2  0 
Avatar de teumm
Membre régulier https://www.developpez.com
Le 26/01/2011 à 14:51
Je suis tout à fait d'accord, je me rends bien compte en ce moment que le plus dur n'est pas d'apprendre le langage mais de comprendre l'architecture des frameworks d'Apple qui est assez complexe. Une fois familiarisé avec les frameworks on peut commencer à avoir de l'intuition sur des éléments qu'on ne connaît pas encore, mais en ce qui me concerne je trouve que le début n'est pas évident.
Une autre chose qui n'est pas très intuitive pour ma part ce sont les liens entre les fichiers NIB et le reste, la présentation de ces derniers sous Interface Builder, le système d'Outlets...

Mais en tout cas on sent que l'environnement fourni par Apple est très travaillé et cela peut expliquer le fait que l'apprentissage ne soit pas très intuitif.
1  0 
Avatar de travon
Nouveau Candidat au Club https://www.developpez.com
Le 26/01/2011 à 16:01
Citation Envoyé par teumm Voir le message
Je suis tout à fait d'accord, je me rends bien compte en ce moment que le plus dur n'est pas d'apprendre le langage mais de comprendre l'architecture des frameworks d'Apple qui est assez complexe. Une fois familiarisé avec les frameworks on peut commencer à avoir de l'intuition sur des éléments qu'on ne connaît pas encore, mais en ce qui me concerne je trouve que le début n'est pas évident.
Une autre chose qui n'est pas très intuitive pour ma part ce sont les liens entre les fichiers NIB et le reste, la présentation de ces derniers sous Interface Builder, le système d'Outlets...

Mais en tout cas on sent que l'environnement fourni par Apple est très travaillé et cela peut expliquer le fait que l'apprentissage ne soit pas très intuitif.


Pour les liens entre les interfaces NIB et le code, tout cela va être simplifié dans xcode4 qui va pas tarder à sortir. Tout sera automatisé, il suffira de glisser, déposer une élément de l'interface dans la partie code pour créer une enveloppe de code associé puis a toi de la compléter.

Je ne suis pas fan de la syntaxe de l'objective C, je prefère celle du C# mais
la force du développement sur machine Apple (IOS ou mac) réside dans les librairies très riches, tout est quasi mâcher.

Avant de coder quelque chose fouille bien, il y a 90% de chance que cela soit déjà fait.
1  0 
Avatar de teumm
Membre régulier https://www.developpez.com
Le 26/01/2011 à 18:22
Wow, et moi qui commence seulement à me faire à XCode 3

Pour l'instant je suis surtout à la recherche d'une base de tutoriels progressifs avec un minimum de pédagogie pour que tu apprennes rapidement à faire des choses par toi-même qui sortent du cadre des tutos. Bon j'en demande peut-être beaucoup là

Pour l'instant tout ce que je connais dans le genre c'est ipup.fr, c'est plutôt pas mal mais les tutos pour commencer ne sont pas à jour et puis ça manque un peu de pédagogie.

Si quelqu'un a des suggestions je suis preneur.
1  0 
Avatar de equesada
Membre régulier https://www.developpez.com
Le 26/01/2011 à 22:01
Je me suis mis à ObjectiveC y a seulement 2 semaines... et c'est vrai que c'est quand même pas simple.

Je suis surtout Java et heureusement j'avais des connaissances en C/C++... du coup j'ai entamé la lecture de "Learn ObjectiveC For Java Developpers" et c'est pile ce qu'il me fallait

Sinon comment as-tu réussi à avoir une version de XCode4 ?
1  0 
Avatar de sgamel
Membre éprouvé https://www.developpez.com
Le 27/01/2011 à 8:52
Citation Envoyé par equesada Voir le message
Sinon comment as-tu réussi à avoir une version de XCode4 ?
XCode 4 est une béta couverte par l'accord de NDA des développeurs enregistrés. Il n'est donc pas possible d'en parler pour l'instant.
1  0 
Avatar de teumm
Membre régulier https://www.developpez.com
Le 27/01/2011 à 9:34
Désolé, c'était une erreur, je parlais bien d'XCode 3.

La seule différence c'est que, si mes souvenirs sont bons, en Java on ne gère pas du tout la mémoire ("garbage collected".
1  0 
Avatar de teumm
Membre régulier https://www.developpez.com
Le 27/01/2011 à 11:30
Je partage ton avis quand tu dis joliment "comprendre toutes les petites saloperies spécifiques à la plateforme", car comme je l'ai dit plus haut le langage en soi n'est pas ce qu'il y a de plus dur.
J'ai une formation de programmeur tout court, pas de programmeur dans tel ou tel langage, donc je suis aussi passé par la case algorithmique (en version longue d'ailleurs).
Quand t'es passé par l'algorithmique tu peux aborder n'importe quel langage étant donné que ce n'est que la syntaxe qui change et pas les concepts qui sont derrière, c'est presque que de l'apprentissage par coeur. Il m'est déjà aussi arrivé d'avoir besoin d'une fonctionnalité qui n'existait pas dans Excel et de la pondre en VBA sans même jamais y avoir touché, mais l'environnement est relativement simple à appréhender comparé à d'autres.

T'as l'air d'avoir vendu un verre d'eau à pas mal de dauphins toi (on peut vendre 1 verre d'eau à 1000 dauphins, on peut vendre 1000 verres d'eau à 1 dauphin... désolé).
En quelques mots c'est quoi ton parcours ? (diplômes, nombre d'années d'expérience, nombre de boîtes dans lesquelles tu as bossé...).
1  0 
Avatar de Dar0ck
Membre régulier https://www.developpez.com
Le 28/01/2011 à 5:53
Un bon livre pour commencer: http://www.pearson.fr/livre/?GCOI=27440100482780
Il commence à dater un petit peu, bientôt un an, par conséquent il parle encore d'iOS 3, mais ce livre est bien pour commencer. Il aborde pas mal de concepts qui permettent d'avoir une bonne vue d'ensemble.
1  0