Desenvolvimento de plataforma cruzada iOS / Android [fechado]

113

Eu tenho brincado com o desenvolvimento de aplicativos Android em Java por um tempo e estou começando a entender isso. No entanto, se eu quiser começar em uma versão do iOS, preciso codificar tudo do zero - o que é, bem, indesejável.

Gostaria de saber quais soluções multiplataforma estão disponíveis e como funcionam na prática. Tenho pensado em aplicativos da web - talvez usando jQuery Mobile ou Titanium , ou Adobe Flash / Flex / Air. Também não tenho um Mac, no qual provavelmente terei de investir.

Então, minhas perguntas:

  1. Quais ambientes de desenvolvimento de plataforma cruzada existem para iOS / Android (e / ou outros dispositivos)?

  2. Qual tem sido sua experiência com essas ferramentas? (isso é o que eu realmente gostaria de saber)

Alister
fonte
1
Alister, você certamente não é a primeira pessoa a fazer esse tipo de pergunta, nem é a primeira pessoa que quer uma resposta! :) Não se esqueça do PhoneGap, sobre o qual ouvi críticas mistas, e do Red Foundry, que é mais simples, mas parece bom - ainda não é multiplataforma.
makdad
1
Você também pode usar o PhoneGap. Eu usei e o aconselhei a ir em frente. Existe uma disposição para gerar um arquivo exe (IPA para iOS) usando aplicativo desenvolvido no PhoneGap no Android.
Jayprakash Dubey,
Quero fazer uma atualização para essa pergunta, pois agora estamos no final de 2016 e o ​​cenário de ferramentas de plataforma cruzada mudou. Eu diria que depende da linguagem de programação de sua escolha e de onde sua equipe tem mais XP com: 1. JavaScript: O desempenho do Phonegap é ruim no celular, portanto, usar ferramentas com componentes nativos, mas JS para a lógica do aplicativo é recomendado. As opções são V-Play ( v-play.net/apps ) ou React ( reactnative.com ). 2. C #: Xamarin é seu amigo. 3. C ++: Use uma estrutura C ++ como Qt ( qt.io ) Isenção de responsabilidade: Eu sou um dos responsáveis ​​pelo V-Play, que é baseado em Qt.
Christian Feldbacher
Resposta: Flutter , é a nova estrutura de IU móvel do Google para a criação de interfaces nativas no iOS e Android em tempo recorde.
naXa de
Há também um projeto haxe.org ativo promissor .
Eugene Gr. Philippov

Respostas:

104

Isenção de responsabilidade: eu trabalho para uma empresa, a Particle Code, que faz uma estrutura de plataforma cruzada. Existem muitas empresas neste espaço. Novos parecem surgir todas as semanas. Boas notícias para você: você tem muitas opções.

Essas estruturas têm abordagens diferentes e muitas delas são fundamentalmente projetadas para resolver problemas diferentes. Alguns são focados em jogos, outros em aplicativos. Eu faria as seguintes perguntas:

O que você quer escrever? Aplicativo corporativo, aplicativo de produtividade pessoal, jogo de quebra-cabeça, jogo de tiro em primeira pessoa?

Que tipo de ambiente de desenvolvimento você prefere? IDE ou editor de texto simples?

Você tem sentimentos fortes sobre linguagens de programação? Das estruturas com as quais estou familiarizado, você pode escolher entre ActionScript, C ++, C #, Java, Lua e Ruby.

