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:
Quais ambientes de desenvolvimento de plataforma cruzada existem para iOS / Android (e / ou outros dispositivos)?
Qual tem sido sua experiência com essas ferramentas? (isso é o que eu realmente gostaria de saber)
android
ios
cross-platform
Alister
fonte
fonte
Respostas:
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:
Fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
Cappuccino ou PhoneGap .
Às vezes, entretanto, tentar encontrar um atalho não economiza tempo ou fornece um produto final comparável.
fonte
Há também MoSync Mobile SDK
GPL e licenciamento comercial. Há uma boa visão geral de sua abordagem aqui .
fonte
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 ....
fonte
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.
fonte