# Destination Cocoa



## Irving Bartowski (8 Janvier 2010)

Voilà après 48h d'apprentissage C, j'ai craqué  Non, je n'abandonne pas rassurez-vous 
Je me pose juste une multitudes de questions auxquelles j'espère trouver réponse auprès de vos judicieux conseils 

J'apprenais mes bases C, je réalisais de chouettes petites applications en mode console (dont un projet que je poursuivrai car même si c'est dépassé, il y aura toujours des geek nostalgiques intéressés par mon jeu en mode console)   
Les choses intéressantes allaient commencer mais il me fut impossible d'installer SDL libairies dans mon IDE (code::blocks) 
Fauché dans ma course, je décidai pour me réconforter de prendre connaissance d'expériences de développeurs iPhone, le témoignage de l'un d'entre-eux éveilla ma curiosité mais aussi mon scepticisme 



> BiP: Est-il difficile de créer une application à destination de l&#8217;App Store?
> 
> BB: Ce n&#8217;est pas toujours facile surtout au départ. Quand on est confronté à un bug réticent, par exemple. J&#8217;ai débuté en lisant la documentation
> 
> et en décortiquant les exemples de code qu&#8217;Apple fournit avec la SDK. La documentation fournie est excellente. Je n&#8217;ai d&#8217;ailleurs jamais acheté de livre. La documentation fournie, le forum de développement d&#8217;Apple et les sites web qui traitent de la SDK sont amplement suffisants. Le kit de développement a vraiment été très bien pensé. Les fonctions graphiques sont à la portée de tous ce qui est loin d&#8217;être le cas dans d&#8217;autres plates-formes. En fait, on peut assez facilement laisser cours à son imagination au vu du nombre d&#8217;objets et de fonctions disponibles.



Que faut-il penser de cela  Est-ce vrai??? même si c'était le cas, je n'ai malgré tout l'impression d'avoir perdu mon temps en étudiant ces variables, fonctions, booléens, gestion de mémoire, pointeurs et autres joyeuseries   

Que dois-je faire à présent, je poursuis ma formation à savoir:

*1* C avec SDL => IDE Xcode 
*2* ObjC + Cocoa  => IDE Xcode

Ou puis-je directement passer à mon but final comme semble affirmer ce développeur? 
Quelle est la réalité dans tout cela? concrètement je m'inscris et paie 99$, j'installe iphone SDK et avec mes modestes bases en C + la documentation d'Apple, je peux dès lors créer mon application???

Dans l'espoir que l'un d'entre-vous aura l'amabilité de combler toutes ces interrogations et de me donner ainsi un carnet de route,

Amicalement,

Irving B.


----------



## GrayStorm (8 Janvier 2010)

Bin c'est quand même 100$ dépensés et tu n'es pas sur encore d'avoir les nerfs assez solides pour être développeur.


----------



## Céroce (8 Janvier 2010)

Irving Bartowski a dit:


> Que faut-il penser de cela  Est-ce vrai???



La doc iPhone est très complète, et pour cause: ils l'ont juste reprise de celle du Mac. il y a très peu de différences entre CocoaTouch et Cocoa Mac.
Justement, le vrai problème, c'est la taille de cette doc. Un défaut généralisé des documentations d'Apple, c'est qu'elles sombrent très vite dans les détails d'implémentation, sans jamais donner une vue d'ensemble, ni faire le lien avec les autres classes.

Dire qu'on ne peut pas se débrouiller sans livre serait mensonger, mais il faut quand même être clair: ça fait gagner beaucoup de temps. L'auteur t'a mâché le boulot. Il t'explique ce qui est important et par où commencer. À mon avis, ne *pas* acheter un bon livre est une erreur.




Irving Bartowski a dit:


> Que dois-je faire à présent, je poursuis ma formation à savoir:
> *1* C avec SDL => IDE Xcode
> *2* ObjC + Cocoa  => IDE Xcode



C'est difficile à dire sans savoir précisément où tu en es de l'apprentissage du langage C. Ce serait une bonne chose que tu finisses ton apprentissage pour que tu saches de débrouiller le jour où tu seras confronté à un masque de bits, à des conversions d'entiers/réels ou des casts (transtypages) mystérieux.

