Question

En tant que développeur .Net j'ai toujours rêvé la possibilité de développer mes compétences existantes des applications (C #) pour l'iPhone.

Les deux programmes ont besoin d'un Mac et l'iPhone Sdk installé.

Appcelerator Titanium a été la première application que j'ai essayé et il est basé sur l'exposition certains Iphone api natif de javascript afin qu'ils puissent être appelés en utilisant cette langue.

MonoTouch commence à 399 $ pour beeing en mesure de déployer sur l'iPhone et non pas sur le simulateur iPhone en titane est libre.

MonoTouch (Monodevelop) a une Ide qui manque actuellement en titane (mais vous pouvez utiliser un éditeur comme TextMate, Aptana ...)

Je pense générer à la fois programme à la fin d'une application précompilé native (même si je ne suis pas sûr de la taille de l'application finale sur l'iPhone comme je pense que les appels .net framework sont prelilnked au moment de la compilation dans MonoTouch).

Je suis pas sûr de la couverture complète de tous les api et fonctionnalités de l'iPhone.

Le titane a également l'avantage de permettre le développement d'applications Android, mais en tant que développeur c # Je trouve encore l'expérience MonoTouch plus comme le Visual Studio One.

Lequel choisiriez-vous et quelles sont vos expériences sur MonoTouch et Titane?

Était-ce utile?

La solution

Comme tout outil qui ou la plate-forme ou de langue ou-cadre-ou tout question, il faut vraiment se résume à ce que voulez.

Oubliez tous les cas-you-want-to-develop-pour-ce-plateforme-then-vous-avez à payer-votre-cotisation des conseils. Si vous êtes intéressé à apprendre Objective-C, Xcode et bits d'Apple associés, puis goferit. J'ai fait. Il a été amusant, mais my intérêt était dans le développement des applications iPhone. L'apprentissage d'une nouvelle langue, cadre et IDE était juste un bonus (j'aime ce genre de choses). Il était également nécessaire quand j'ai commencé.

Je travaille avec MonoTouch depuis qu'il a été libéré, et je l'aime. I préfèrent C # à Objective-C, et j'aime avoir accès au sous-ensemble du framework .Net (Mono) qui fournit MonoTouch. Il y a certaines choses qui sont tout simplement plus facile à faire avec .Net que Cocoa (manipulation de chaîne, la manipulation de la date, quoi que ce soit XML, etc.).

J'aime ne pas avoir à traiter aussi référence comptant plus. Je suis gâtée par des années de ne pas avoir à garder une trace des ressources à ce niveau. Je ne me dérange pas d'avoir à nettoyer après moi, mais je ne veux pas avoir à faire manuellement quelque chose que tout autre plate-forme moderne dev je l'ai utilisé fait pour moi automatiquement. De plus, même pour les développeurs Objective-C chevronnés, comptage de référence ne sont pas une évidence. Faites défiler la sortie de la console OS X quelque temps pour voir combien de plantage des applications en raison de problèmes de gestion de mémoire (je sais - cela peut se produire avec essentiellement une application, mais il est beaucoup plus facile de faire des erreurs qui mènent à cette situation quand vous obtenez devs surchargés de travail impliqués dont la durée d'attention ont été détruits par douze heures de si cela et si cela et d'autre cela et que d'autre et bla bla bla).

J'utilise encore Objective-C / Xcode - Je l'ai vraiment appris à aimer les outils d'Apple. Je pense honnêtement qu'ils sont maladroits et un peu mystérieux, mais toujours amusant.

Mais ... je aussi comme ceci:

public string SomeString { get; set; }

Pour faire la même chose avec Objective-C (sur l'iPhone, de toute façon) exige que vous déclarez une variable locale pour sauvegarder la propriété, écrire la déclaration de propriété, puis utiliser la directive « synthèse » pour que la propriété générée pour vous (en fonction de ce que la propriété attributs que vous spécifiez, vous pourriez avoir une propriété qui enveloppe accesseurs qui prennent soin de comptage de référence pour vous - Dans l'ensemble, ce un gain de temps, mais la voie C # est le gagnant clair ici).

C'est juste un exemple de la façon dont MonoTouch peut vous rendre la vie plus facile, surtout si vous êtes habitué à .Net / Java / Python / d'autres langues qui ne nécessitent pas que vous obtenez vos doigts sales avec mémoire Mangement (à moins que vous veulent).

En ce qui concerne l'iPhone-ness concerne, en dehors de saumurage partie de .Net au monde iPhone, les cartes d'espace de noms MonoTouch à CocoaTouch, donc si vous êtes confus au sujet de, disons, le MonoTouch UIViewController, vous pouvez simplement sauter au-dessus aux documents d'Apple sur le UIViewController. MonoTouch .Net-lisée CocoaTouch, mais il est assez proche que vous avez peu de chances de frapper un mur (qui n'aurait pas également touché si vous utilisez Xcode / Objective-C). Il est lisse.

