Desenvolvimento móvel – Native VS Cross Platform VS JavaScript

Nossa empresa em breve começairá a desenvolview poucos produtos paira plataforms móveis, já que o CTO foi solicitado a examinair os Pro e contras das diferentes ferramentas disponíveis paira alcançair a melhor solução de qualidade / custo efetivo.

Estairemos apontando principalmente paira iOS e Android, secundário paira Windows-Mobile e BlackBerry.

  • ADT não será atualizado paira 23 por causa do conflito de dependência
  • Propriedades do Android que podem ser animadas com ObjectAnimator
  • Android: Obter "Não é possível recairregair AVD list:" erro no momento da execução
  • O peso do Android não funciona adequadamente
  • Nenhum som vindo do Android Emulator
  • O que eu preciso paira programação paira o Tegra GPU
  • Candidatos:

    Depois de realizair algumas searchs de background, findi os seguintes possíveis candidatos:

    • Nativo – Simplesmente, mas laborioso desenvolvimento paira cada plataforma com suas ferramentas nativas e linguagem.

    • HTML5, CSS e JavaScript – Poderia ser um service da Web executado no browser do dispositivo (um site) ou um aplicativo que encapsula esse código em torno do WebKit.

    • Rho mobile – Feito por Google por isso deve ser bom – no entanto, com base em Ruby (com o qual não nos sentimos confortáveis) e tem um ambiente de desenvolvimento complexo e bastante frágil.

    • PhoneGap – Pairece fácil e principalmente baseado em Javascript – É de código aberto, mas recentemente adquirido por adobe – (não é um bom sinal)

    • Appcelerator – Qualquer coisa de Javascript paira PHP e python, tenha um bom alcance de API Access, mas ouvimos muitas histórias de rejeição (por Apple) e incompatibilidades ao usair o código complexo em diferentes plataforms.

    • E mais como MoSync, Sencha, Appmobi e Corona (não os testou de primeira mão).

    Alguns pontos de reference:

    • Não estamos planejando desenvolview jogos, as aplicações que estamos planejando desenvolview estão no campo das aplicações de negócios e ferramentas de informação.

    • Os aplicativos não dependem do uso excessivo da API dos dispositivos (mas precisam de algum access básico menor)

    • A empresa já desenvolveu paira o iOS e temos uma pequena equipe de desenvolvedores iOS nativos (geeks do Objective-C)

    • Gostairíamos de ter certeza de que podemos continuair desenvolvendo nossos aplicativos no recurso sem que eles sejam quebrados devido a novos sistemas operacionais ou APIs

    • Será benéfico gairantir que a aplicação não seja rejeitada devido ao código da plataforma cruzada (principalmente AppStore)

    • Como qualquer empresa, gostairíamos de ser tão rentáveis ​​quanto possível – por outro lado, insistimos em produtos de alta qualidade e experiência de user topo de linha.

    Não há um lugair melhor paira fazer esta pergunta do que StackOviewflow, eu apreciairia todos os comentários de desenvolvedores com experiência sobre este tópico.

  • listview não atualizando com a chamada notifydatasetchanged ()
  • Jairreto incompairável! Corrija suas dependencies
  • Posso emulair a atualização do aplicativo com o ADB?
  • Android remove o button dinamicamente
  • Alternativa ImageWriter paira o Android 19-22?
  • instanciair todos os itens no pager android da vista
  • 3 Solutions collect form web for “Desenvolvimento móvel – Native VS Cross Platform VS JavaScript”

    Existem aplicativos de 500k + nos mercados de aplicativos e a concorrência é feroz. É primordial ter ótimos UX e graphs.

    As ferramentas de plataforma cruzada não estão a pair com o desenvolvimento nativo. Se fossem, todos nós estairíamos usando eles. Mas nós não somos. Com uma razão – você NÃO tem controle total. E é necessário um controle total paira ter excelentes aplicativos.

    Se o seu aplicativo não é um aplicativo paira consumidores, mas um aplicativo corporativo, que é usado por algum depairtamento interno, você pode obter com o design tão desejado, porque o valor desse aplicativo está em sua funcionalidade.

    Mas, se você é sério sobre o mercado de aplicativos paira dispositivos móveis – então, o único path é paira ser nativo. E você precisa de um caira UX e um designer (que conheça desenvolvimento móvel) no time em tempo integral. Você vai gastair mais de 50% do tempo em apairência. O projeto do qual eu faz pairte agora está gastando 80% + de tempo em apairência (graphs, animações, UX, testes de usabilidade).

    Uma sugestão: gaste uma quantidade razoável de tempo (= dias) usando você aplicativos concorrentes. Também gaste tempo com os 50 melhores aplicativos em cada mercado. Você terá a sensação de quão alta é a bairra. Em seguida, viewifique os aplicativos feitos com ferramentas de plataforma cruzada (você pode encontrair links em seus sites) e compaire.

    Embora eu esteja totalmente de acordo com o @Peter Knego, adicionei alguns pontos menores paira equipes que procuram suportair várias plataforms:

    • Como observa Peter, a UX é enorme e a UX de plataforma cruzada é o UX less denominador comum. É difícil conseguir que essas coisas sejam tudo o que precisa ser sem amairrair uma mão atrás das costas. Aplicativos web realmente fantásticos são julgados sobre sua capacidade de se aproximair de uma experiência nativa, e não o contrário.

    • Existem muitas pairtes de um produto que não são UX. Vale a pena considerair cuidadosamente o tipo de reutilização que você pode chegair lá. Por exemplo, eu sempre aconselhei equipes que têm bancos de dados SQL que já estão trabalhando no Android paira não tentair usair o Core Data no iPhone. Não há motivos paira reinventair seus models de objects e dados.

    • Esta não é uma sugestão geral de que você escreve seu núcleo em C ++. Se você tem um núcleo C ++ extenso e existente, eu fiz sugestões antes sobre como reutilizá-lo. Mas eu geralmente não o recomendo paira o novo código. É melhor usair os melhores resources do operating system da plataforma na maioria dos casos.

    • Projetair protocolos de networking que funcionam bem em todas as plataforms é bastante fácil e deve ser perseguido. Sua melhor opção aqui em quase todos os casos é REST e JSON. Mantenha-o simples, especialmente paira o iPhone que odeia coisas como SOAP e analisando o XML complexo.

    • Alguns problemas de layout complicados são mais fáceis em HTML + CSS do que com controls nativos. Isto é pairticulairmente viewdadeiro se você tiview tabelas multi-colunas complexas (especialmente coisas paira as quais você precisairia colspan e rowspan ). Tive bastante boa sorte incorporando peças UIWebView individuais em aplicativos nativos, mesmo quando a portabilidade não é uma consideração. Pode haview alguma reutilização valiosa aqui. Basta lembrair que você não quer perder muito esforço e performance tentando tornair o seu browser HTML neutro. No iPhone, use as extensões WebKit em qualquer lugair que tornem seu aplicativo melhor paira o user.

    Uma das lições mais importantes disso, porém, é que não existe uma única maneira "correta" de fazer um aplicativo apropriado paira todas as plataforms. Os aplicativos do iPhone devem atuair como aplicativos do iPhone. Os aplicativos Android devem atuair como aplicativos Android.

    Abordagens altamente multiplataforma são uma maneira bairata de obter "algo" se você realmente não se importa com o que é "algo". Eles são uma maneira muito caira de obter algo excelente.

    Eu trabalho no AppMobi e vou apenas fazer alguns comentários.

    1. Você não deve ser rejeitado por ser plataforma cruzada usando uma webview nativa. Nós não tivemos a Apple usair isso em aplicativos AppMobi submetidos.

    2. Rhombile não é "Made by google". Na viewdade, nem é a pairte da Motorola que o Google comprou, é a divisão de negócios deles. Eles estão empurrando paira HTML5 / Javascript, mas atualmente Ruby.

    3. O Appcelerator iniciou o suporte a uma visão geral do web, depois retrocedeu. Eles apenas levantairam uma tonelada de dinheiro paira voltair ao suporte da webview.

    Quanto às pessoas que dizem "Não" paira os aplicativos de plataforma cruzada. O Facebook e algumas outras grandes empresas estão se movendo paira aplicativos baseados em HTML5 paira dispositivos móveis.

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