Envie de m'y mettre !
Coucou les amis,
J'ai bien envie d'essayer cet iPhone SDK puisque j'ai enfin l'iphone depuis 1 mois !
Souvenez-vous, j'ai programmé un an en cocoa en 2005, mais pour le Mac... (les plus vieux du site le savent) avant de me remettre au Web.
Dois-je avoir peur de me mettre à l'iphone ? Mes souvenirs vont-ils m'aider ? Y a-t-il de grandes différences ? Je veux dire, à part la gestion du tactile, part-on sur les mêmes bases ?
J'ai une petite idée d'appli dans ma tête.
Bien entendu, je vais faire cela à mes heures perdues...
<br />
J'ai bien envie d'essayer cet iPhone SDK puisque j'ai enfin l'iphone depuis 1 mois !
Souvenez-vous, j'ai programmé un an en cocoa en 2005, mais pour le Mac... (les plus vieux du site le savent) avant de me remettre au Web.
Dois-je avoir peur de me mettre à l'iphone ? Mes souvenirs vont-ils m'aider ? Y a-t-il de grandes différences ? Je veux dire, à part la gestion du tactile, part-on sur les mêmes bases ?
J'ai une petite idée d'appli dans ma tête.
Bien entendu, je vais faire cela à mes heures perdues...
<br />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Mon expérience à moi :
L'environnement te sera familier : Cocoa, documentation, interactions entre les objets, philosophie Cocoa, conception des interfaces sous IB et lien avec le code de XCode...
Par contre, la transition n'est pas si facile, car l'interface utilise à fond les "controlleurs" pour l'abstraction, et ne serait-ce qu'une UITableView est difficile à mettre au point, car assez différente d'une NSTableView. Les controlleurs sont vraiment omniprésent, et les .NIB ont tendance à être éclatés en plusieurs .XIB.
De plus, CoreAnimation est quasiment incontournable, donc il faut avoir saisi le concept et ses coups tordus.
Au total, la transition vers iPhone SDK, j'ai trouvé ça plus dur que prévu.
+
Chacha
La majeure partie est très ressemblante entre Cocoa et CocoaTouch.
Les différences qui me viennent à l'esprit :
Sinon les trucs pour lesquels il faut faire gaffe quand on développe sur mobile, en particulier des applications qui prennent vite de l'ampleur, c'est la gestion mémoire, puisque sur un iPhone comme tout autre mobile on a une mémoire plus limitée que sur un ordi.
Donc ça implique par exemple préférer le release à l'autorelease quand c'est possible, tant qu'à faire, mais surtout séparer au mieux son interface dans des fichiers NIB séparés plutôt qu'un seul gros NIB.
Après, tu peux voir sur cette page tout ce qu'il faut savoir pour "migrer" du Cocoa/Mac à l'iPhone (nécessite de te connecter avec ton login ADC), ainsi que les différences majeures entre les 2 frameworks.
[EDIT] Pour reprendre un peu ce que dit chacha, je confirme donc l'éclatement des NIB et l'omniprésence des ViewControllers... par contre je n'ai encore jamais eu à toucher à CoreAnimation. La seule chose relative à CoreAnimation à laquelle j'ai déjà touché c'est de faire [tt][UIView startAnimations:nil context:NULL][/tt] au début d'un bloc et [tt][UIView commitAnimations]; à la fin, pour que les modifications (de position, orientation, etc...) que j'ai faite entre ces 2 lignes soient animées... on peut pas dire que ça soit compliqué et tordu :P
Les arborescences (views, viewcontrollers) suivent également des modèles différents.
Je viens de télécharger le SDK et j'ai créé rapidement un projet de chaque type pour voir un peu les différences (tabbar, navigation, utility...etc).
Je me suis rapidement rendu compte que vos remarques sur l'éclatement des Nibs est justifié. Cela ne me dérange pas bien au contraire. Dans le cas d'une appli avec une TabBar, je trouve cela plutôt sain d'avoir un Nib par vue. Surtout si elles sont destinées à des choses bien différentes.
Quand je me suis arrêté en 2006, j'utilisais les bindings, mais pas CoreData. Apparemment CoreData n'est pas implémenté sur l'iPhone et c'est tant mieux. Les bindings le sont-ils ?
Comment stockez-vous vos données ? Les incontournables plist ? Tous sous sqlite ? (zut, je l'utilisais pas à l'époque). Et si vous avez des fichiers importants (genre 500 ou 1000 entrées c'est déjà pas mal pour un smartphone) ?
[EDIT] Je viens de trouver ma réponse pour les bindings.
Donc pour charger une tableView en données, je supose qu'il faut se retaper les méthodes datasource à l'ancienne ?
Sqlite est vraiment très efficace pour le stockage et avec le Cocoa "wrapper" FMDB c'est un vrai plaisir à programmer :
http://blog.saers.com/archives/2008/03/14/sqlite-for-iphone-sdk/
Sinon j'ai trouvé les PDFs des cours de stanford pas mal du tout aussi pour appréhender le dev pour iPhone :
http://www.stanford.edu/class/cs193p/cgi-bin/index.php
Moi je vais commencer par étudier tous les petits exemples d'applis :
http://developer.apple.com/iphone/library/navigation/SampleCode.html
Je suis passé de REALbasic à Xcode pour le développement sur iPhone et j'ai été bluffé par les possibilités.
Il ne s'agit pas d'un téléphone mais d'un véritable ordinateur.
Eric