domingo, 28 de agosto de 2011

Primeira app: Hello World!

Boa noite a todos,

Como falei no primeiro post do blog, neste irei exemplificar a implementação de um Hello World no Android. Eu sei que é algo extremamente simples, mas para começar, nada como algo simples. Antes, no entanto, irei falar um pouco da IDE que estou utilizando que é o MotoDev Studio da Motorola. Costumo programar em Java utilizando o eclipse e também é possível programar para Android utilizando o eclipse com a condição de importar algumas bibliotecas e plugins que não entendi direito como fazia. Então para não estragar meu eclipse, preferi baixar outra IDE e experimentar. Felizmente, as apps feitas no MotoDev Studio podem ser utilizados em qualquer aparelho que possua Android (no início pensei que apenas poderia utilizar as apps num Motorola) e os plugins e bibliotecas necessárias para programar utilizando SDK já vem acopladas a IDE.

Como pode-se ver na imagem acima, a interface do MotoDev é quase idêntica ao do eclipse, o que de início torna mais fácil a familiarização com a ferramenta.


Interface MotoDev Studio


Para começarmos um novo projeto, basta fazer como no eclipse. Em Novo Projeto (New Project), escolha a opção Projeto Android utilizando Studio para Android (Android Project Using Studio for Android) e a tela de configuração vai abrir.


Janela para criação de novo projeto

Digite o nome do projeto e escolha a versão da API que deseja utilizar. Mais embaixo será necessário definir o nome da aplicação, o pacote, o nome da Activity e a versão mínima do SDK. É importante observar que a versão mínima do SDK deve estar de acordo com a escolhida no checkbox acima. Quando você clicar para o projeto ser criado, você poderá ver que a própria IDE já criou uma classe com o nome que você especificou e que essa classe estende uma classe chamada Activity. Em posts adiante, falarei um pouco mais sobre essa classe. Se você navegar na pasta chamada 'res' → 'layout', um arquivo xml intitulado main.xml responsável em trabalhar o layout da aplicação através das tags de xml, mas também só iremos detalhá-lo um pouco melhor em posts adiante. Se você navegar na pasta 'gen' e for através do pacote determinado na criação do projeto, você encontrará um arquivo chamado R.java. Esse arquivo funciona semelhante a uma interface entre o código Java e o XML citado anteriormente e não pode ser alterado manualmente. Ainda há também o arquivo 'AndroidManifest.xml' que guarda as informações referentes a nossa aplicação.

Então navegue até a pasta onde está o código-fonte da classe que você criou. Ela vai estar em 'src'. Abra o .java referente a sua classe e um código-fonte semelhante a esse será exibido.


Código-fonte da classe principal


Algumas explicações simples já que de início consideramos que você já tenha um certo conhecimento em Java.

Pode-se ver o pacote da classe e o import das bibliotecas necessárias para execução da app. Para melhores detalhes sobre cada classe, olhar a documentação da linguagem. Em seguida, temos nossa classe. No meu caso, chamei-a de 'MainActivity' e esta classe estende a classe Activity. Em seguida temos um @override de um método chamado 'onCreate(arg argument)'. O método onCreate() é um dos métodos definidos pela classe Activity. Ainda há onPause(), onStart(), entre outros. Há um gráfico bem interessante no tutorial de Felipe Silveira explicando os métodos da classe Activity. Para acessar, só clicar aqui.

Vamos fazer um teste e rodar o programa com a configuração inicial. Clique em “Run” e execute como uma aplicação Android.

Detalhe para essa parte que o emulador levará um tempo para iniciar. Aparecerá Android escrito na tela e depois de alguns minutos o “celular” estará pronto para uso. Desbloqueie-o arrastando o botão verde com o cadeado até o ponto marcado. Você verá que sua aplicação será iniciada. Uma tela preta exibindo o nome da sua aplicação estará no canto superior esquerdo da tela. Agora vamos voltar ao código-fonte.

!CUIDADO! Não feche o emulador. Apenas minimize-o senão você terá que esperar ele reiniciar novamente cada vez que abri-lo e isso não é legal. Acreditem, fechei-o várias vezes antes de entender que ele demorava para iniciar e que depois de iniciado bastava em recompilar o código-fonte que o emulador o executava novamente.

Está na hora de fazermos nossa primeira app e vocês verão como é simples. Para isso, vamos adicionar um import ao pacote “android.widget.TextView”. Em seguida vamos para o método onCreate(Bundle savedInstaceState). Abaixo da linha “super.onCreate(savedInstanceState)”, vamos adicionar um objeto da classe TextView através da linha “TextView view = new TextView(this)”. Na linha seguinte, deve estar “setContentView(R.layout.main), correto? Teremos que alterar essa linha porque queremos que a app exiba uma mensagem que iremos definir ao invés de exibir o nome da aplicação. Então vamos fazer o seguinte, ao invés de “setContentView(R.layout.main)”, vamos colocar “setContentView(view)”, onde o parâmetro definido pela variável view é justamente o objeto que criamos na linha superior. Contudo, se executarmos o programa, nenhuma mensagem aparecerá e por quê? Bom, se você olhar o código-fonte com certeza descobrirá. Nós criamos um objeto da classe TextView e fizemos para a aplicação 'mostrá-lo'. No entanto, não definimos nenhum valor para esse objeto, por isso antes do “setContentView(view)” iremos adicionar a linha “view.setText('Hello World!')”. O código-fonte deve ficar semelhante a imagem abaixo.


Código-fonte HelloWorld!

Então agora só nos falta testar a app e ver se ela está funcionando corretamente. Execute-a e abra o emulador. A mensagem definida por você estará lá no mesmo lugar que antes aparecia o nome da aplicação como mostra a imagem abaixo.


Emulador com nossa primeira app

Legal, não? Para nós programadores pode até ser quando estamos começando numa linguagem, contudo para os usuários nada disso é legal. Eles esperam sempre muito mais. Por isso, no próximo post, trabalharemos com entrada do usuário assim como botão e tela de aviso. Após o próximo post vou tentar colocar dois códigos-fonte de dois joguinhos simples utilizando apenas entrada de usuário, botão e tela de aviso, afinal o blog trata de jogos para Android =P. Lembrando que as informações que eu passo aqui não são tudo de autoria minha. Minhas referências estão sendo tutoriais que encontro pela internet e depois de testar coloco aqui meu entendimento em relação ao assunto descrito. Gostaria de aproveitar e agradecer aos programadores que não se limitam a apenas saber e sim a disseminar o conhecimento para que outros também possam usufruir dele. Por isso, um abraço para Felipe Silveira e Luciano Alves pelos tutoriais que estou utilizando nesse meu começo com Android.

Para os leitores também um grande abraço e até o próximo post.

Nenhum comentário:

Postar um comentário