Minha empresa está mais voltada para jogos, então não brinquei tanto com os frameworks JavaScript + CSS como Titanium, PhoneGap e Sencha. Mas posso falar um pouco sobre algumas das estruturas orientadas para jogos. Jogos e aplicativos de Internet ricos são uma área onde frameworks multiplataforma podem brilhar, porque esses aplicativos tendem a dar mais importância em serem visualmente únicos e menos em se misturar com UIs nativas. Aqui estão algumas estruturas a serem procuradas:

  • Unity www.unity3d.com é um motor de jogos 3D. É realmente diferente de qualquer outro ambiente de desenvolvimento em que trabalhei. Você constrói cenas com modelos 3D e define o comportamento anexando scripts a objetos. Você pode criar scripts em JavaScript, C # ou Boo. Se você deseja escrever um jogo 3D baseado em física que será executado em iOS, Android, Windows, OS X ou consoles, esta é provavelmente a ferramenta para você. Você também pode escrever jogos 2D usando recursos 3D - um bom exemplo disso é o jogo indie Max and the Magic Marker, um side-scroller 2D baseado em física escrito em Unity. Se você não souber, recomendo dar uma olhada (especialmente se houver crianças em sua casa). Max está disponível para PC, Wii, iOS e Windows Phone 7 (embora a última versão seja uma porta, já que o Unity não suporta WinPhone). O Unity vem com alguns jogos de amostra completos com recursos e texturas 3D, o que realmente ajuda a se familiarizar com o que pode ser um ambiente bastante complicado.

  • Corona www.anscamobile.com/corona é um motor de jogos 2D que usa a linguagem de script Lua e suporta iOS e Android. O ponto de venda de Corona é a capacidade de escrever jogos baseados em física muito rapidamente em poucas linhas de código, e o grande número de jogos baseados em Corona na loja de aplicativos iOS é uma prova de seu sucesso. O ambiente é muito limpo, o que agradará a algumas pessoas. Ele vem com um simulador e um depurador. Você adiciona o editor de texto de sua escolha e tem um ambiente de desenvolvimento. O SDK básico não inclui nenhum componente de IU, como botões ou caixas de listagem, mas um complemento CoronaUI está disponível para assinantes.

  • O Particle SDK www.particlecode.com é uma solução de plataforma cruzada um pouco mais geral com experiência em jogos. Você pode escrever em Java ou ActionScript, usando um modelo de aplicativo MVC. Inclui um IDE baseado em Eclipse com um editor de UI WYSIWYG. Atualmente, oferecemos suporte para a construção de dispositivos Android, iOS, webOS e Windows Phone 7. Você também pode produzir Flash ou HTML5 para a web. A estrutura foi desenvolvida originalmente para jogos sociais multijogador online, como pôquer e gamão, e se adapta a jogos 2D e aplicativos com lógica complexa. A estrutura oferece suporte a gráficos 2D e inclui um mecanismo de física 2D.

NB:

Hoje anunciamos que o Particle Code foi adquirido pela Appcelerator, criadores da estrutura de plataforma cruzada Titanium.

...

A partir de 1º de janeiro de 2012, o [ Particle Code ] não oferecerá mais suporte oficial para a plataforma [ Particle SDK ].

Fonte

  • O Airplay SDK www.madewithmarmalade.com é uma estrutura C ++ que permite desenvolver em Visual Studio ou Xcode. Suporta gráficos 2D e 3D. O Airplay destina-se a iOS, Android, Bada, Symbian, webOS e Windows Mobile 6. Eles também têm um add-on para construir aplicativos AirPlay para PSP. Meu C ++ está muito enferrujado, não brinquei muito com ele, mas parece legal.

Em termos de curva de aprendizado, eu diria que o Unity teve a curva de aprendizado mais íngreme (para mim), Corona foi a mais simples e Particle e Airplay estão em algum lugar no meio.

Outro ponto interessante é como as estruturas lidam com diferentes fatores de forma. O Corona oferece suporte a dimensionamento dinâmico, que será familiar para os desenvolvedores de Flash. Isso é muito fácil de usar, mas significa que você acaba perdendo espaço na tela ao passar de uma tela 4: 3, como a do iPhone, para uma 16: 9, como os novos dispositivos qHD Android. O editor de IU do Particle SDK permite que você crie layouts flexíveis que escalam, mas também permite que você ajuste os layouts para tamanhos de tela individuais. Isso leva um pouco mais de tempo, mas permite que você faça com que o aplicativo pareça personalizado para cada tela.

Claro, o que funciona para você depende de seu gosto individual e estilo de trabalho, bem como de seus objetivos - portanto, recomendo baixar algumas dessas ferramentas e experimentá-las. Todas essas ferramentas podem ser testadas gratuitamente.

Além disso, se eu pudesse apenas colocar um anúncio de serviço público - a maioria dessas ferramentas está em desenvolvimento realmente ativo. Se você encontrar uma estrutura de que goste, envie feedback e diga a eles o que você gosta, o que não gosta e os recursos que gostaria de ver. Você tem uma oportunidade real de influenciar o que acontece nas próximas versões dessas ferramentas.

Espero que isto ajude.

DocDude
fonte
Eu estava pensando em mais desenvolvimento empresarial, mas você pode ter me inspirado a olhar para um desses SDKs para me divertir.
Alister
links para cada estrutura seriam úteis
Petrus Theron
2
Atualização: o Particle Code foi adquirido pela Appcelerator, fabricante do Titanium, então o destino do Particle SDK é incerto. Airplay mudou seu nome, inexplicavelmente, para "Marmalade".
DocDude
15

