# [Développement iPhone] Sérieusement, on commence par où ?



## Warrik (16 Février 2011)

Salut à tous !

J'ai pour projet de développer une application iPhone ayant pour but de compléter un site internet. Un truc super basique en fait ! L'idée est de pouvoir garder le contenu du site sur son iPhone, même en n'ayant pas de réseaux (puisque c'est une application principalement destinée à être utilisée à l'étranger). Il me faut deux catégories et, dans chacune de ces catégories, un menu donnant accès aux différents articles du site.

Concernant le contenu, l'idéal serait que, par défaut, ça fonctionne en "auto-refresh" (mise à jour automatique à chaque lancement de l'application). Mais il faudrait un bouton "download to go", que l'utilisateur pourrait presser avant de partir à l'étranger, histoire que les données soient sauvegardées sur son appareil et d'éviter l'addition salée au retour... L'idéal serait évidemment d'avoir aussi l'opération inverse, "remove to stay (at home)", histoire de pouvoir vider la mémoire de l'appareil une fois qu'on a plus besoin d'avoir les données enregistrées sur l'appareil.

Bref, ça serait un fonctionnement exactement pareil à celui d'une application de journaux !

Le problème est... par où commencer pour apprendre à faire ça  ! Il y a ceux qui disent "tutoriel Site du Zéro C et C++ !". Oui mais, pour quelque-chose d'aussi basique (surtout pour une méthode de développement réputée intuitive), est-ce que j'ai vraiment besoin de suivre ces deux tutoriels de A à Z avant de pouvoir faire quoi que ce soit ?

Et savoir le C et le C++, c'est bien, mais aux dernières nouvelles il faudrait plutôt que je maîtrise l'Objective-C, XCode et Interface Builder...

Dans cette idée, j'ai donc acheté le tutoriel vidéo "Développement d'applications pour l'iPhone" mais je ne trouve pas le tuto très clair... Copier / coller des lignes de code sans qu'on nous donne aucune explications sur ce à quoi ça sert, bof  !

Donc concrètement, je fais quoi ?
- Site du Zéro, tutoriel C --> Site du Zéro, tutoriel C++ --> Site Du Zéro, tutoriel Objective-C --> ouvrir XCode et Interface Builder, je comprendrai facilement comment ça marche ?
- Tutoriel "Développement d'applications pour l'iPhone" --> copier / coller ce qu'ils font sans rien comprendre --> à force, arriver à faire quelque-chose sans comprendre une seule ligne de code ?
- ... ?

Merci beaucoup pour votre aide !


----------



## ntx (16 Février 2011)

Warrik a dit:


> Oui mais, pour quelque-chose d'aussi basique (surtout pour une méthode de développement réputée intuitive), est-ce que j'ai vraiment besoin de suivre ces deux tutoriels de A à Z avant de pouvoir faire quoi que ce soit ?


Cocoa n'a rien de "basique" et n'est pas à la portée d'un néophyte en programmation.


> Et savoir le C et le C++, c'est bien, mais aux dernières nouvelles il faudrait plutôt que je maîtrise l'Objective-C, XCode et Interface Builder...


