Est-ce que ce sera un bond de passer de C # à Objective C

Est-ce que ce sera difficile de transférer de mon expertise existante en C # à la création d’applications pour iPad / iPhone en Objective C?

    Le saut de langue est OK. Une fois que vous avez passé le choc initial de [ et ] . Cependant, les bibliothèques et le choc du cadre seront substantiels.

    Les frameworks Cocoa et Touch sont nettement plus légers comparés à .Net Framework, vous pouvez donc au moins voir le bon côté des choses, vous avez moins à apprendre. Mais leur philosophie, leur mise en page et leur évolution historique sous-jacentes sont très différentes du cadre C # /. Net. Que ce soit facile ou difficile, est difficile à apprécier. Quelques opinions personnelles:

    • La méthode Cocoa pour construire l’interface utilisateur est à des années-lumière de tout ce que le framework .Net a aujourd’hui, Forms ou WPF. Ce sera difficile à comprendre au début, mais si vous le croyez, cela aura beaucoup de sens. Il s’agit d’un bon modèle de contrôleur de vue basé sur le framework Smalltalk et vous guidera naturellement dans la conception de l’interface utilisateur.
    • Les graphiques, la vidéo, les médias vont se sentir comme sur une autre planète en provenance de .Net background. Mais malgré leur apparente apparence mystérieuse, les offres Cocoa sont très puissantes, bien qu’elles soient en quelque sorte faibles.
      • Introduction à Cocoa Drawing Guide
      • Quartz 2D Vue d’ensemble
      • Introduction au guide de programmation vidéo Core
      • Vue d’ensemble du Core Audio
    • L’animation va être un grand soulagement. L’animation Cocoa est tout simplement facile à utiliser et il n’y a rien d’équivalent dans .Net
      • Guide de programmation Introduction à Core Animation
    • Si vous utilisez OpenGL plutôt que des graphiques natifs Cocoa, alors OpenGL et OpenGL ont à peu près la même saveur sur toutes les plates-formes.
    • La programmation réseau est plus pauvre côté cacao. Vous avez un support basique et vous devez admettre qu’au moins l’API est vraiment difficile à faire stupide (cela vous oblige à utiliser une programmation asynchrone, donc plus de non-thread par client), mais je d pari que vous manquerez les utilitaires de sucre .Net (WebRequest, WebClient, etc.)
      • Référence de la classe NSConnection
      • Introduction aux objects dissortingbués
    • Analyse XML. Le support du cacao est tout simplement primitif. Au moins, l’parsing syntaxique XML est axée sur les événements, elle va donc vous guider vers de meilleurs programmes, mais c’est compliqué à mettre en place.
      • Introduction au guide de programmation XML piloté par les événements pour Cocoa
    • Base de données. Va être un monde différent. Vous avez le choix entre les données brutes SQLite ou Core. Les données de base sont meilleures à mon humble avis. Est un ORM de haut niveau et un type d’enregistrement actif, avec toutes les subtilités du stockage sous-jacent. Facile à utiliser et puissant, du moment que vous lui demandez de faire quelque chose qu’il sait faire. Incroyablement lourd de le forcer à faire quelque chose qu’il ne sait pas faire. Vrai pour n’importe quel ORM, finalement. LINQ vous manquera et vous devrez oublier SQL. L’essentiel est que l’expérience de programmation de firebase database de .Net ne transfère tout simplement pas au monde de données de base. L’alternative de SQLite brute semblera plus familière, mais son niveau est très bas, elle ressemblera plus à la programmation d’ODBC 1990 qu’à celle de 2010 .Net.
      • Introduction au guide de programmation de données de base
    • Programmation de codage par valeur-clé . Ce concept n’a pas d’équivalent direct .Net. Cela peut ressembler à une sorte de dictionnaire simple, mais en réalité, il est beaucoup plus puissant. Il s’imbrique avec le moteur d’exécution de la partie Objective de [Objective-C] et donne naissance à des astuces intéressantes. Vous devrez comprendre le codage Key-Value pour utiliser efficacement Core Animation ou Core Data. Vous pouvez y penser comme une reflection sur les stéroïdes. Il peut accomplir certaines des mêmes astuces que Linq-to-Objects, mais il ne sera pas aussi élégant que Linq.
    • Est C ++. Objective-C est un surensemble de C ++ et est soutenu par les dernières gouttes de gcc, vous pouvez donc revenir à C ++ à tout moment. STL , les foncteurs, la métaprogrammation des modèles , ils fonctionnent tous. Vous pouvez combiner et assortir dans la même application du cacao pur et du kernel Objective-C avec C ++. Vous ne pourrez pas faire quelque chose comme hériter d’une classe Objective-C en tant que classe C ++, mais vous pourrez communiquer entre une classe C ++ et un object Objective-C. Vous ne savez pas quel est l’état actuel du boost ou du support Loki .

    Beaucoup de zones mal couvertes dans Cocoa ont plusieurs bibliothèques tierces, mais je ne peux pas entrer en comparaison avec les parties Cocoa 3ème et .Net 3r, j’ai une vie …

    Globalement, je résumerais cela rapidement car, en Objective-C, la barre d’entrée est plus élevée. Apportez un cerveau.

    En plus de la réponse formidable de Remus, vous devrez également comprendre et mettre en œuvre la gestion de la mémoire. Si vous avez grandi sur Java ou .NET, cela peut vous être étranger. Portez une attention toute particulière à cette partie des didacticiels et pratiquez-la en la vissant intentionnellement. Vous devez savoir à quoi ces erreurs ressemblent et comment elles se comportent.

    Bonne chance!

    C’est un saut de taille décente, mais vous pouvez en apprendre assez pour vous mettre au diapason en quelques jours.

    Une fois que vous aurez obtenu la syntaxe et les conventions d’Objective C, vous devrez explorer les bibliothèques et les frameworks Cocoa, qui sont assez importants.

    Je recommanderais de prendre un livre sur le développement d’Objective C ou de l’iPhone, ou de parcourir tous les tutoriels sur le site http://developer.apple.com .

    Une fois que vous avez commencé, consultez ce site pour de bons exemples de code pour les applications: http://appsamuck.com

    Je pense que si vous connaissez la POO, tout ira bien. Le synthax n’est pas habituel car la plupart des langages de programmation, par exemple

    object.function (var arg1)

    ressemble à

    [fonction d’object [var: arg1]]

    si je me souviens bien.

    Si vous disposez d’un identifiant Apple Dev ID et d’iTunes, vous pouvez vous rendre sur http://developer.apple.com/iphone/index.action puis accéder aux vidéos de prise en main (après quoi, il devrait vous demander votre identifiant de développeur Apple à un moment donné. lancer iTunes). Là vous avez un tas de vidéos. Celui appelé “Introduction à Objective-C et Cocoa Touch” peut être un bon début à regarder.

    J’espère que cela pourra aider.

    Le langage n’est pas difficile mais j’ai trouvé que l’environnement de développement n’était pas aussi fin que VS de plusieurs façons. Par exemple, le générateur d’interface est une application distincte de l’environnement de codage entraînant des problèmes de synchronisation occasionnels, et le compilateur ne vous dira pas si vous avez mal saisi un nom d’événement.

    Cela dit, le constructeur de l’interface est magnifique. Vous devez juste vous rappeler d’appuyer sur le bouton Enregistrer avant de retourner au code.