Hello World !
McIntosh
Membre
Bonjour a toutes et tous !
Je m'appelle Greg et j'ai 29 ans, je suis sous Mac depuis 89.
Je débute VRAIMENT dans la programmation Cocoa !
Dans ma jeunesse je faisais des petits sites web et depuis plus rien niveau programmation !
J'ai deux projets d'applications iPhone mais je ne sais par où commencer ? Le C puis apprendre l'Objective-C et Cocoa Touch ? Ou alors directement l'Objective -C ?
Merci /wink.png' class='bbc_emoticon' alt=';)' />
Je m'appelle Greg et j'ai 29 ans, je suis sous Mac depuis 89.
Je débute VRAIMENT dans la programmation Cocoa !
Dans ma jeunesse je faisais des petits sites web et depuis plus rien niveau programmation !
J'ai deux projets d'applications iPhone mais je ne sais par où commencer ? Le C puis apprendre l'Objective-C et Cocoa Touch ? Ou alors directement l'Objective -C ?
Merci /wink.png' class='bbc_emoticon' alt=';)' />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il vaut mieux commencer par apprendre ou réviser les principes de la programmation (fonction, variable, tableaux, pointeurs, ...). Avec le langage C c'est pas mal puisqu'Objective-C c'est du C.
Ensuite apprendre Objective-C et Cocoa simultanément. Moi j'ai appris avec l'excellent "Programmation Cocoa pour MacOSX" de Aaron Hillegass, avec la version anglaise en fait car à l'époque il n'était pas encore traduit.
C'est de ce bouquin que je me suis inspiré pour écrire "Développez vos applications pour iPhone et iPad" chez Micro-Applications. La troisième édition va sortir dans le courant de l'année.
J'en profite pour me faire un peu de pub /cool.gif' class='bbc_emoticon' alt='8--)' /> /cool.gif' class='bbc_emoticon' alt='8--)' />
J'ai actuellement sous le nez ce bouquin que vous citez ! Et le "Langage C du site du zéro " !
Si vous avez d'autres conseils je prends ! Je ne peux apprendre le C tout en même temps l'Objective-C et le Cocoa ?
Commence par le C, ça me parait une évidence si tu veux progresser plus facilement en Objective-C.
L'achat de bouquinS me parait incontournable, mais rassure-toi il y a vraiment ce qui faut en la matière...
Et puis Internet : http://stackoverflow.com, le présent forum, Google et sans oublier la doc Apple bien sure /wink.png' class='bbc_emoticon' alt=';)' />
Quelque chose qui a rien a voir et pour autant si avant d'apprendre le C pourquoi je ne démarrai pas la programmation en apprenant le Python ?
On m'a dit que ce langage était le plus simple pour commencer à apprendre la programmation donc ? /biggrin.png' class='bbc_emoticon' alt=':D' />
Hihi /wink.png' class='bbc_emoticon' alt=';)' />
Juste j'aimerai partir du bon pied et comprendre ce que je fais /wink.png' class='bbc_emoticon' alt=';)' />
Ce n'est pas totalement idiot. C'est plus simple d'apprendre la programmation avec un langage qui ne contient pas des tas de notations ou de concepts bizarres.
Je ne connais pas suffisamment Python pour savoir si c'est un bon candidat.
Quand j'étais à l'école, il y a très très très longtemps, on apprenait les concepts fondamentaux de la programmation avec un langage qui avait été inventé par les profs de l'école, LSE (Langage Simple à Enseigner), mais je ne suis pas sûr que c'était un choix excellent.
Si d'autres personnes veulent bien me répondre pas de soucis /wink.png' class='bbc_emoticon' alt=';)' />
C'est très bien pour apprendre les bases des bases de la programmation, mais le langage est très limité donc il faut passer rapidement à un autre langage pour expérimenter les notions absentes d'AlgoBox.
Le problème du C (ou l'avantage selon le point de vue) est que la maà®trise du langage nécessite une bonne connaissance de la façon dont le langage est implémenté dans la machine (pile, tas, passage de paramètres, alignement des structures, ...).
C'est vrai qu'il y a moins ce souci avec des langages interprétés type Python, PERL, Ruby, ... ou même simplement BASIC.
Objective-C a tendance à gommer ces "problèmes" du C en augmentant le niveau d'abstraction. On a moins besoin de comprendre comment c'est fichu dans la machine, sauf lorsqu'on veut commencer à optimiser certaines parties, où là on recommence à jouer avec des trucs compliqués ; struct/union, Core Foundation, voire run-time.
Le C est un bon point de départ dans le sens où il est proche de l'Objective-C (l'ObjC est basé sur le C et offre une couche d'abstraction et une couche objet supplémentaire par dessus, ce qui est loin d'être négligeable car rajoute tous les concepts de POO tels que les classes, l'héritage, etc).
Mais le C a ses difficultés (notions de gestion mémoire, de pointeurs, etc) qui fait que ce n'est pas simple à apprendre comme premier langage... alors que le comble étant que ces notions sont pour la plupart gommées par Objective-C qui rajoute des couches pour se simplifier la vie par dessus et fait qu'en pratique on oublie facilement quand on code en ObjC ce qu'est un pointeur ou qu'on galère bcp moins au niveau gestion mémoire car on a des outils comme ARC qui nous facilitent la vie.
En fait l'idéal je pense dans l'absolu serait de commencer par un langage simple pour t'apprendre les notions de bases, comme les variables, les fonctions, la notion de contexte (variable locale, globale, ...), la logique de tout ça, le déroulement d'un programme etc. Pour ça, il y a plusieurs candidats, je ne saurais te donner une réponse définitive sur le meilleur langage pour ça (Python ? autre ?).
Ensuite dans un 2e temps apprendre le C, où tu retrouveras toutes ces notions de fonction, de variables, de contexte, etc... et comprendra aussi que y'a plein de subtilités auxquelles penser (gestion mémoire, notions de pointeur, de pile, de tas, etc), rajouter toutes ces notions qui ne sont pas présentes en python ou autre (car ce sont des langages à typage faible, donc n'ont pas la notion de variable typée ou autre par exemple contrairement au C qui utilise le typage fort), etc.
Enfin, apprendre toutes les notions autour de la POO (notion de classe, d'objet, de variable d'instance, de variable de classe, de méthode et d'envoi de message, d'héritage, d'encapsulation, de polymorphisme), et y rajouter tous les Design Patterns courants (delegate, observer/KVO, MVC, KVC, target-action, etc, etc) qui sont utilisés un peu partout dans Cocoa. Et pour ça tant qu'à faire apprendre directement avec l'Objective-C.
Je sais, ça fait beaucoup, mais bon, on ne s'improvise pas développeur Objective-C du jour au lendemain en même temps /wink.png' class='bbc_emoticon' alt=';)' />
Et donc il faut attendre le post d'Ali qui a une patiente d'ange (sauf quand on lit pas la doc et qu'on a pas fait une recherche dans le forum) et qui a la capacité de faire des posts super longs.