J'ai vu cette question (et ses variantes) beaucoup ces derniers temps. Ce qui m'étonne, c'est la façon dont souvent les gens à répondre, mais le peu de réponse.
J'ai mes préférences (j'aime les deux piles), mais c'est là que la plupart des "réponses" commencent à aller mal. Il ne devrait pas être sur de ce que je veux (ou ce que n'importe qui d'autre veut).
Voici comment je voudrais aller sur la détermination de la valeur de MonoTouch - je ne peux pas être objectif, évidemment, mais je pense que c'est assez fanatisme gratuit:
Est-ce pour le plaisir ou d'affaires? Si vous avez envie de me lancer dans le consulting dans ce domaine, vous pourriez faire votre $399 retour très rapidement.
Voulez-vous apprendre la plate-forme à l'intérieur, ou avez-vous "juste" envie d'écrire des applications pour elle?
Aimez-vous .Net assez que l'utilisation d'un autre dev pile serait prendre le plaisir de vous? Encore une fois, j'aime bien les deux piles (Apple et Mono), mais pour moi, MonoTouch rend l'expérience d'autant plus plaisir. Je n'ai pas arrêté à l'aide d'Apple outils, mais c'est surtout parce que je vraiment ne profiter à la fois des piles. J'aime l'iPhone, et je l'aime .Net. Dans ce cas, pour moi, MonoTouch était une évidence.
Vous sentez-vous à l'aise de travailler avec des C? Je ne veux pas dire Objective-C, mais C - c'est important parce que Objective-C est C. C'est une belle fantaisie, amical OO version, mais si les pointeurs de vous donner la heebie-heebie, MonoTouch est votre ami. Et n'écoutez pas les sceptiques qui pensent que vous êtes un dev lavette s'il vous arrive de ne pas comme des pointeurs (ou C, etc.). J'ai utilisé pour se promener avec une copie de la ROM IBM BIOS de Poche, et quand j'ai écrit le montage et forcer mon ordinateur en vidéo drôle, modes et de l'écriture de ma propre police de rendu bits pour eux et (certes trash) systèmes de fenêtrage, je ne pense pas que le QuickBasic développeurs ont été wusses. J'ai été un QuickBasic dev (en plus du reste). Ne cédez jamais à nerd machisme. Si vous n'aimez pas C, et si vous n'aimez pas les pointeurs, et si vous voulez rester aussi loin de manuel de gestion de la mémoire que possible (et, pour être juste, il n'est pas mauvais du tout en ObjC), puis... MonoTouch. Et ne prenez pas de toute la société.
Aimeriez-vous pour cibler les utilisateurs ou les entreprises? Il n'a pas beaucoup d'importance pour moi, mais il y a encore des gens sur le Bord, et le fait est: vous pouvez créer un beaucoup plus petit package de téléchargement si vous utilisez Apple pile. J'ai été jouer avec MonoTouch, et j'ai un peu décent application qui va, une fois compressé, descend à environ 2,7 MO (lors de la soumission de votre application pour la distribution, vous zip - lorsque des applications sont téléchargées à partir de la boutique, elles sont zippées - donc, lors de savoir si votre application va venir dans le cadre de l'10 MO OTA limite, zip le meunier de première, vous serez agréablement surpris avec MonoTouch). Mais, MT bonheur de côté, une demi-meg contre près de trois (par exemple) est quelque chose qui pourrait être important pour vous si vous ciblez les utilisateurs finaux. Si vous envisagez de travail de l'entreprise, quelques MO n'a pas d'importance du tout. Et, juste pour être clair, je vais soumettre un MT application basée sur le magasin soonishly, et je n'ai aucun problème que ce soit avec la taille. Ne me dérange pas du tout. Mais si c'est quelque chose qui constitueraient une préoccupation pour vous, puis d'Apple pile gagne celui-ci.
Faire quelque XML travail? MonoTouch. Période.
La manipulation de la chaîne? Date de manipulation? Des millions d'autres petites choses que nous avons pris l'habitude de avec .Net du tout-ET-la-cuisine-évier cadres? MonoTouch.
Les services Web? MonoTouch.
Syntaxiquement, ils ont tous deux leurs avantages. Objective-C a tendance à être plus verbeux où vous avez à écrire. Vous trouverez vous-même à l'écriture de code en C#, vous n'auriez pas à écrire avec ObjC, mais il va dans les deux sens. Ce sujet pourrait remplir un livre. Je préfère la syntaxe C#, mais après avoir au cours de ma première ça c'est un autre monde de réaction à Objective-C, j'ai appris à l'apprécier un peu. Je me moque un peu dans les discussions (c' est bizarre pour les devs qui sont utilisés pour C#/Java/etc.), mais la vérité est que j'ai un Objectif-C en forme de place dans mon cœur qui me rend heureuse.
Prévoyez-vous d'utiliser Interface Builder? Parce que, même dans cette première version, je me retrouve à faire beaucoup moins de travail pour construire mon Isu avec l'IB et puis de les utiliser dans le code. Il se sent comme toute les étapes sont absents de l'Objective-C/IB façon de faire les choses, et je suis sûr que c'est parce que toute les étapes sont absents de l'Objective-C/IB façon de faire les choses. Jusqu'à présent, et je ne pense pas que j'ai suffisamment testé, mais jusqu'à présent, MonoTouch est le gagnant ici pour savoir comment beaucoup moins de travail que vous avez à faire.
Pensez-vous qu'il est amusant d'apprendre de nouvelles langues et de plates-formes? Si oui, l'iPhone a beaucoup à offrir, et Apple pile sera susceptible de vous sortir de votre confort-zone - qui, pour certains devs, est amusant (Hi - je suis un de ces devs - je plaisante à ce sujet et de donner à Apple un moment difficile, mais j'ai eu beaucoup de plaisir à apprendre de développement pour iPhone par Apple outils).
Il y a donc beaucoup de choses à considérer. La valeur est abstraite. Si nous parlons de coûts et de savoir si ça vaut le coup, la réponse revient à mon premier élément de puce: si ce n'est pour les affaires, et si vous pouvez faire le travail, vous allez faire de votre argent sur le dos.
Alors... c'est à peu près comme objectif que je peux être. C'est une courte liste de ce que vous pourriez vous poser, mais c'est un point de départ.
Personnellement (laissons tomber l'objectivité pour un moment), j'aime et que j'utilise à la fois. Et je suis heureux que j'ai appris la Pomme de la pile en premier. Il m'était plus facile de se lever et courir avec MonoTouch quand je connaissais déjà mon chemin autour de la Pomme du monde. Comme d'autres l'ont dit, vous êtes toujours va travailler avec CocoaTouch - il va juste être dans un .Net-isée de l'environnement.
Mais il n'y a plus que cela. Les gens qui n'ont pas utilisé MonoTouch ont tendance à s'arrêter là: "C'est un wrapper bla bla bla" - ce n'est pas MonoTouch.
MonoTouch vous donne accès à ce qui CocoaTouch a à offrir tout en vous donnant accès à quoi (un sous-ensemble de) .Net a à offrir, une IDE certaines personnes se sentent plus à l'aise avec (je suis l'un d'entre eux), une meilleure intégration avec Interface Builder, et même si vous n'obtenez pas de les oublier complètement de gestion de la mémoire, vous obtenez un joli certaine marge de manœuvre.
Si vous n'êtes pas sûr, prenez Apple pile (c'est gratuit), et de saisir le MonoTouch eval de la pile (c'est gratuit). Jusqu'à ce que vous vous joignez d'Apple dev programme, les deux seront exécutés uniquement sur le simulateur, mais c'est assez pour vous aider à déterminer si vous largement préférer l'une à l'autre, et si possible MonoTouch est, pour vous, d'une valeur de $399.
Et n'écoutez pas les zélotes ont - ils tendance à être ceux qui n'ont pas utilisé la technologie qu'ils sont de s'insurger contre :)