quinta-feira, agosto 30, 2012

Desenvolvendo para Android: O Ambiente

Continuando o relato da minha experiência no desenvolvimento para Android, falo um pouco sobre o ambiente de desenvolvimento: Java e Eclipse (o SDK e o emulador ficam para o próximo post).
Instalação


Fui procurar o passo a passo sobre o download  e instalação do ambiente no site oficial do Android para colocar o link aqui, mas parece que esta página sumiu. O mais próximo é a página sobre a instalação do SDK. Você certamente encontra isto em outros sites (algumas versões devem estar desatualizadas). Não é meu objetivo detalhar isto aqui, mas segue um resumo do roteiro para Windows:
  • Baixe e instale o JDK 6. Preste atenção para não ganhar um toolbar para o seu navegador!
  • Baixe e instale o SDK do Android. Como parte da instalação, você irá baixar e instalar pacotes específicos para as versões do Android que você pretende suportar.
  • Baixe e instale o Eclipse.
  • Baixe e instale o plugin ADT (Android Development Tools). Se algo der errado, o google é seu amigo.

Java

Como mencionei na introdução, minha experiência com Java é bem pequena. A sintaxe em si não me traz problemas, já que a origem está no C e eu tenho boa experiência com C#. Alguns pontos me confundiram um pouco, como o final e o uso abundante de objetos imutáveis. Do C# eu senti falta das propriedades (acho os getters e setters do Java mais confusos) e, por incrível que pareça, a falta de overload de operadores (o uso de BigDecimal me lembra a programação em Cobol por ter que escrever .subtract, etc - e é claro que você não soma em um número, você gera um novo número com o resultado da soma).

A classe String também me trouxe algumas surpresas. Não demorou para descobrir que devo usar .equals ao invés de ==. A solução que eu achei para tirar zeros à esquerda envolve uma expressão regular, o que me parece usar um míssil teleguiado para espantar uma mosca:

textoSemZeros = texto.replaceFirst("^0+(?!$)", "") ;

(aceito sugestões melhores)

Java tem também a questão de exigir que uma classe seja definida em um arquivo com o mesmo nome. Facilita achar as coisas, mas gera um monte de arquivos (um efeito presente em outras partes do desenvolvimento para Android, você vai ter uma estrutura complexa de diretórios e algumas dezenas de arquivos).

O padrão de identação no Java é diferente do que costumo usar em C e C#, mas é apenas um trabalho mecânico de acertar eventual deslizes (e o Eclipse tem um comando para isto).

Um detalhe curioso é que esbarrei em uma diferença pequena entre as versões 1.5 e 1.6 no que diz respeito a @Override (detalhes aqui e aqui). Algo bobo, mas que fez surgir erros de sintaxe inesperados quando fui compilar em outra máquina.

Eclipse

O Eclipse é uma IDE bem razoável, mas peca em alguns detalhes. Não é uma coisa fácil de apontar, mas a minha produtividade é maior com o Visual Studio da Microsoft e acho que não é só a questão de familiaridade.

Estou usando as configurações padrões, ainda não tive a paciência de ficar ajustando as dezenas de configurações (o mesmo vale para praticamente todas IDEs que uso). Eu ainda me perco um pouco com as múltiplas perspectivas, janelas e abas.

Como é praxe nos dias atuais, novas versões são lançadas com frequência. Infelizmente isto às vezes complica a instalação do SDK do Android. Features e bugs vão e vem com as versões. No meu desktop estou com a versão 3.7 (Indigo) e no notebook com a versão 4.2 (Juno). O auto-complete não funciona bem no meu desktop, no notebook ele funciona, mas já me aconteceu dele fazer paste (por ^V) em uma janela diferente da que eu estou vendo. Ops... é um problema no plugin ADT.

Na configuração padrão está ligado o build automático: o projeto é gerado sempre que um arquivo é salvo. Isto é prático mas pode ser um pouco pesado. Você percebe mais quantas o programa é regerado, quando coloca um esquema para numerar automaticamente os builds (pretendo falar sobre isto mais adiante).

Um comentário:

visitante disse...

o tempo que demora para o emulador abrir é desanimador...