La maîtrise du C est indispensable, tout comme de très bonnes notions de programmation objets (ce qui peut passer par l'apprentissage du C++ mais plus facilement du Java). Arrivé là, Obj-C c'est peanuts. Et ensuite tu pourras commencer à t'attaquer à Cocoa.


> Dans cette idée, j'ai donc acheté le tutoriel vidéo "Développement d'applications pour l'iPhone" mais je ne trouve pas le tuto très clair... Copier / coller des lignes de code sans qu'on nous donne aucune explications sur ce à quoi ça sert, bof  !


Manifestement pourri comme beaucoup de tutoriel  Achète les livres de Aaron Hillegass, ils sont très bien faits.


----------



## Coolsinus (17 Février 2011)

Salut, j'ai la même ambition que toi, créer une App basique, je sais pas trop quoi encore, mais faire une petite App pour iPhone. Voici ce que j'ai fais : tuto C Sdz, l'intégralité de ces vidéos pour avoir les bases en Objective-C : http://tutorialsblogs.com/objective-c-programming-tutorial-65-videos-series/ (en anglais) et j'attaque bientôt la suite de ce cours, fait par le même mec, pour maintenant apprendre a faire une interface avec Xcode et Interface Builder. 

Je pense que c'est ce qui te conviendrais le mieux, mais il faut néanmoins avoir quelques notions d'anglais.

Autrement sur le même site que sur lequel tu as acheté ton tuto (tuto.com), il y a un tuto pour apprendre l'Objective-C : http://fr.tuto.com/objective-c/objective-c-2-0-la-formation-complete-objective-c,14314.html (quasi indispensable au développement iPhone), qui serait en quelque sorte la "partie 1", ce qui ferait de la video que tu as acheté la "partie 2". On se comprend ! 
Bonne chance !


----------



## Rez2a (17 Février 2011)

Je fais pas vraiment partie des puristes qui pensent que connaître le C dans tous ses recoins est indispensable pour faire une appli iPhone, parce que la plupart du temps une bonne connaissance de Cocoa Touch suffit à faire ce qu'on veut...
Perso, j'ai appris avec ce bouquin-là : http://www.amazon.fr/Programmation-...=sr_1_1?ie=UTF8&s=books&qid=1297938086&sr=8-1
Il est un peu dépassé maintenant mais en tout cas il y a toutes les bases qu'il faut et il se lit plutôt vite ; il a quelques défauts, genre il passe un peu vite sur certains points, mais ça permet déjà de bien commencer.

Il y a aussi le "iOS Application Programming Guide", publié par Apple et dispo gratuitement sur iBooks, qui n'est pas à proprement parler un bouquin qui va t'apprendre à coder une appli du début à la fin mais qui t'indique les bonnes façons de faire telle ou telle chose... bref c'est à garder pour un peu plus tard.

En tout cas, c'est assez déstabilisant au début mais une fois qu'on s'y est fait, on se rend compte que c'est vraiment très bien foutu...


----------



## Nyx0uf (17 Février 2011)

Rez2a a dit:


> Je fais pas vraiment partie des puristes qui pensent que connaître le C dans tous ses recoins est indispensable pour faire une appli iPhone, parce que la plupart du temps une bonne connaissance de Cocoa Touch suffit à faire ce qu'on veut...



Ouais et après on voit des applications super pourries / mal optimisées etc... parce que les mecs "connaissent" juste Cocoa-touch, et ne comprennent rien de ce qu'ils font réellement.

Oui la maitrise du C est indispensable.


----------



## subsole (17 Février 2011)

Bonjour,
C'est une solution qui n'a pas été envisagée ====> http://labs.adobe.com/technologies/air/


----------



## Rez2a (17 Février 2011)

Nyx0uf a dit:


> Ouais et après on voit des applications super pourries / mal optimisées etc... parce que les mecs "connaissent" juste Cocoa-touch, et ne comprennent rien de ce qu'ils font réellement.
> 
> Oui la maitrise du C est indispensable.



Pour l'appli qu'il veut faire, je ne pense pas.
Après, c'est super facile de faire une appli complètement pourrie si on s'y prend comme un bourrin, mais c'est quand même rare d'être obligé de recourir au C pour régler les soucis.

Et puis, on ne parle pas d'un type qui veut en faire son métier là, ce qu'il veut c'est une tableview, un parser, une textview et un enregistrement en local... certes ça s'apprend peut-être pas en 10 heures, mais ça ne requiert pas non plus de connaître la bible du C par coeur...


----------



## DualG4 (17 Février 2011)

Rez2a a dit:


> Pour l'appli qu'il veut faire, je ne pense pas.
> Après, c'est super facile de faire une appli complètement pourrie si on s'y prend comme un bourrin, mais c'est quand même rare d'être obligé de recourir au C pour régler les soucis.
> 
> Et puis, on ne parle pas d'un type qui veut en faire son métier là, ce qu'il veut c'est une tableview, un parser, une textview et un enregistrement en local... certes ça s'apprend peut-être pas en 10 heures, mais ça ne requiert pas non plus de connaître la bible du C par coeur...



Je pense la même chose. La maîtrise du C est un plus, mais n'est pas indispensable. 
La seule fois où j'ai eu besoin du C, c'était pour faire transiter du MIDI vers un ampli. Assez spécifique, donc.


----------



## tatouille (17 Février 2011)

DualG4 a dit:


> Je pense la même chose. La maîtrise du C est un plus, mais n'est pas indispensable.
> La seule fois où j'ai eu besoin du C, c'était pour faire transiter du MIDI vers un ampli. Assez spécifique, donc.



je voudrais dire que l'obj-c est un Runtime Object pour C et on voit souvant des applis qui sont truffées de leaks et crash parce que pas foutu d'ouvrir GDB et lire un stack frame et une me-connaissance absolue de l'inline-asm je ne sais pas comment tu t'imagines programmer sans ce minimum.

et je vois pas bien comment tu veux programmer Apple tech, ou autres OS, sans connaitre le C car toutes les frameworks annexes sont ecrites  en C ou en C++, IOKit, CoreAudio, CoreFoundation, CoreServices, SystemConfiguration, CFNetwork ecetera.

et sans ajouter que tous les objects de la foundation ne sont que des placeholders d'objets CoreFoundation et CoreServices et SystemConfiguration se sont des coquilles vident qui ne font que forwarder, la foundation ne traite que les pools memoires, il n y a aucun "traitement" purement ecris en Obj-c c'est pour ca que ce n'est pas lent et lourd.


*IL FAUT ARRETER LA LEGENDE URBAINE*


----------



## Warrik (17 Février 2011)

Merci à tous pour vos réponses !

Coolsinus, ton lien me semble bien sympathique ! Alors évidemment, c'est un peu problématique puisque c'est en anglais, mais le rythme semble être assez lent de sorte à ce qu'on comprenne bien tout ce qu'on fait !

Il y a aussi le tutoriel payant, qui a l'avantage d'être en français mais si il faut payer 50 Euros pour de nouveau être déçu, bof...


----------



## Rez2a (18 Février 2011)

tatouille a dit:


> je voudrais dire que l'obj-c est un Runtime Object pour C et on voit souvant des applis qui sont truffées de leaks et crash parce que pas foutu d'ouvrir GDB et lire un stack frame et une me-connaissance absolue de l'inline-asm je ne sais pas comment tu t'imagines programmer sans ce minimum.
> 
> et je vois pas bien comment tu veux programmer Apple tech, ou autres OS, sans connaitre le C car toutes les frameworks annexes sont ecrites  en C ou en C++, IOKit, CoreAudio, CoreFoundation, CoreServices, SystemConfiguration, CFNetwork ecetera.
> 
> ...



Mais comment ça se replace dans le contexte d'un type qui veut juste faire une appli permettant d'accéder à des articles et les sauvegarder en local ?
Je suis d'accord pour dire qu'une bonne connaissance du C peut beaucoup aider, mais faut arrêter de dire que c'est indispensable et que Cocoa (Touch) ne peut s'attaquer qu'en connaissant le C sur le bout des doigts, ce qui est souvent répété ici.
Pour moi, en utilisant uniquement l'Objective-C et Cocoa Touch (et en les utilisant bien comme il faut, ça implique pas mal d'expérience sur iOS), et sans rien connaître au C, on peut quand même faire beaucoup d'applis qui tournent très bien.
Après, c'est juste mon avis.


