À quel point sera-t-il difficile de passer de mon expertise actuelle en C # à la création d'applications pour iPad / iPhone dans Objective C?
Réponses
Trop de publicités?La langue de saut est OK. Une fois passé le choc initial de l' [
et ]
. Cependant, les bibliothèques et le Cadre choc sera importante.
Le Cacao et le Toucher cadres sont beaucoup plus léger en comparaison avec .Net Framework, donc au moins vous pouvez regarder le côté lumineux, vous aurez moins à apprendre. Mais leur philosophie sous-jacente, la mise en page et l'évolution historique de chemin d'accès est très différent du C#/.Net framework. Si ce sera facile ou difficile, est difficile à apprécier. Quelques opinions personnelles:
- Le Cacao manière de construire l'INTERFACE utilisateur est à des années-lumière de rien .Net framework a aujourd'hui, Forms ou WPF. Il sera difficile à saisir au premier abord, mais si votre grok, il va faire BEAUCOUP de sens. Il est bon ole' Modèle-Vue-Contrôleur basé sur Smalltalk cadre et naturellement vous guider sur un droit chemin de la conception de l'INTERFACE utilisateur.
- Les graphiques, les vidéos, les médias vont se sentir comme d'une autre planète quand vient le temps de partir .Net fond. Mais, malgré leur apparente des arcanes de l'apparence, le Cacao, les offres sont très puissant, bien que d'une certaine manière de faible niveau.
- L'Animation va être un énorme soupir de soulagement. Cacao animation est tout simplement facile à utiliser, et il n'y a rien d'équivalent dans .Net
- Si vous ne openGL au lieu de Cacao natif de graphiques, puis est openGL et openGL est à peu près la même saveur sur n'importe quelle plateforme.
- La programmation réseau est moins bonne sur le Cacao de côte. Vous avez quelques soutien de base et dois admettre qu'au moins l'API est conçu qui est vraiment dur de faire ce genre de choses stupide (il vous force à utiliser la programmation asynchrone, donc pas plus d'un thread par client non-sens), mais je serais prêt à parier que vous allez manquer les .Net de sucre dans les services publics (WebRequest, WebClient etc)
- Analyse XML. Le cacao de soutien est tout simplement primitive. Au moins, là encore, l'analyse XML est basé sur l'événement, donc va pour vous guider vers de meilleurs programmes, mais il est compliqué à mettre en place.
- La base de données. Va être d'un autre monde. Vous avez le choix d'aller à raw SQLite ou de Base de Données. L'essentiel des Données est meilleure à mon humble avis. Un niveau élevé de l'ORM et active record, ce genre de choses, avec toutes les subtilités de la de stockage sous-jacent disparaît. Facile à utiliser et puissant, aussi longtemps que vous lui demandez de faire quelque chose, il sait comment faire. Incroyablement lourd pour le forcer à faire quelque chose, il ne sait pas comment faire. Vrai pour tout ORM, en fin de compte. Vous manquez de LINQ, et vous aurez à oublier SQL. L'essentiel, c'est que la DB expérience de la programmation de .Net ne fait pas de transfert de Base de Données mondiale. L'alternative de raw SQLite semble plus familier, mais est très faible niveau de, va se sentir comme la programmation de 1990 ODBC qu'en 2010 .Net.
- Valeur-Clé De Codage De La Programmation. Ce concept n'a pas de direct .Net équivalent. Il peut sembler comme une sorte de simple dictionnaire, mais, en fait, est beaucoup plus puissant. Il entrelace avec le moteur d'exécution de l'Objectif de la partie de [Objectif-C] et donne naissance à certains trucs. Vous aurez besoin de comprendre la Valeur-Clé de codage pour faire un usage efficace de Core Animation ou de Base de Données. Vous pouvez penser que la réflexion sur les stéroïdes. Il peut atteindre les mêmes trucs Linq-to-Objets peuvent le faire, mais n'allez pas n'importe où élégant, Linq.
- Est Le C++. Objective-C est un sur-ensemble de C++ et est soutenu par des baisses récentes de gcc, de sorte que vous pouvez retomber en C++ à tout moment. STL, foncteurs, modèle de la métaprogrammation, ils travaillent tous. Vous pouvez mélanger et assortir, dans la même application de Cacao pur et Base Objective-C et C++. Vous ne serez pas en mesure de faire quelque chose comme hériter d'une Objective-C classe comme une classe C++, mais vous serez en mesure de communiquer entre une classe C++ et Objective-C objet. Pas sûr quel est le statut actuel de boost ou de Loki soutien.
De nombreux domaines du mal dans le Cacao ont différents 3ème partie les bibliothèques, mais je ne peux pas entrer en comparaison de tout le Cacao 3ème parties contre .Net 3r parties, j'ai une vie...
Dans l'ensemble, je voudrais résumer brièvement comme En Objective-C à l'entrée de la barre est plus élevé. Apporter un cerveau.
En plus de l'excellente réponse de Remus, vous devrez également comprendre et être capable de mettre en œuvre la gestion de la mémoire. Si vous avez grandi avec Java ou .NET, cela peut vous être étranger. Faites très attention à cette partie des tutoriels, et pratiquer ce par vissage intentionnellement vers le haut. Vous devez savoir à quoi ressemblent ces erreurs et comment elles se comportent.
Bonne chance!
C'est une taille décente, de sauter, mais vous pouvez en apprendre assez pour obtenir jusqu'à la vitesse de quelques jours.
Une fois que vous obtenez l'Objectif C la syntaxe et les conventions en bas, vous aurez à plonger dans le Cacao, les bibliothèques et les cadres, qui sont assez considérables.
Je voudrais recommander un livre sur Objective-C ou de développement iPhone, ou de passer par tous les tutoriels sur le http://developer.apple.com site.
Une fois que vous y aller, découvrez ce site de bons exemples de code pour les applications: http://appsamuck.com
Je pense que si vous connaissez la programmation orientée objet, vous serez bien. La syntaxe n'est pas habituelle, comme la plupart des langages de programmation si, par exemple,
objet.la fonction var(arg1)
ressemble
[la fonction de l'objet[var:arg1]]
si je me souviens bien.
Si vous avez un Dev Apple ID et iTunes, vous pouvez aller à http://developer.apple.com/iphone/index.action ensuite, allez à la prise en main des vidéos (après quoi il devrait demander à votre Dev Apple ID à un certain point, puis lancez iTunes). Là, vous avez un tas de vidéos. Celui qui est appelé "Introduction à l'Objective-C et Cocoa Touch" peut être une bonne façon de commencer à regarder.
Espérons que cela aide.
La langue n’est pas difficile mais j’ai trouvé que l’environnement de développement n’était pas aussi lisse que VS à plusieurs égards. 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. Le compilateur ne vous dira pas si vous avez mal saisi le nom d'un événement.
Cela dit, le constructeur d'interface est magnifique. Vous devez juste vous rappeler d’appuyer sur le bouton Sauvegarder avant de retourner au code.