Je n'ai pas de bon bouquin à te conseiller sur le sujet, mais étudier la programmation objet serait également un grand plus avant de se lancer vraiment. Sache qu'il faut des années pour être bon dans ce domaine. Les bons développeurs ne sont pas ceux qui connaissent par cur la syntaxe de 20 langages. Ce sont ceux qui arrivent à organiser une grosse application pour qu'elle puisse évoluer, et qu'elle garde des performances et une fiabilité honorables.

Pour finir, si je ne me trompe pas, développer sur le simulateur iPhone (sur Mac) est gratuit, c'est quand tu veux tester sur un vrai iPhone qu'il faut payer.


----------



## Bladrak (8 Janvier 2010)

Céroce a dit:


> Pour finir, si je ne me trompe pas, développer sur le simulateur iPhone (sur Mac) est gratuit, c'est quand tu veux tester sur un vrai iPhone qu'il faut payer.



Vip 

Avant de te lancer dans le développement iPhone (et de lâcher 99$) je te conseille de faire mumuse sur du développement mac "classique". C'est le même langage, avec des APIs en bonne partie communes (pour ce qui est de Foundation au moins), et surtout les mêmes outils.

De mon expérience, quand j'ai commencé le développement iPhone, je maitrisais déjà la programmation objet et j'avais fait du C et du C++ en cours (j'avais de notions légères quoi). Le plus long à apprendre pour moi a été comment me servir des outils (beaucoup de difficultés à lier mon code avec Interface Builder au début).

N'hésite pas à commencer par là donc, fais quelques essais sur mac avant de te lancer sur iPhone.

Enfin, pour l'apprentissage de la programmation objet, tu peux essayer du C++ ou du Java, tu trouveras beaucoup de support sur Internet (plus que pour de l'Objective-C).


----------



## grumff (8 Janvier 2010)

Bladrak a dit:


> Avant de te lancer dans le développement iPhone (et de lâcher 99$)


Les 99$ c'est juste pour pouvoir vendre sur l'AppStore et faire tourner les programmes sur ton iphone, mais dans un premier temps tu peux très bien te contenter de faire tourner les programmes dans l'émulateur. Donc essaye, tu verras bien si tu t'en sors. Il n'y a strictement rien à perdre.


----------



## Irving Bartowski (9 Janvier 2010)

Avant tout, je tiens à vous remercier pour votre aimable soutien et vos précieuses contributions! 
Alors ça va pas du tout, je suis au bord du désespoir   
Au début, je comprenais vraiment ce que je faisais lorsque je développais en C des applications en vue d'exécuter celles-ci en mode console. 

Aujourd'hui, j'ai instalé Xcode et ai commencé le développement d'applications cocoa en objC avec IB mais quelle galère  
Ah pour ce qui est de l'objC en mode console, encore une fois pas de soucis! Je me suis dit de prime à bord "Waw quelle amélioration du C, c'est bien plus puissant et proche de l'esprit du projet qu'on veut mettre en oeuvre" 
J'ai vite déchanté lorsqu'est venu le développement en interface graphique :hein: 
Je crois que Xcode + IB et moi  ne sommes pas compatibles...
Je ne peux imbriquer mon interface avec mon code source, ça compile, le programme tourne mais aucunes interactions entre mon code source et ma fenêtre graphique...
Arf je suis complément perdu... Je vais toujours lire le bouquin d'Aaron et si rien n'y fait j'irai vendre des glaces  désespéré 

Merci pour tout en tous cas,

Amicalement,

Irving B.


----------



## grumff (9 Janvier 2010)

IB a vraiment une approche particulière&#8230;*Te contente pas de suivre un bouquin, recoupe avec des tutos sur le web, ou la doc d'Apple. Chacun a une approche différente, et selon les connaissances que tu as l'approche idéale va varier. À toi de trouver le tuto qui te convient le mieux, mais te contente pas du premier venu.


----------



## ntx (9 Janvier 2010)

