7 de setembro de 2011

Por que desenvolvimento multiplataforma?

Plataformas mobile

Se em meados de 2008 você decidisse começar a desenvolver mobile apps, muito provavelmente escolheria os usuários de iPhone como o seu público-alvo. Naquele cenário, se sua intenção fosse criar apps nativas e publicá-las na App Store, não havia escolha, o caminho seria abraçar a cartilha da maçã e encarar o Objetive-C.

Hoje, para o bem ou para o mal, as decisões não são mais tão simples. Apesar de a Apple continuar indo muito bem nas vendas dos seus dispositivos que rodam iOS (iPhone/iTouch e iPad) e gerar muita receita para os desenvolvedores (coletivamente), não dá pra ignorar o crescimento do Android no mercado de smartphones. Ele detêm atualmente quase 50% do mercado enquanto o iPhone detêm pouco menos de 20%[1]. E ainda há a expectativa de que esses não sejam os únicos sistemas operacionais que terão participação significativa no mercado nos próximos anos. Será que o Windows Phone vai emplacar?

Nesse cenário, muitos estão decidindo abraçar as plataformas mais populares e não apenas uma delas. O iOS é uma plataforma já consolidada onde você deve ter presença. O Android, apesar de não ter a mesma fama de atrair usuários dispostos a gastar com apps, tem a força das massas, portanto, você deve pelo menos estar pensando seriamente em investir nele. O BlackBerry tem perdido mercado ano após ano, mas como ainda aparece nos gráficos, pode ser uma terceira plataforma a considerar. Outras plataformas ainda estão por mostrar se vão se sair bem na briga por mercado ou ficarão apenas com as migalhas dos gráficos. É bom ficar de olho nelas. No entanto, é preciso sempre lembrar que o esforço para entrar numa plataforma tem que ser compensado pelo retorno obtido dela.

Aqueles que decidem abraçar mais de uma plataforma e que querem criar apps nativas, seja para oferecê-las nas stores ou para não esbarrar nas limitações das web apps, precisam tomar uma decisão crucial: desenvolver uma app exclusiva para cada plataforma usando as ferramentas endossadas pelos seus fornecedores ou usar uma abordagem multiplataforma?

Há quem defenda fortemente cada uma dessas alternativas, mas é razoável concluir que a melhor decisão depende do tipo de app, do seu público e dos recursos disponíveis. Grandes empresas como Google, Facebook e Twitter criam apps exclusivas para cada plataforma por dois motivos simples:

  1. Querem extrair o máximo de cada plataforma; e
  2. Possuem os recursos necessários (dinheiro, profissionais e tempo).

Se você ou sua empresa estão numa situação semelhante, vá em frente, monte uma equipe para cada plataforma e use as ferramentas endossadas pelos seus fornecedores. Você tem tudo para fazer um excelente trabalho.

Se, por outro lado, seus recursos forem limitados ou se suas apps não precisam usar os novos recursos lançados no SDK da semana passada, recomendo que você dê uma olhada nas soluções multiplataforma disponíveis. O Titanium Mobile é uma dessas alternativas e falarei sobre suas vantagens em relação a outras alternativas multiplataforma no próximo artigo.

Siga este blog, assine o rss ou siga meus perfis no Twitter e/ou G+ para ser notificado das atualizações. E se você tem algo a dizer sobre esse artigo ou quer sugerir um assunto para um dos próximos, deixe seu comentário.

9 comentários:

douglas deodato disse...

otimo, continue postando :)

Dirlei Dionísio disse...

Obrigado, Douglas!

Bruno Antognoilli disse...

Pts legal, a proposta parece interessante...


Mas vamos lá, qual IDE vc utiliza? pelo que eu andei lendo (corrija se eu estiver equivocado) vc pode desenvolver em várias linguaguens HTML, Javascript, etc...

Qual linguagem vc escolheu e pq?

Sobre suas experiências... vc desenvolveu alguma coisa com o Titanium? Sim? O que? Para Android?

Como vc compila o código? Quando vc roda a mesma aplicação no IPad/IPhone e no Android, elas tem a mesma qualidade?

Heheheh, as perguntas são várias...

Bruno Antognoilli disse...

É free?

Dirlei Dionísio disse...

Opa Bruno,

Darei muito mais detalhes sobre o Titanium nos próximos artigos. Mas, para adiantar, seguem algumas respostas às suas perguntas:

- O Titanium é open source e free, mas há planos de suporte e treinamento pagos, se vc desejar;

- Para o desenvolvimento de apps mobile, a linguagem utilizada é o JavaScript;

- Há uma IDE baseada no Eclipse chamada Titanium Studio (tb free), que é o padrão utilizado para criar as apps. Mas qualquer editor pode ser utilizado em conjunto com as ferramentas de linha de comando;

- O build e o deploy para o simulador/dispositivo pode ser feito a partir de um botão na IDE ou a partir da linha de comando;

- Eu trabalho com o Titanium desde o início do ano, principalmente com apps de monitoramento e documentação de ocorrências remotas georreferenciadas (texto, foto, audio, video, geolocalização, google maps, email, WebServices etc). Funcionam no iOS e Android.

Um abraço!

Bruno Antognoilli disse...

Oi Dirlei, muito obrigado pelas respostas!!!

Sei que você vai detalhar mais sobre o assunto, mas eu baixei o IDE e parece que para criar um projeto pra Android tem que baixar o SDK, até aí blz... baixei o SDK e msmo assim não consigo criar um projeto para Android! :(

Seu primeiro post bem que poderia ser "Como criar meu primeiro projeto" hahaha...

Estou ansioso pelas postagens! Abraços.

Dirlei Dionísio disse...

Bruno, certifique-se de que vc tem instalado o SDK 2.1-update1 do Android (API 7). O Titanium depende dessa versão do SDK. Pode ser esse o seu problema.

Ainda preciso preparar um artigo para ajudar os recém chegados ao Titanium a montar todo o ambiente e criar o primeiro projeto. Mas só devo começar esse trabalho na semana que vem, depois do artigo que estou preparando atualmente.

Espero que tenha sucesso por aí! :)

[]'s

Unknown disse...

Oi tudo bem ? Muito bom o post.Sou programador(php e jquery). Quero colaborar com esta plataforma mas gostaria de aprender mais. Você tem alguns tutoriais(ou semelhante) sobre a plataforma??? só achei tutoriais em inglês.

Dirlei Dionísio disse...

Infelizmente não conheço ninguém que esteja fazendo tutoriais em português para o Titanium. Se você puder começar usando conteúdos em inglês (mesmo com ajuda do Google Translator), sugiro começar por aqui: https://wiki.appcelerator.org/display/guides/Quick+Start

Outra ajuda é olhar o código do KitchenSink, que demonstra o uso de praticamente toda a API do Titanium: https://github.com/appcelerator/KitchenSink

Se precisar tirar dúvidas, há o grupo de discussão nacional: http://groups.google.com/group/titanium-mobile-br

Um abraço!