MonoTouch e MonoDroid, mas o que acontecerá com essa parte da Attachmate agora é uma incógnita. É claro que mesmo com as soluções mono, você ainda está criando visualizações não multiplataforma, mas a ideia é a reutilização da lógica de negócios.

Fique de olho em http://www.xamarin.com/ , será interessante ver o que eles descobrem.

Derek Beattie
fonte
12

Minha experiência em fazer algo muito simples no PhoneGap + jQuery Mobile foi boa. Consegui fazer isso rapidamente para iOS. No entanto, ele não funcionou em meus telefones Android sem fazer algumas alterações. O projeto era um aplicativo muito simples para tirar fotos e publicá-las em um site. E no final do dia parecia "desajeitado" em comparação com um aplicativo nativo verdadeiro.

Não acredito que jamais haverá um desenvolvimento fácil de plataforma cruzada. Acho que o navegador está o mais próximo possível. Ao escolher algo como PhoneGap, acho que você está apenas trocando um conjunto de pontos problemáticos por um conjunto diferente de pontos problemáticos.

Evan
fonte
7

Caso você não queira usar uma estrutura completa para desenvolvimento de plataforma cruzada, dê uma olhada em C ++ como uma opção. O iOS oferece suporte total ao uso de C ++ para a lógica de seu aplicativo por meio de Objective-C ++. Não sei se o suporte do Android para C ++ via NDK é adequado para fazer sua lógica de negócios em C ++, em vez de apenas alguns trechos de código de desempenho crítico, mas caso esse caso de uso seja bem suportado, você pode tentar.

É claro que essa abordagem só faz sentido se a lógica do seu aplicativo constituir a maior parte do seu projeto, já que as interfaces de usuário terão que ser escritas individualmente para cada plataforma.

Na verdade, C ++ é a linguagem de programação mais amplamente suportada (com exceção de C) e, portanto, a linguagem central da maioria dos grandes aplicativos de plataforma cruzada.

yeoman
fonte
3
A propósito, o Android na verdade parece oferecer suporte direto às atividades escritas apenas em C ++: developer.android.com/reference/android/app/NativeActivity.html
yeoman
4
Com uma ressalva - nenhum acesso Java (portanto, nenhuma integração de biblioteca de terceiros ou acesso SDK) de NativeActivity. Torna-o inadequado para muitos fins.
rbgrn de
6

Embora eu tenha apenas começado a olhar para esta área de desenvolvimento, acho que se resume a esta diferença básica: algumas ferramentas mantêm o código original e algumas portas para o nativo ...

por exemplo, o PhoneGap apenas mantém o código HTML / CSS / JS que você escreve e o envolve em código iOS suficiente para se qualificar como um aplicativo, enquanto o Appcelerator entrega um projeto XCode ... então, se você não estiver familiarizado com o iOS, então isso não traria nenhum benefício para você em relação ao PhoneGap, mas se você SABE um pouco, isso pode lhe dar um pouco mais de habilidade para ajustar as versões nativas após um esforço maior de codificação.

Eu não usei o appcelerator, mas trabalhei em um projeto algumas semanas atrás, onde um dos membros da nossa equipe fez um aplicativo inteiro para iPad em cerca de 24 horas usando-o.

E sim, para realmente enviar para a apple, você terá que obter um mac, mas se essa não for sua plataforma de trabalho principal, você pode ir barato.

Robot Woods
fonte
3

Cappuccino ou PhoneGap .

Às vezes, entretanto, tentar encontrar um atalho não economiza tempo ou fornece um produto final comparável.

SK9
fonte
3

Há também MoSync Mobile SDK

GPL e licenciamento comercial. Há uma boa visão geral de sua abordagem aqui .

Roger Dahl
fonte
3

Se você já usou LUA, pode experimentar o Corona SDK para criar aplicativos que rodam em IOS e Android

https://coronalabs.com/

Eu baixei e mexi em alguns, acho LUA uma linguagem de script muito fácil de aprender, sem os problemas / limitações usuais da linguagem de script ....

Jeff
fonte
2

Há também o BatteryTech, que usamos nos últimos 18 meses e lançamos vários jogos com ele. http://www.batterypoweredgames.com/batterytech

Todo o suporte C ++, Android e iOS, todos os usuários obtêm o código fonte completo. A nova v2 inclui ligações lua.

Roubar
fonte
3
A partir de 30/05/12: $ 200 para licença para 5 ou menos desenvolvedores. $ 800 para mais de 5. Não pode ser usado para projetos de código aberto.
Roger Dahl