Irving Bartowski a dit:


> Je vais toujours lire le bouquin d'Aaron et si rien n'y fait j'irai vendre des glaces  désespéré


C'est par là qu'il faut commencer car Cocoa ça ne s'invente pas :rateau: Mais ce livre est très bien fait, donc si tu n'as pas compris à la fin de sa lecture, il faudra vraiment se poser des questions sur tes bases en programmation, car Cocoa c'est le top pas le point de départ d'un apprentissage en programmation. Et je pense que 48h de C avant de commencer Cocoa, c'est un peu court  Tu n'aurais pas un peu zapper l'apprentissage de la programmation objet et la notion de design pattern ...


----------



## Irving Bartowski (9 Janvier 2010)

Merci grumff et nxt 

Grumff, tu as entièrement raison mais figures-toi que c'est ce que j'ai fais instinctivement, j'ai suivis le tuto sur le site du zero, sur mac4ver (très bof), un livre gratuit en FR référencé sur le site cocoa.fr, mais je trouve que ceux-ci ne sont pas claires et concis :rose: J'espère donc trouver raison dans le bouquin d'Aaron 

Nxt, le pire est d'avoir des idées, me semblant être  prometteuses et novatrices, mais de ne pouvoir mettre celles-ci en pratiques    Il serait tellement enivrant d'écrire ses idées dans Xcode afin que celui-ci les compiles tout seul comme un grand  
Non plus sérieusement, voici la procédure que j'ai entrepris depuis mon apprentissage: 

Site du Zero: Cours C partie I & II

***Supposant que la partie III ne s'intégrerait pas bien avec l'OS X, je décidai de "zaper" et de passer directement à l'objC dans Xcode en vue de faire des applications Cocoa.***

Site du Zero: Développer sous OS X avec Cocoa

Partie: I OK
Partie: 2 KO 

Version IB différente, j'ai la nouvelle, les auteurs ont l'ancienne... Bref, impossible de m'en sortir avec ce fichu IB! Je me suis pourtant débrouillé, J'ai créé une fenêtre identique, j'ai bien créé des classes pour ensuite les imbriquer dans MainMenu.xib, j'ai établis les connexions actions/outlets avec les NSbutton et  NSTextField de ma fenêtre mais ça ne fonctionne pas! J'ai pourtant un header similaire à celui de l'auteur... 

Voilà je suis un peu perdu,

Amicalement,

Irving B.


----------



## grumff (9 Janvier 2010)

Irving Bartowski a dit:


> Version IB différente, j'ai la nouvelle, les auteurs ont l'ancienne...


Ça c'est un vrai problème, il y a eu une très grosse évolution sur IB, et la plupart des tutos sont basés sur l'ancien. :-/ Trouve d'autres tutos, j'ai pas vraiment de meilleur solution à te proposer, mais effectivement, si t'essayes de faire la même chose à partir d'une doc qui se base sur l'ancien, c'est normal que tu galères.


----------



## Bladrak (10 Janvier 2010)

Tu développes sur l'OS X SDK ou l'iPhone SDK ?

Parce que si tu développes avec l'iPhone SDK et que tu as des NSButton, y'a un soucis  Ça sera des UIButton pour l'iPhone SDK.

Pour l'iPhone SDK, sur le site http://developer.apple.com/iphone tu as des vidéos qui vont t'expliquer assez bien comment le tout fonctionne. C'est toujours l'ancienne version d'IB et d'xCode, mais je n'ai pas eu trop de soucis après avoir regardé les vidéos.

Pour le reste, ne te décourage pas après 2/3 jours d'apprentissage, le développement ça s'apprend en plusieurs mois, voire plusieurs années


----------



## Irving Bartowski (10 Janvier 2010)

Merci à tous pour vos encouragements et votre compréhension 

Cher Bladrak,



> Tu développes sur l'OS X SDK ou l'iPhone SDK ?



Eh bien sur l'OS X SDK, car vous m'avez vivement recommandé de débuter par là afin d'acquérir les principes de la programmation Apple.



