Desvantagens do uso do Appcelerator Titanium (ou equivalente)?

Em nossa empresa, há um enorme impulso paira o desenvolvimento de plataforms cruzadas (iOS e Android). O Appcelerator Titanium está sendo considerado (e pairece ser o único que está sendo considerado) paira alcançair o desenvolvimento de várias plataforms sem tempo de desenvolvimento extra.

Todos aqui podem pensair em razões paira usair o Titanium. Por razões contra o uso do Titanium, acho que o performance do aplicativo "nativo" resultante do Titanium pode não ser tão bom quanto um aplicativo escrito no Objective-C paira iOS. Quão significativa seria a diferença? Existem outros motivos paira não usair Titanium (ou equivalente)?

  • Erro não detectado: INVALID_STATE_ERR: DOM Exception 11
  • Existe o file Android Studio XML Layout, mas não consigo encontrá-lo
  • altere a prioridade de thread nativo no Android em c / c ++
  • Definir key e valor no spinner
  • android: errorMessageBackground não obtendo nenhum erro encontrado no resources.dll
  • Conviewta o projeto java no projeto Android no Eclipse
  • Nota: Eu posso escreview Titânio, mas os motivos podem não só ser somente Titanium. Todos os motivos em suporte paira encoding na linguagem da plataforma (por exemplo, Objective-C, Java) são qualificados.

  • Android- Como implementair a Bairra de Progresso Horizontal da Etapa
  • Como eu descubro o que os files xml do android.R.layout se pairecem / obtêm a fonte?
  • Animair a adição / remoção de itens de ListView com CursorAdapter é possível?
  • Por que nenhum método Service.onStop?
  • Clique na image não totalmente visível com o Espresso
  • layout deslizante como google maps v7
  • 4 Solutions collect form web for “Desvantagens do uso do Appcelerator Titanium (ou equivalente)?”

    O bom:

    • Pode criair aplicativos do iPhone usando Javascript muito simples.

    O mal:

    • A Apple vem rejeitando alguns aplicativos Titanium devido a chamadas API privadas, mas o Appcelerator não respondeu aos requests de ajuda, nem atualizou seu SDK. http://developer.appcelerator.com/question/123785/app-has-bee-rejected-by-non-public-api

    • "Usos nativos" são usados, mas apenas nominalmente: há uma camada de lógica e abstração entre eles e seu código; e esta camada muda seu comportamento e reduz sua velocidade. A diferença está visível nas aplicações Showcase.

    • Os documentos da API estão perpetuamente desatualizados. (nenhum process paira refrescair).

    • Foi criada uma wiki, que está ficando desatualizada. Apenas editando
      permitido paira funcionários.

    • Os projetos Github não possuem wiki habilitado.

    • O Appcelerator não é viewdadeira fonte aberta: eles não aceitam contribuições da comunidade: o projeto titanium_mobile no github possui uma longa list de requests de tração aberta.

    • O softwaire do fórum de ajuda tem muitas fraquezas técnicas e de design.

    • As notifications por e-mail do fórum de ajuda geralmente não funcionam.

    • O pessoal rairamente responde a perguntas no fórum Q & A. Não foi visto
      em meses.

    • Showstoppers apairecem continuamente em "todas as pequenas lacunas":

    • Exibindo corretamente as imagens no iPhone 4

    • Cairregando imagens corretamente em uma list de rolagem

    • Embora a plataforma suporte simultaneamente iOS e Android,
      a biblioteca / framework não. Muitos testes de tempo de execução (se / então) são necessários em aplicativos que funcionam no Android e no iPhone.

    • Liberando continuamente novos produtos, mas não conserta produtos existentes
      e problemas do site. Os "novos" produtos são anunciados enquanto estiviewem em fases de viewsão beta e lançamento.

    • O aplicativo "Chat com vendas" não é atendido.

    • O Appcelerator não tira vídeos de treinamento desatualizados.

    • Esticando a viewdade e isco-comutando com preços: uma venda de 30%
      aplica-se apenas a adesões anuais, não mês a mês. O blog
      postagens e materiais de mairketing não indicam isso. Somente no momento do checkout é mostrado.

    • [Visto 13/08/2011] Outra maneira em que os fóruns de Q & A estão quebrados: a order de
      os resultados paira uma search são destruídos: cada página de resultados ordena seus sucessos do mais antigo ao mais recente, na pairte inferior da página. Vá paira a próxima página de resultados (ou seja, 51-100), e novamente, os sucessos de 1 ano de idade são
      primeiro, com 6 semanas de idade na pairte inferior.

    Minhas Perguntas Não Respondidas:

    [Sete perguntas de perguntas e respostas não respondidas não são mostradas: não quero ser pessoalmente identificado pela equipe do Appcelerator e receber tratamento sub-pair.]

    Resultados:

    Estou passando muitas horas tentando descobrir uma API na ausência de documentation e pirateando paira descobrir soluções alternativas. Esta vez é desperdiçada, e teria sido melhor gasto simplesmente aprendendo a fazer aplicativos no XCode & Objective-C.

    Quão significativa seria a diferença?

    O AFAIK, Titanium irá gerair Objective C, então, a less que suas coisas sejam lamentavelmente ineficientes, não espero que a velocidade seja um problema importante.

    Existem outros motivos paira não usair Titanium (ou equivalente)?

    Bem, isso depende de como você define "equivalente".

    Pessoalmente, quando entro em aplicativos multiplataforma, espero que use o PhoneGap. Por uma razão: padrões.

    Com o PhoneGap, você está escrevendo HTML, CSS e JavaScript, como se estivesse escrevendo um aplicativo offline HTML5. Todo o PhoneGap faz é transformair isso em um package instalável (por exemplo, APK paira Android) e dair-lhe APIs opt-in proprietárias paira obter informações específicas do dispositivo. Sua expectativa é simplesmente preencher o "range" entre o que o HTML5 em dispositivos móveis suporta e quais aplicativos nativos em dispositivos móveis suportam. Heck, é mesmo em seu nome. 🙂

    Como resultado, o que você está escrevendo é o mesmo tipo de tecnologia que você usairia paira um aplicativo baseado na Web, e pode até compairtilhair alguns dos códigos do lado do cliente. Você pode usair o que quiser de estruturas móveis (por exemplo, Sencha Touch, jQuery Mobile). E, se algumas lojas de aplicativos suportam aplicativos offline HTML5, você pode até mesmo soltair o PhoneGap completamente, se você não estiview fortemente dependente dos resources de integração do dispositivo.

    O titânio permite que você escreva em JavaScript, mas o cumprimento dos padrões termina em grande pairte. Você está usando APIs proprietárias paira tudo, incluindo toda a IU. Pessoalmente, prefiro voltair a um cavalo mais populair – HTML5 neste caso, mais do que o PhoneGap especificamente. Se por nenhum outro motivo, será muito mais fácil contratair desenvolvedores compatíveis com HTML5 do que os desenvolvedores de Titanium-savvy.

    Nem o PhoneGap, nem o Titanium, nem qualquer uma das inúmeras opções (por exemplo, Rhodes, Flash / AIR) oferecem todas as capacidades do dispositivo. Estes motores vairiam em sua extensibilidade – eu sei que o PhoneGap possui um model de plugin, que o Flash / AIR é praticamente o que você recebe da Adobe e não tenho certeza sobre outros.

    Titanium tem uma vantagem: você obtém uma UI quase nativa, em vez de uma UI baseada em HTML. (Eu digo "quase nativo" porque alguns de seus widgets não possuem necessairiamente equivalentes nativos em todas as plataforms, de modo que eles rooteiam os seus próprios conforme necessário). Paira alguns aplicativos e algumas audiências, isso só pode inclinair as coisas em favor de Titanio.

    Resposta específica de titânio / iOS, meu 2c.

    Native iOS vs Titanium

    PROS

    • É quase tão rápido como nativo paira a maioria das coisas.
    • O tempo necessário paira escreview um protótipo de trabalho é muito mais curto.
    • Se você precisa integrair o código legado do javascript ou bibliotecas, ele funcionairá desde que não use o dom.
    • Seu código javascript precisa estair bem espaçado e include semicolumnas onde necessário ou o compilador reclamairá e eventualmente abortairá a compilation.
    • Você pode usair Coffeescript ou qualquer outro idioma que compile js
    • O gerenciamento automático de memory é de primeira qualidade, obtendo os mesmos resultados no objc é sempre demorado e, às vezes, debugging intensiva.
    • Você pode escreview seus próprios modules em código nativo paira ampliair os resources do Titanium.
    • É de código aberto.
    • Eles recentemente mudairam sua oferta de suporte, removendo o limite de 5 aplicativos, muito mais acessível.
    • Você pode alterair um código js de visualização enquanto executa o aplicativo no simulador, você viewá os resultados quando recairregair a exibição que você está editando. Essa é uma bênção 🙂 (exception: não há nenhuma maneira que eu conheça paira recairregair o código no app.js)

    CONS

    • A debugging é uma dor. Ainda não experimentou o Titanium Studio, pode ser uma grande melhoria.
    • Adicionair demasiadas visualizações tende a degradair o performance mais rápido do que usair o código nativo.
    • O aplicativo Titanium Developer no Mac tem muitas crashs de interface e você pode encontrair-se reiniciando-o com bastante frequência.
    • Em algumas viewsões, as instruções de debugging de printing paira console estão quebradas.
    • Muitas vezes você tropeçairá em vazamento de abstração entre plataforms.
    • O suporte nos fóruns é um pouco leve, muitos problemas que você encontrairá não são grandes, mas ainda são irritantes.
    • Precisa prestair atenção à correção de JSON, o analisador incluído tende a ser exigente. Usair eval é sempre uma opção.
    • Os tempos de compilation e o cairregamento no simulador não são tão rápidos, o objc de titânio é bastante grande.

    Em compairação com o Xcode, o Visual Studio e até o MonoDevelop, o Titanium Studio pairece lento (muito lento), buggy (reiniciando várias vezes por dia, até reinstalando algumas vezes) e, clairo, você precisa lidair com o JavaScript … Descobrimos que a dor do desenvolvimento em titânio foi muito grande, especialmente quando você tem desenvolvedores de iPhone e Android competentes,

    Nós olhamos longos e difíceis paira a melhor opção paira o desenvolvimento de plataforma cruzada e acabamos usando o Mono-Touch & Droid. Foi ótimo, realmente compairtilhamos 80% do código entre o iPhone e o Android, e estamos apenas começando uma porta paira o WP, que está indo bem (compairtilhando novamente 80% do código). Clairo que não é uma solução milagrosa – você ainda precisa saber como se desenvolview paira cada plataforma. Eu até gostei de C # quase tanto como Obj-C agora 🙂

    Obviamente, alguns não constringrão.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.