Ultimamente tenho visto essa pergunta (e variações nela). O que me surpreende é a frequência com que as pessoas respondem, mas o número de respostas .
Tenho minhas preferências (gosto das duas pilhas), mas é aqui que a maioria das "respostas" começa a dar errado. Não deve ser sobre o que eu quero (ou o que mais alguém quer).
Aqui está como eu determinaria o valor do MonoTouch - obviamente, não posso ser objetivo, mas acho que isso é bastante isento de zelos:
Isso é para diversão ou negócios? Se você quiser entrar em consultoria nessa área, poderá recuperar os seus US $ 399 rapidamente.
Deseja aprender a plataforma de dentro para fora ou "apenas" deseja criar aplicativos para ela?
Você gosta do .Net o suficiente para usar uma pilha de desenvolvimento diferente para tirar a diversão dele? Mais uma vez, gosto das duas pilhas (Apple e Mono), mas para mim o MonoTouch torna a experiência muito mais divertida. Não parei de usar as ferramentas da Apple, mas é principalmente porque eu realmente gosto das duas pilhas . Eu amo o iPhone e amo .Net. Nesse caso, para mim, o MonoTouch não era acéfalo.
Você se sente confortável trabalhando com C? Não me refiro ao Objective-C, mas C - importa porque o Objective-C é C. É uma versão OO agradável, chique e amigável, mas se os indicadores lhe derem heebie-jeebies, o MonoTouch é seu amigo. E não ouça os pessimistas que pensam que você é um covarde, se acontecer de não gostar de ponteiros (ou C, etc.). Eu costumava andar por aí com uma cópia do IBM ROM BIOS Pocket Reference, e quando eu escrevia assembly e forçava meu computador a modos de vídeo engraçados e escrevia meus próprios bits de renderização de fonte para eles e sistemas de janelas (reconhecidamente inúteis), eu não ' acho que os desenvolvedores do QuickBasic eram covardes. Eu estavaum desenvolvedor QuickBasic (além do restante). Nunca ceda ao machismo nerd. Se você não gosta de C e não gosta de ponteiros, e se deseja ficar o mais longe possível do gerenciamento manual de memória (e, para ser justo, não é ruim no ObjC), então. .. MonoTouch. E não se importe com isso.
Deseja segmentar usuários ou empresas? Não importa muito para mim, mas ainda existem pessoas no Edge, e o fato é: você pode criar um pacote de download muito menor se usar a pilha da Apple. Ando brincando com o MonoTouch e tenho um pequeno aplicativo decente que, uma vez compactado, fica em torno de 2,7 MB (ao enviar seu aplicativo para distribuição, você o fecha - quando os aplicativos são baixados da loja, eles ' é compactado novamente. Portanto, ao descobrir se seu aplicativo está abaixo do limite de 10 MB da OTA, primeiro aperte o botão - você ficará surpreso com o MonoTouch. Mas, à parte a felicidade do MT, meio megas versus quase três (por exemplo) é algo que pode ser importante para você se você estiver segmentando usuários finais. Se você está pensando no trabalho da empresa, alguns MB não importarão nada. E, só para esclarecer: vou enviar um aplicativo baseado em MT para a loja rapidamente, e não tenho nenhum problema com o tamanho. Não me incomoda nada. Mas se isso é algo que preocupariavocê , então a pilha da Apple vence esta.
Algum XML funciona? MonoTouch. Período.
Manipulação de cordas? Manipulação de datas? Um milhão de outras pequenas coisas com as quais nos acostumamos às estruturas de tudo-e-a-cozinha-da-net. MonoTouch.
Serviços web? MonoTouch.
Sintaticamente, ambos têm suas vantagens. O Objetivo-C tende a ser mais detalhado onde você deve escrevê-lo . Você se encontrará escrevendo código com C #, não precisaria escrever com ObjC, mas é nos dois sentidos. Este tópico em particular pode preencher um livro. Eu prefiro a sintaxe C #, mas depois de superar minha reação inicial do outro mundo ao Objective-C, aprendi a gostar um pouco. Eu zoo um pouco disso nas conversas ( é estranho para desenvolvedores que estão acostumados a C # / Java / etc.), Mas a verdade é que eu tenho um ponto em forma de Objective-C no meu coração que me faz feliz.
Você planeja usar o Interface Builder? Porque, mesmo nesta versão inicial, eu me vejo fazendo muito menos trabalho para criar minhas UIs com o IB e depois usá-las no código. Parece que etapas inteiras estão faltando na maneira de fazer as coisas do Objective-C / IB, e tenho certeza que é porque faltam etapas inteiras na maneira de fazer as coisas do Objective-C / IB. Até agora, e acho que não testei o suficiente, mas até agora , o MonoTouch é o vencedor por quanto menos trabalho você tem que fazer.
Você acha divertido aprender novos idiomas e plataformas? Nesse caso, o iPhone tem muito a oferecer, e a pilha da Apple provavelmente o tirará da sua zona de conforto - o que, para alguns desenvolvedores, é divertido (Oi - eu sou um desses desenvolvedores - eu brinco com isso e dou É difícil para a Apple, mas me diverti muito aprendendo o desenvolvimento do iPhone através das ferramentas da Apple).
Há tantas coisas a considerar. O valor é tão abstrato. Se estamos falando de custo e se vale a pena, a resposta se resume ao meu primeiro item: se isso é para negócios e se você pode obter o trabalho, você ganhará seu dinheiro de volta.
Então ... isso é tão objetivo quanto eu posso ser. Esta é uma pequena lista do que você pode se perguntar, mas é um ponto de partida.
Pessoalmente (vamos deixar cair a objetividade por um momento), eu amo e uso os dois. E fico feliz por ter aprendido a pilha da Apple primeiro. Era mais fácil para mim começar a operar com o MonoTouch quando eu já sabia o que fazer no mundo da Apple. Como já foi dito, você ainda estará trabalhando com o CocoaTouch - ele estará apenas em um ambiente com rede.
Mas há mais do que isso. As pessoas que não usaram o MonoTouch tendem a parar por aí - "É um invólucro blá blá blá" - esse não é o MonoTouch.
O MonoTouch oferece acesso ao que o CocoaTouch tem a oferecer e também ao que (um subconjunto de) .Net tem a oferecer, um IDE com o qual algumas pessoas se sentem mais confortáveis (eu sou um deles), melhor integração com o Interface Builder , e embora você não consiga esquecer completamente o gerenciamento de memória, você tem um bom grau de margem de manobra.
Se você não tiver certeza, pegue a pilha da Apple (é grátis) e pegue a pilha de avaliação MonoTouch (é grátis). Até você ingressar no programa de desenvolvimento da Apple, os dois só rodam no simulador, mas isso é suficiente para ajudá-lo a descobrir se você prefere muito um ao outro e possível se o MonoTouch vale para você US $ 399.
E não dê ouvidos aos fanáticos - eles tendem a ser os que não usaram a tecnologia contra a qual se opõem :)