> Pour l'iPhone SDK, sur le site http://developer.apple.com/iphone tu as des vidéos qui vont t'expliquer assez bien comment le tout fonctionne. C'est toujours l'ancienne version d'IB et d'xCode, mais je n'ai pas eu trop de soucis après avoir regardé les vidéos.



Certes, mais lorsque je veux accéder aux vidéos ou à l'iPhone SDK 3.0, j'ai une fenêtre de login.
J'utilise alors mon ID iTunes, et j'obtiens un formulaire en retour dont un des termes reste obscur: 

1° Company/Organization  Que suis-je censer indiquer? "Aucune" ou "Nothing" ou encore "NO" 

Enfin, vais-je être amené à déboursé à la fin de ce formulaire ou puis-je simplement développer mes applications iPhones, les émuler sur un simulateur (fourni avec iPhone SDK je présume?), et une fois celles-ci parfaitement au point, je rejoins le programme  et débourse, de bon coeur,  les 99$? 

D'avance merci pour vos contributions,

Amicalement,

Irving B.


----------



## grumff (10 Janvier 2010)

Irving Bartowski a dit:


> Enfin, vais-je être amené à déboursé à la fin de ce formulaire ou puis-je simplement développer mes applications iPhones, les émuler sur un simulateur (fourni avec iPhone SDK je présume?), et une fois celles-ci parfaitement au point, je rejoins le programme  et débourse, de bon coeur,  les 99$?


Payer les 99$ permet de tester sur ton appareil et de vendre sur le store, rien d'autre, pour développer t'as juste à télécharger le sdk et l'émulateur se lancera tout seul. Pour la case "company", tu t'en tapes, mets n'importe quoi, ça t'empêchera pas de coder.


----------



## Bladrak (11 Janvier 2010)

Normalement tu as simplement besoin d'un compte développeur "basique" (sans paiement aucun) pour accéder aux vidéos.

Si tu développes sur l'OS X SDK, il doit y avoir aussi des vidéos sur la page developer mac (après une petite recherche tu trouveras ptet par là : http://developer.apple.com/products/mac/program/itunes.html ).

Ensuite je te conseille aussi de jeter un oeil aux "sample codes" qui sont bien documentés


----------



## Céroce (11 Janvier 2010)

Il me semble que pour obtenir le SDK de l'iPhone, il faut juste s'inscrire sur l'ADC.

Je te conseillerais également de suivre le bouquin d'Hillegass, même s'il est destiné à la programmation Cocoa Mac. Il y a peu de choses que tu verras dans ce livre qui ne te serviront pas pour développer sur iPhone. Viens poser des questions (avec le n° de page) si tu n'arrives pas à retrouver la fenêtre correspondante sous IB.


----------



## Irving Bartowski (11 Janvier 2010)

Je viens donc vous donner des nouvelles dans cette grande aventure qu'est la programmation...
Je ne suis toujours pas inscrit sur l'ADC d'Apple :rateau: En effet, j'ai remplis le premier formulaire (j'espère n'avoir commis d'erreur dans le numéro de téléphone) et dès lors celui-ci validé, je fus confronté un autre formulaire encore plus déroutant! Il m'a été demandé ceci:

Le type d'application qui ferrait mon activité première  je ne compte pas me limiter à un secteur d'activité, cela serait regrettable au vu de toutes les possibilités qu'offre l'iPhone!  Mais bon, allons pour "Lifestyle" 

Le type d'application que j'ai l'intention de développer  Euh difficile à dire, tout dépend de mon évolution dans le milieu! Je déborde d'imagination donc je n'exclus pas le développement de jeux par exemple... Mais je ne peux en être sûr moment au présent! 

Le type de licence de mes applications:  Beuh mais j'en sais encore rien moi! Certaines payantes, d'autres gratuites ou encore gratuites pour les étudiants et les personnes à faibles revenus! (Oh je n'ai pas l'intention de faire d'enquête hein lol Cela ne reposera que sur la *"confiance"*  si je m'aperçois que SEULE la gratuite est téléchargée, je reverrai alors ma position  au fait, peut-on faire cela? passer une app free à une app payante?) 

