iOS e Android

Quando alguma empresa lança algum software para ambas as plataformas, eles precisam programar 2 versões diferentes?
Tenho que desenvolver um app em java para Android e outro em Objective C para iOS?

Oi, boa tarde.

Para explorar todos os recursos de cada um, não tem jeito… é necessário fazer uma versão para cada…

Dê uma olhada no Apache Cordova, ele tenta dar uma padronizada nisto, onde o desenvolvedor faz tudo em HTML e Javascript e ele se encarrega de portar para a plataforma nativa; ainda é um projeto inicial, mas está tentando fazer isto, a padronização de desenvolvimento para as plataformas mobile.

Página principal do Cordova: http://incubator.apache.org/cordova/index.html#about
Documentação: http://docs.phonegap.com/en/1.7.0/index.html

No blog SerJava do meu amigo Fábio, ele faz uma demonstração bem legal de como configurar em Android:

Abraço,

Há frameworks que rodam nas duas, como o Flex:
http://www.adobe.com/products/flex.html

Eu trabalho com AIR e está melhorando muito a questão de processamento para mobile, mas não se compara ainda com apps nativas.
Ainda vai chegar o briefing do app, perguntei para tirar dúvida apenas.
Se for algum app mais light eu faço em AIR mesmo, caso contrário a proposta vai ser app nativo.

Tem as ferramentas da Xamarin para isso http://xamarin.com/

Pelo que eu vi aqui agora, essas ferramentas parecem ser muito boas hein, pena que é muito caro!

Concordo com você. É o jeito mais prático.
Usando c# você escreve tanto para ios como para android.

Tem razão, mas a infra estrutura para trabalhar com ios já sai o olho da cara que é o ambiente da apple. O custo x benefício do monotouch e monodroid são bem mais em conta.

Tem razão, mas a infra estrutura para trabalhar com ios já sai o olho da cara que é o ambiente da apple. O custo x benefício do monotouch e monodroid são bem mais em conta.[/quote]

Eu assisti à uma palestra do Rodrigo Kumpera, que é engenheiro na Xamarim e falou sobre o MonoTouch e o Monodroid e ele falou que o código de back-end da aplicação é quase todo reaproveitado. Além disso, as ferramentas dão acesso às API’s de ambos os sistemas operacionais, além de gerar binários nativos para o sistema sobre a qual a aplicação irá rodar.
Eu acho que compensa bem o investimento.

Ótima informação matheuslmota.

[quote]Eu assisti à uma palestra do Rodrigo Kumpera, que é engenheiro na Xamarim e falou sobre o MonoTouch e o Monodroid e ele falou que o código de back-end da aplicação é quase todo reaproveitado. Além disso, as ferramentas dão acesso às API’s de ambos os sistemas operacionais, além de gerar binários nativos para o sistema sobre a qual a aplicação irá rodar.
Eu acho que compensa bem o investimento.[/quote]

Outra pergunta, quando vamos programar para Android, temos os componentes nativos.
Quando queremos programar algo mais gráfico, como um jogo por exemplo, que seja 2d, todo gráfico é feito na mão ou para Android existe alguma ferramenta que auxilia nisso?

Digo isso pq fiz uns testes recentes com Android, coisa bem básica, achei legal. Comecei a pensar em algo mais complexo e não tenho a menor idéia de como conseguir tais resultados.

[quote=italoborges]Ótima informação matheuslmota.

[quote]Eu assisti à uma palestra do Rodrigo Kumpera, que é engenheiro na Xamarim e falou sobre o MonoTouch e o Monodroid e ele falou que o código de back-end da aplicação é quase todo reaproveitado. Além disso, as ferramentas dão acesso às API’s de ambos os sistemas operacionais, além de gerar binários nativos para o sistema sobre a qual a aplicação irá rodar.
Eu acho que compensa bem o investimento.[/quote]

Outra pergunta, quando vamos programar para Android, temos os componentes nativos.
Quando queremos programar algo mais gráfico, como um jogo por exemplo, que seja 2d, todo gráfico é feito na mão ou para Android existe alguma ferramenta que auxilia nisso?

Digo isso pq fiz uns testes recentes com Android, coisa bem básica, achei legal. Comecei a pensar em algo mais complexo e não tenho a menor idéia de como conseguir tais resultados.[/quote]

As apis do android mapeiam toda a especificação da opengl es. Você não precisa escrever em linguagem c, mas pode fazê-lo se quiser. O ndk é um toolchain do gcc para arms.
Eu prefiro usar java mesmo, mas como postado acima, o mono compila executáveis nativos e apesar de eu nunca ter usado, imagino que deve gerar programas bem eficientes.

Outras opções alem das ja citadas são:

Titanium SDK
PhoneGap

Mas como ja dito, se quer tirar o maximo da plataforma, alem claro da usabilidade, o melhor é fazer nativo. Por exemplo a maneira default dos apps funcionarem no android é direferente do iOS, o android possui botão back por padrao o iOS não, geralmente os apps feitos com estes frameworks colocam um botao visual “Voltar” dentro do app, o que é uma péssima pratica para apps android, mas normal para iOS. Então os apps ou ficam com cara de “android” dentro do iOS, ou com cara de iOS dentro do android.

[edit]

Concluindo minha opnião: Se é um app que se espera sucesso, e sera amplamente baixado e instalado, eu aconselharia a fazer nativo, pois tirando o maximo da usabilidade e caracteristicas de cada plataforma a chance de aceitação e o consequente sucesso do app aumenta. Agora se é algo mais simples, ou talvez algo interno da empresa, estes frameworks podem ajudar!

1 curtida