Question

Je me suis développé en C ++ il y a de nombreuses années, mais aujourd'hui, je suis principalement un ingénieur en logiciels Java. Étant donné que je possède un iPhone, je suis prêt pour un MacBook le mois prochain et que je suis généralement intéressé par le développement sous Mac OS (avec l’objectif C), j’ai pensé poser cette question: Que faire ensuite?

Plus précisément, quels livres devrais-je me procurer et y a-t-il des ressources Web que certaines personnes pourraient me désigner? Quelques livres que je prévois d’acheter:

Quelqu'un au courant de ces titres? Enfin, je serais très intéressé par un résumé de ce à quoi je devrais être prêt à attendre une fois que je commencerai ce voyage. En tant que développeur Java utilisant IntelliJ IDEA, quelles sont les principales différences que je remarquerai lorsque je passerai à l'écriture de code ObjectiveC dans Xcode? Quelle est la différence entre le développement de bureau Mac OS et le développement d'iPhone? Étant habitué à la récupération de place Java, que dois-je savoir sur la gestion de la récupération de place / mémoire ObjectiveC? Y a-t-il d'autres problèmes linguistiques spécifiques que quelqu'un voudrait signaler? Que diriez-vous de construire des interfaces utilisateur? Est-il plus proche de Swing de créer des fichiers de ressources Visual C ++ avec lesquels le code interagit, ou est-ce plus semblable à certains des IDE de Borland qui vont générer du code pour guis?

Était-ce utile?

La solution

Après avoir acheté les deux livres de votre question, je recommande Cocoa Programming pour Mac OS X comme moyen rapide d’apprentissage du langage et du cadre Cocoa. C’est probablement le moyen le plus rapide de créer de véritables applications dans Cocoa. Je le recommande fortement. Programmer en Objective-C 2.0 est un excellent ouvrage de référence, mais si vous connaissez déjà le langage C, il ne vous apprendra pas grand-chose que vous ne pouvez pas extraire de l'autre livre. Toutefois, si vous avez besoin d’une liste de tous les mots clés réservés dans Objective-C, c’est le livre à consulter.

Toute l'interface utilisateur peut être générée de manière progressive, mais vous constaterez qu'il est beaucoup plus facile d'utiliser Interface Builder, fourni avec XCode, pour présenter l'interface utilisateur. Vous allez vous retrouver avec beaucoup moins de code. Avec les liaisons, vous pouvez même éliminer le code qui n’est pas directement lié à la présentation de l’interface. Les détails se trouvent dans le livre Cocoa Programming pour Mac OS X.

La seule grande chose qui me manque de Java est l’API de collection. Dans Cocoa, vous n'obtenez que NSSet, NSArray et NSDictionary, et il n'y a pas d'analogique à l'interface Comparable. Ces classes sont également immuables, mais ont des versions mutables telles que NSMutableArray.

En fait, je n'ai pas joué avec la récupération de place dans Objective-C 2.0. Dans les versions précédentes d'Objective-C, la gestion de la mémoire était gérée par les méthodes Retain, Release et Autorelease. Les objets ont été créés avec un nombre de conservations égal à 1. Conserver incrémenté ce décompte, le relâcher décrémenté, et la libération automatique des objets est un peu plus compliquée. Encore une fois, le livre de programmation de cacao l'explique bien. La récupération de place est une option, et si elle est activée, les méthodes de retenue, de libération et de libération automatique ne font rien. Toutefois, si vous écrivez une bibliothèque ou un cadre destiné à être utilisé par d'autres, vous devez le programmer comme si le nettoyage de la mémoire était désactivé. De cette manière, les applications peuvent l’utiliser qu’elles aient ou non la récupération de place activée.

En ce qui concerne les ressources Web, http://cocoadevcentral.com/ est un site de qualité avec des didacticiels pour débutants. Le wiki CocoaDev sur http://www.cocoadev.com/ contient des informations détaillées sur de nombreux sujets, et vous pouvez généralement trouver des informations utiles sur la liste de diffusion cocoa-dev http: // lists .apple.com/mailman / listinfo / cocoa-dev

Le développement de l'iPhone est un peu différent, et les détails sont limités par une NDA. Toutefois, si Apple obtient l’approbation d’accès au centre de développement pour iPhone, Apple a fourni d’excellents aperçus vidéo des différences, qui vous indiqueront la documentation dont vous avez besoin pour passer de la programmation de Mac OS X à iPhone OS X.

Autres conseils

Obtenez Cocoa Programming pour Mac OS X. Ce livre répondra à la plupart de vos questions. Vous pouvez également commencer à lire Devenez un Xcoder et Cocoa Dev Central .

Le kit de développement logiciel (SDK) pour iPhone est toujours sous NDA, vous ne pourrez donc y trouver aucune ressource en ligne, à l'exception de celle fournie par Apple.

Cocoa UI est basé sur MVC. Vous utilisez Interface Builder pour concevoir vos vues, puis les lier à vos modèles et à vos contrôleurs. L’objectif C est un mélange de C et de Smalltalk.

Une autre option pour vous est jaiPhon, qui vous permet d’écrire des applications java traduites en langage iPhone lors de la construction.

Je ne sais pas encore si c'est disponible, ou si c'est commercial ou autre, mais c'est quand même intéressant.

http://www.jaiphon.com/

Vérifiez également ceci:

http://www.xmlvm.org/overview/

Il s’agit d’un projet qui tente de compiler de manière croisée des programmes écrits dans diverses langues sources dans diverses langues cibles. L'un des premiers cas de test consistait à écrire des programmes en Java et à les exécuter sur un iPhone. Regarder la vidéo sur le site en vaut la peine.

Cela dit, je n'ai pas essayé. Le projet semble assez bêta et il n’ya pas beaucoup d’activité sur leur site SourceForge.

Connaissez-vous déjà les crochets?

Voici un résumé de sa raison d'être de mon point de vue. J'espère que cela aidera aussi.

Je pense que vous vous sentirez plutôt nu lorsque vous passerez d’IntelliJ à Xcode. Mais cela ne concerne que l'outil. Apportez des vêtements supplémentaires (TextMate + FScript)!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top