Enfin bref, pourquoi toutes ces questions? cela me fait peur :afraid: et enfin cette "licence"....
C'est quoi le problème, suis-je tenu à quelque chose envers eux? et si je ne parvenais à réaliser mes apps vont-ils me réclamer qqch.? comment puis-je être certain que mon ADC est gratuit? Est-ce possible qu'une fois accepter les GU, on m'assigne par "erreur" à un compte ADC de + de 2000$?

En ce qui concerne le bouquin d'Aaron, celui-ci est commandé! Je partage la conviction que cette n'ouvrage ne peut que m'apporter de précieux concepts et ouvrir mon esprit au domaine de la programmation! Il sera avec vous, mon allié tout au long de ce parcours 

Je clôturerai cette intervention par la question primordiale: Puis-je accepter cette licence en toute quiétude et ainsi finaliser mon compte ADC? 

Enfin je tiens à saluer votre générosité ainsi que votre sympathie,

Cordialement,

Irving B.


----------



## Bladrak (11 Janvier 2010)

Ne t'en fais pas pour le compte ADC, toutes ces questions sont simplement là pour aider Apple à estimer le profil des développeurs. Tes réponses sont à titre indicatif et ne t'engagent à rien.

Il y a très peu de chances qu'on t'assigne à un compte à US$2.000, si ça devait se produire néanmoins on te demanderait ton numéro de carte, et si l'erreur se produisait bel et bien tu seras sans nul doute remboursé par Apple.

Enfin la licence a un point très important qui est le NDA. Dans le cas où tu aurais accès à des beta d'OS X ou d'iPhone OS (ce qui ne sera pas le cas tant que tu n'auras pas de compte payant) tu ne pourras pas en parler publiquement au risque de te faire poursuivre par Apple. Idem pour certaines infos contenues dans la doc... Bref tout ce qu'Apple n'a pas dit, tu n'as pas le droit de le dire 
En dehors de ça rien à signaler il me semble, mais les collègues ici présent connaissent probablement ça mieux que moi.


----------



## Anonyme (11 Janvier 2010)

Je donne de mes nouvelles :rateau:

Effectivement j'ai pas encore commencé à le lire qu'un truc m'inquiète déjà : sur le bouquin d'Aaron Hillegass c'est marqué "troisième édition" et derrière je lis "Mac OS X 10.4 et 10.5" : or or j'ai le Mac OS 10.6 ça change quelque chose ? Où pourrais trouver le bouquin du même auteur le plus récent ? Car celui-là je l'ai acheté à la FNAC.com...

De plus j'ai un père ingénieur retraité qui, dans sa jeunesse, a fait du FORTRAN avec des cartes perforées, il a peur de ne pas pouvoir m'aider pour Cocoa, a-t-til raison ?


----------



## GrayStorm (11 Janvier 2010)

Heu ... le fortran sur cartes perforées c'est assez éloigné de la programmation objet.
Par contre, s'il a de bonnes bases (et des souvenirs ) en algorithme, ça peut servir.

La façon de programmer a énormément changé entre l'époque de ton père et maintenant. 
A son époque, le temps machine coutait tellement cher que les programmes étaient testés et retestés 100 fois avant même de faire le premier passage réel.

Maintenant le temps machine ne coute rien (surtout sur ta propre machine) et les méthodes de programmation et surtout de deboggage n'ont absoluement rien à voir.
Ceci dit, la méthode papier-crayon avant de commencer à programmer est toujours une très bonne méthode


----------



## Céroce (12 Janvier 2010)

Coriolanus a dit:


> Effectivement j'ai pas encore commencé à le lire qu'un truc m'inquiète déjà : sur le bouquin d'Aaron Hillegass c'est marqué "troisième édition" et derrière je lis "Mac OS X 10.4 et 10.5" : or or j'ai le Mac OS 10.6 ça change quelque chose ?


Il n'y a pas d'édition plus récente, même en anglais. Interface Builder et Xcode ont un peu évolué depuis 10.5, tu devrais retrouver tes petits. Si tu n'y arrives pas, tu peux demander ici en donnant le n° de page.


----------

