29 Out, 2008 11:25

Análise de plataformas móveis: iPhone (Prós e contras)

Por Quintana

Tenho lido os artigos do blog Mobideia: Idéias, Mobilidade & Convergência, onde o autor (Marcel) tem feito análises muito interessantes das diversas plataformas de desenvolvimento para dispositivos móveis.

Os posts abaixo são análises das plataformas JavaME e PyS60:

Análise JavaME

Análise PyS60

Como este é o primeiro post deste blog e pretendemos falar, entre outras coisas, da plataforma de desenvolvimento para o iPhone, vou aproveitar a deixa do Marcel e fazer uma análise desta plataforma, assim os leitores leigos serão introduzidos à tecnologia (que era minha idéia inicial) e ainda poderão compará-la com as outras plataformas, descritas nos links acima.

Tecnologia: iPhone SDK

Prós:

  • Facilidade de projetar a interface: A ferramenta Interface Builder facilita muito a criação de interfaces no iPhone. É igual em VB, só arrastar os componentes para a tela e ela está pronta. Isso também é facilitado pois já sabemos as dimensões do dispositivo ao implementar a interface (não temos que implementar algo genérico que funcione em diversas telas).
  • Facilidade de manipular o Hardware do aparelho: Como toda linguagem nativa, o iPhone SDK permite acesso aos mais variados recursos do iPhone, como o acelerômetro, Multitouch, GPS, conexão WI-Fi e 3G. Diferente de JavaME, que tínhamos problemas ao acessar estes recursos, no iPhone tudo funciona perfeito e condiz com o emulador.
  • Possibilidade de desenvolver para a AppStore: A venda de aplicativos diretamente para o cliente na AppStore vem seduzindo diversos desenvolvedores, não só pela facilidade que a Apple provê em vendê-los sem muito trabalho, mas também porque o público que tem um iPhone é de alta renda e, de acordo com pesquisas, é o que mais investe em tecnologia.
  • Ambiente integrado: O ambiente de desenvolvimento é muito bom. Possui ferramentas para testar o sistema no emulador, para efetuar testes de desempenho, de alocação de memória, entre outras coisas.

Contras:

  • Customização da interface: Se desenvolver a interface é fácil, customizá-la não é. Mudar a cor de um componente ou o fundo até vai, mas quando queremos componentes diferentes dos que a Apple nos provê aí o bicho pega, é complicado criar componentes personalizados. E a quantidade de componentes padrão também é pequena, o resultado: muitos aplicativos com a mesma interface.
  • Linguagem Objective C: Para desenvolver para iPhone, temos que nos submeter a Apple e utilizar sua linguagem no seu SDK. Coloco a linguagem aqui como uma desvantagem pois não é uma linguagem conhecida, sua sintaxe é complicada e não existe um mecanismo próprio de gerência de memória (o desenvolvedor deve alocar e desalocar cada objeto). Mesmo que a linguagem fosse simples, acredito que uma plataforma deva permitir o desenvolvimento através de diversas linguagens, como Ruby, Java, Python ou qualquer outra, o que não é o caso do iPhone SDK.
  • Dificuldades de obtenção de tutoriais e suporte: Até pouco tempo atrás, a Apple impedia a comunicação entre os desenvolvedores e que eles publicassem o código das suas aplicações, mesmo após a liberação ainda é muito complicado achar códigos prontos na internet com soluções para os problemas mais básicos já que a comunidade ainda está amadurecendo.
  • É preciso ter um Mac: Pra galera que não tem um Mac, a má notícia é que para desenvolver para esta plataforma é preciso ter um. O SDK do iPhone não roda em outra plataforma. É até possível tentar instalar um "hackintosh" em um PC normal, mas pra isso será preciso quebrar muito a cabeça e depois ter que se adaptar a um sistema operacional totalmente diferente, onde até o copiar e colar não é Ctrl+C, Ctrl+V e sim command+C e command+V - pra quem não sabe o command fica no lugar do alt (isso confunde pacas).
  • Submissão a Apple: Para desenvolver um aplicativo que possa ter instalado no iPhone é preciso ter um contrato com a Apple, e tem que pagar. Isso restringe um pouco que os aventureiros desenvolvam nessa plataforma e torna os testes em dispositivos reais mais complicados.