----------



## DualG4 (18 Février 2011)

tatouille a dit:


> je voudrais dire que l'obj-c est un Runtime Object pour C et on voit souvant des applis qui sont truffées de leaks et crash parce que pas foutu d'ouvrir GDB et lire un stack frame et une me-connaissance absolue de l'inline-asm je ne sais pas comment tu t'imagines programmer sans ce minimum.



Parce qu'on n'a jamais vu des programmes en C avec des fuites mémoires?
Parce que maîtriser le C veut dire maîtriser GDB? Je connais de très bons programmeurs C qui ne maîtrisent pas du tout GDB.
Et en plus, maintenant, il faut connaître l'assembleur?

Relis ce que voulait faire Warrik, je suis persuadé qu'il n'a pas besoin de tout ça.



tatouille a dit:


> et je vois pas bien comment tu veux programmer Apple tech, ou autres OS, sans connaitre le C car toutes les frameworks annexes sont ecrites  en C ou en C++, IOKit, CoreAudio, CoreFoundation, CoreServices, SystemConfiguration, CFNetwork ecetera.
> 
> et sans ajouter que tous les objects de la foundation ne sont que des placeholders d'objets CoreFoundation et CoreServices et SystemConfiguration se sont des coquilles vident qui ne font que forwarder, la foundation ne traite que les pools memoires, il n y a aucun "traitement" purement ecris en Obj-c c'est pour ca que ce n'est pas lent et lourd.