Le titane est différent. Comme ils essaient ( essayer ) pour créer une couche d'abstraction qui vous permet d'écrire la même application pour plusieurs plates-formes, vous allez traiter avec les inconvénients habituels: API totalement différentes, la perte de flexibilité ( la même chose pourrait être dit de MonoTouch, mais pas à distance au même degré), et essentiellement avoir à apprendre une nouvelle plate-forme complète (qui est ce que vous essayez d'éviter en contournant Xcode / Objective-C / CocoaTouch, non?) .

Je déteste aussi JavaScript, donc je vais être biaisé contre titane. Mais même si cela était pas le cas - même si je pouvais utiliser une langue que j'aime - les API ne pas chatouiller mon imagination. Ou mon tout.

Quelles que soient les outils de dev que vous choisissez, vous finissent par avoir à apprendre quelque chose sur CocoaTouch. Que ce soit Xcode / Objective-C, MonoTouch ou titane, SomethING va casser ou aller tout bancal sur vous, et vous êtes finalement devoir se référer à la documentation CocoaTouch.

Si je devais donner une conférence sur le développement iPhone (que j'ai, et que je vais faire à nouveau), et si je devais discuter des alternatives aux outils de développement d'Apple (que je), j'encourage encore fortement devs à au moins le travail à travers quelques applications iPhone de base en utilisant les outils natifs. Il va vous faire un meilleur développeur pour la plate-forme - période. Et vous pouvez utiliser cette phase commence à déterminer si vous même voulez à utiliser autre chose que les bits libres Apple fournis. Tu ne devrais pas. Je me sers de MonoTouch parce qu'il me plaît -. Non pas parce qu'il est nécessaire

Donc, pour résumer quelques critères de base:

  • Préférences (langue / cadres)

  • Devices (vous souciez de plates-formes non-iPhone ou pensez que vous pourriez un jour?)

  • Confort (si vous aimez et connaissez C # beaucoup mieux que Objective-C, il n'y a aucune raison de ne pas aller avec MonoTouch)

Et ne pas écouter les défaitistes à moins qu'ils aient en fait utilisé la technologie dont ils parlent. Par exemple, je l'ai lu sur Titanium, mais je ne suis pas vécu avec elle - je sais juste que je ne veux rien à voir avec cela à cause de mes préférences. Cela ne rend pas « mauvais » -. Quelque chose que je ne veux pas dans ma vie

La foule C Objectif peut être impressionnante du zèle. Bien qu'il ya beaucoup de devs à l'esprit ouvert en elle, il y a tellement, donc, si beaucoup qui pensent Objective-C et Cocoa et bla bla bla sont les outils de dernière dev devkind auront besoin.

les ignorer.

Si vous êtes inquiet au sujet du soutien, voici quelques choses à considérer:

  • Apple est susceptible de rester à jour, car ils sont ceux qui font cette ordure.

  • MonoTouch est susceptible de rester à jour - les coups d'oeil Mono ont fait un travail incroyable garder avec Microsoft, et je ne vois aucune raison pour laquelle ils ne feront pas la même chose avec Apple. Je suis époustouflé par ce qu'ils font. Et malgré MonoTouch ayant été libéré, comme, ils ont déjà il y a cinq minutes une mise à jour pour iPhone 3.1 choses. Ils sont sérieux à ce sujet, et je pense qu'ils sont magiques. Ils sont les elfes Keebler du monde dev. Ils sont assis dans leurs couches secrètes et manivelle tout le monde stuff (ok - pas tout le monde) aime, mais que personne ne serait même tenter de le faire

  • .
  • Titanium est soit va devenir une API unifiée maladroite pour les applications d'écriture pour de multiples plates-formes qui est tout à fait sa propre chose, ou il va devenir de plus en plus que les capacités Splintered de différentes plates-formes diverger. Ouais, c'est un tas de fauteuil typique avenir regardant nerdly ... J'aurais préfacé ce point de balle avec « Il est mon avis ... » Si seulement il y avait un moyen de revenir en arrière et changer.

Je vais me taire maintenant.

Allez avec ce que vous aimez. MonoTouch est une alternative « sûre » à la substance d'Apple. Je crains que Titanium va descendre les mêmes vieilles route oups-ce super-haut niveau plate-forme abstraction-couche-stuff-doesnt-vraiment-travail que tant d'autres technologies ont. Mais si vous faites quelque chose de simple, il n'y a pas de mal à donner un coup de feu, d'autant plus qu'il est gratuit pendant la période bêta.

aright.

vraiment arrêter maintenant ... J'espère que cela aide.

Autres conseils

Ce sont des façons amusantes et intéressantes que vous pouvez créer des applications iPhone. Mais, pour le développement de l'iPhone native vraiment rapide, votre meilleur pari est gratuit pour l'iPhone SDK et Xcode.

Pour être honnête, les choses les plus difficiles à apprendre sont les capacités des cadres eux-mêmes, pas la syntaxe du langage. Mais c'est une question que vous devez aborder de toute façon que ces IDEs / langues ont encore besoin de vous saisir quelques-unes des conventions de cacao (et Cocoa Touch).

Je ne dis pas cela comme un cacao / Objective-C snob, mais si vous connaissez C (qui comme C # dev vous) il n'y a vraiment pas de barrière à l'entrée.

De plus, vous aurez accès à des tonnes de tutoriels et des exemples de code qui ne veut pas être disponibles pour ces traducteurs naissantes / IDEs / langues.

Apprendre une autre langue de programmation est rarement une mauvaise chose, et en tant que programmeur expérimenté, votre investissement en temps ne sera pas aussi grand que vous le pensez.

J'ai créé un projet open source http://propertycross.com qui aide les développeurs sélectionner un mobile multi-plateforme cadre en montrant la même application mis en œuvre avec Sencha, titane, Xamarin et plus. Ce projet vous permet de comparer facilement un large éventail de cadres en termes d'expérience utilisateur final, le code, IDE, expérience développeur etc ...

J'ai un peu comme l'idée de fournir des moyens d'obtenir rapidement une prise en main sur iPhone dev avec les gens techno savent déjà. Je personnellement, en tant que développeur Java, utilisez iSpectrum ( http://www.flexycore.com ). Il vient aussi avec un IDE, débogueur et d'autres choses, ce qui rend vraiment pratique pour développer avec car il bénéficie de toute la puissance de plugin Eclipse Java. Être basé sur Java, cela permet également de réutiliser facilement le code déjà existant à partir d'autres applications Java, ce qui peut être très pratique à condition que Java est présent sur presque toutes les plateformes (bureau et comme pour mobile) sauf iPhone. De plus, il est gratuit pour les projets open source.

Je préfère considérer ce genre de solutions, parce que je n'aime pas l'idée de revenir au développement dans emacs :).

Je sais que c'est un vieux sujet, mais dans l'intérêt de rester à jour, il semble que MonoTouch et d'autres cadres multiplateformes sont va être dans le SDK 4.0 interdit . Votre seul pari « sûr » pour écrire des applications iPhone est d'utiliser XCode et Objective-C, au moins pour le moment.

Si vous êtes programmeur C # pourquoi vous ne devriez pas investir un certain temps pour apprendre Objective C. Honnêtement parlant, il ne prendra pas beaucoup de temps de vous. Mais vous fait du bien de travailler dans une nouvelle plate-forme avec une nouvelle langue. Apprendre de nouvelles choses tout le temps me fascine.

Il existe de nombreuses façons d'obtenir sur l'appareil. Apple a déclaré dans la licence du SDK que la seule façon d'obtenir approuvé sur l'appareil est par C, C ++, ObjectiveC et Javascript.

Il apparaît à ce moment que les applications construit sur MonoTouch et Appcelerator Titanium sont acceptées dans l'App Store. Merci à la modification de la licence, il y a beaucoup de peur, l'incertitude et le doute à ce sujet. Apple a peur tout le monde ne fait pas ObjectiveC.

Je vous suggère de faire tout ce qui fait pour vous le plus de sens en tant que développeur. Si vous connaissez C # et .NET, vous devriez aller avec MonoTouch. Si vous connaissez ou ObjectiveC la plate-forme Mac, ObjectiveC est probablement le chemin à parcourir. Si vous connaissez X et il est sur l'iPhone, bien, X est où je suggère à la recherche d'abord.

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