Et alors? Le fait que les frameworks soient écrits en C ou en C++ t'empêche de les utiliser avec Objective C?



tatouille a dit:


> *IL FAUT ARRETER LA LEGENDE URBAINE*



Ca fait 13 ans que je suis ingénieur en informatique et pour moi, la légende urbaine, que ce soit au boulot ou ailleurs, c'est que les informaticiens veulent toujours faire croire qu'ils sont indispensables, et qu'on ne s'improvise pas développeur.

J'ai fait du C/C++ au boulot et pendant mes études, de l'assembleur pendant mes études, et sincèrement, pour de simples projets Cocoa, je n'en ai jamais eu besoin.


----------



## Nyx0uf (18 Février 2011)

DualG4 a dit:


> Ca fait 13 ans que je suis ingénieur en informatique et pour moi, la légende urbaine, que ce soit au boulot ou ailleurs, c'est que les informaticiens veulent toujours faire croire qu'ils sont indispensables, et qu'on ne s'improvise pas développeur.
> 
> J'ai fait du C/C++ au boulot et pendant mes études, de l'assembleur pendant mes études, et sincèrement, pour de simples projets Cocoa, je n'en ai jamais eu besoin.



Quand le debugger se lance, si tu connais l'ASM c'est quand même *BEAUCOUP* plus pratique et rapide pour debug.

Et vu que quand tu connais rien à la prog, tu vas rapidement faire une connerie qui va le lancer, si tu t'y connais pas, t'as l'air malin.


----------



## tatouille (18 Février 2011)

houha une bande de Jackies rever mais rever 

"Ca fait 13 ans que je suis ingénieur en informatique et pour moi, la  légende urbaine, que ce soit au boulot ou ailleurs, c'est que les  informaticiens veulent toujours faire croire qu'ils sont indispensables,  et qu'on ne s'improvise pas développeur."
*
allez arrete tes pipos t'en deviens ridicule, tutututututu tu tuuuuu tutututu :sleep: il est beau ton pipo dis moi tu l'as acheté a un Bingalore?
 
*
mais bon c'est peut etre pour ca qu'on a tous eu le droit de traverser la frontiere ici , a part une "exception ici sur le forum" et oui on a un resquilleur qui est certainement passé a coup de mensonge sorte de try/catch pour RH, mais pas de soucis je suis sur qu'il sera un jours raccompagné* 


*


----------



## DualG4 (18 Février 2011)

tatouille a dit:


> houha une bande de Jackies rever mais rever
> 
> "Ca fait 13 ans que je suis ingénieur en informatique et pour moi, la  légende urbaine, que ce soit au boulot ou ailleurs, c'est que les  informaticiens veulent toujours faire croire qu'ils sont indispensables,  et qu'on ne s'improvise pas développeur."
> *
> ...



En quoi ce sont des pipots?



tatouille a dit:


> mais bon c'est peut etre pour ca qu'on a tous eu le droit de traverser la frontiere ici , a part une "exception ici sur le forum" et oui on a un resquilleur qui est certainement passé a coup de mensonge sorte de try/catch pour RH, mais pas de soucis je suis sur qu'il sera un jours raccompagné* *



Reformule dans un français correct et avec la ponctuation qui va bien, et j'essaierai de répondre.

---------- Nouveau message ajouté à 22h10 ---------- Le message précédent a été envoyé à 22h08 ----------




Nyx0uf a dit:


> Quand le debugger se lance, si tu connais l'ASM c'est quand même *BEAUCOUP* plus pratique et rapide pour debug.
> 
> Et vu que quand tu connais rien à la prog, tu vas rapidement faire une connerie qui va le lancer, si tu t'y connais pas, t'as l'air malin.



Mais relisez ce que j'ai écrit: je n'ai pas dit que le C ne servait à rien et que GDB non plus. J'ai dit que pour son simple projet Cocoa, il n'en avait pas besoin.


----------

