Post on 17-Dec-2015
description
ANDROID APRENDIZ
Um guia para iniciantesCrie seu primeiro aplicativo Android
Android AprendizUm guia para iniciantes
Crie seu primeiro aplicativo Android
Fillipe Cordeiro
Sumrio
#1 Passo: Introduo a Plataforma Android 9
#2 Passo: Estrutura da Plataforma Android 11
#3 Passo: Meu Primeiro Projeto Android 13
#4 Passo: Entendendo o Projeto Android 22
#5 Passo: Interface do Projeto Android 25
#6 Passo: Programao do Projeto Android 32
Fillipe Cordeiro engenheiro e possui mais de 8 anos de experincia em desenvolvimento de
softwares. Dentre suas experincias com desenvolvimento de aplicativos, esto tecnologias
como Java, Android e Python. Formado em Engenharia da Computao, dedica-se a levar
conhecimento de alto nvel a profissionais e aprendizes que, como ele, acreditam que o
Mobile e a Internet das Coisas no esto no futuro e sim no presente.
Sobre o Autor
O objetivo deste livro e apresentar voc ao mundo do Android de uma forma fcil e rpida,
sem muita enrolao.
Hoje em dia, cada vez mais pessoas utilizam o celular para acessar a Internet, o volume
tanto que o acesso web, por dispositivos mveis, j esta quase superando o acesso dos
computadores tradicionais. Por essa razo, muitas empresas, na rea mobile, faturam milhes
anualmente desenvolvendo aplicativos prprios e para terceiros.
Com a altssima demanda por profissionais qualificados e a grande falta destes, comeam a
aparecer grandes oportunidades para quem quer seguir uma carreira como desenvolvedor
Android, seja em grandes empresas ou autnomos.
O livro Android Aprendiz mostra exatamente o marco inicial do caminho a ser percorrido, para
que voc adentre o mundo da plataforma e, num breve futuro, alcance esse grau de
profissionalismo. um contedo de qualidade, focado na criao de sua primeira aplicao
Android e est disponvel gratuitamente.
Sobre o livroSobre o Livro
muito comum aparecerem dvidas durante o aprendizado de uma nova plataforma. Neste
momento, no ser diferente.
Quando comecei a estudar sobre o Android, tive muitas duvidas sobre muitas coisas e
conceitos. s vezes, era difcil achar respostas claras para o que eu buscava.
Por isso, para que voc possa se desenvolver o mais rpido possvel, estou disponibilizando
meu e-mail para entrar em contato, quando suas dvidas surgirem. Eu responderei a todos os
e-mails; ento, no deixe de me contatar, caso esteja com alguma dificuldade.
Dvidas
Android Pro8
fillipe@androidpro.com.br
muito comum surgirem muitas dvidas sobre uma plataforma muito antes de voc comear
a estud-la; por isso este material tem como misso passar o mximo de informaes
possveis para dar todo o conhecimento que voc precisa saber sobre a plataforma do
Google.
Hoje, o Android a plataforma mobile mais utilizada. Vejamos alguns dados estatsticos para
entender o alcance que essa plataforma tem pelo mundo.
Introduo a Plataforma Android
9 Android Pro
Esse quadro apresenta os dados do site Statista, at julho de 2013, onde podemos ver que
foram feitos mais de 50 bilhes de downloads de aplicativos pelo mundo todo.
Outro dado muito interessante a quantidade de aparelhos em que o Android est presente,
85% dos aparelhos em mais de 190 pases. E esses nmeros no param de crescer, pois
segundo o Google, a cada dia, mais de um milho de usurios novos chegam ao Android para
consumir jogos e aplicativos.
Claro que, com todas essas pessoas utilizando a plataforma, gera muita demanda para a
criao de aplicativos e jogos de diversas reas. Muitas empresas esto incorporando, em
seu Negcio, aplicativos mobile e cresce o nmero de empresas especializadas em
desenvolvimento de aplicativos para terceiros.
Toda essa demanda de desenvolvimento de aplicativos acaba influenciando o mercado de
trabalho de desenvolvimento de aplicativos e jogos. Hoje, o mercado mobile est muito
aquecido e muito exigente para com o desenvolvedor mobile.
Muitos desenvolvedores usam seu tempo livre para desenvolver aplicativos prprios e publicar
na Google Play, para lucrar com a venda ou publicidade. Existem tambm um mercado muito
grande de trabalhos de freelancer, principalmente, vindos de agncias que tm uma demanda
muito grande de projetos.
Um bom desenvolvedor Android tem de saber dar qualidade ao aplicativo que est
desenvolvendo e isso inclui boa qualidade de cdigo, alta produtividade no desenvolvimento e
conhecimento em integraes de sistemas.
Existem diversas ferramentas e frameworks que ajudam o desenvolvedor com ganho de
produtividade e a minimizar bugs em seus aplicativos, melhorando, assim, a qualidade do
software.
Introduo a Plataforma AndroidAndroid Aprendiz
10 Android Pro
Desde 2007, o Android vem sofrendo atualizaes e a cada verso que lanada a
plataforma fica mais poderosa em termos de processamento e integrao com outros
aparelhos eletrnicos. Veja, na tabela abaixo, a lista das verses da plataforma.
Estrutura da Plataforma Android
Android Pro
Podemos ver que a verso Jelly Bean, hoje, a mais utilizada pelos usurios.
Recentemente, o Google lanou a verso 5.0 da plataforma chamada Lollipop; como ainda
muito recente, no tem dados estatsticos oficiais no site oficial do Android. Essa nova verso
vem com muitas novidades e houve mudanas significativas na plataforma, uma aposta
muito grande do Google e vem com conceitos que influenciam diretamente no
desenvolvimento de aplicativos e jogos para o Android.
Nos prximos pargrafos vamos entender melhor sobre a arquitetura da plataforma.
(Fonte: https://developer.android.com/about/dashboards/index.html)
11
Todo usurio de Android sabe as funes bsicas da plataforma, como fazer uma chamada,
enviar uma mensagem de texto, mudar as configuraes do sistema, instalar ou desinstalar
aplicativos etc. Bem! Todos os usurios do Android sabem isso, mas no o suficiente para
ser um desenvolvedor Android. Ento, vou explicar as camadas que compem a plataforma
Android para que voc inicie o caminho como desenvolvedor Android.
Estrutura da Plataforma AndroidAndroid Aprendiz
12 Android Pro
Aplicativos
Frameworks, Servios e Bibliotecas
Bibliotecas e Servios nativos
Linux
http://androidannotations.org/ http://square.github.io/retrofit/
Intents Activities
ServicesWidgets
A figura acima mostra todas as camadas da plataforma e podemos ver que a base de todo
Android desenvolvida baseada em Linux:
Aplicativos: So os aplicativos e jogos desenvolvidos em Java.
Frameworks, servios bibliotecas, geralmente, tambm escritos em Java e servem para
facilitar o desenvolvimento de aplicativos e jogos.
Bibliotecas e servios nativos so recursos que j vm com o Android, para serem
utilizados pelo desenvolvedor.
Linux a base de tudo e inclui todos os drivers de hardware e redes (Bluetooth,
cmeras, USB, GPSs etc), sistemas de arquivos e processamento.
Os aplicativos e jogos so desenvolvidos, utilizando a linguagem de programao Java e, hoje
pela internet, existe muito material sobre essa linguagem desde o bsico at o mais
avanado.
Neste capitulo, vou ensin-lo a cria seu primeiro Projeto Android. Para isso, preciso ter o
ambiente de desenvolvimento configurado j com a ferramenta Eclipse ADT e o Android
SDK.
Caso ainda no tenha seu ambiente configurado, d uma olhada no Post escrito por mim
Android: Configurando o Ambiente de Desenvolvimento no Blog Produo de Jogos.
Se voc j configurou seu ambiente, hora de colocar a mo na massa.
Meu primeiro Projeto Android
13 Android Pro
J que esta sua primeira vez, criando um aplicativo Android, inicie a criao do seu projeto
pelo caminho mais simples com a ajuda da ferramenta Eclipse ADT.
Execute o Eclipse ADT que est localizado dentro da pasta do Android SDK, conforme visto
na configurao do ambiente de desenvolvimento.
Ele deve se parecer com a imagem abaixo:
Meu primeiro Projeto AndroidAndroid Aprendiz
14
primeira vista, o Eclipse ADT pode parecer um pouco confuso, com tantos botes,
funcionalidades e telas, mas no se preocupe com isso agora. A princpio, ignore todos os
botes e funcionalidades que ainda no aprendeu que, no decorrer do livro, vou explicar
alguns deles.
Android Pro
Agora crie seu projeto Android, acessando o menu da seguinte forma:
Arquivo > Novo > Projeto de Aplicativo Android
Ou em ingls: File > New > Android Application Project
Deve aparecer uma tela como a figura a seguir:
Meu primeiro Projeto AndroidAndroid Aprendiz
15
Explicarei os elementos dessa primeira tela antes de voc comear as configuraes:
Application Name: Nome do aplicativo que ser configurado automaticamente. o
nome que aparece no cone, quando voc instala um aplicativo no seu celular.
Project Name: o nome do projeto dentro do Eclipse ADT. No, necessariamente,
precisa ser o mesmo que o Application Name.
Package Name: o nome do pacote onde ficaro seus cdigos Android. No
desenvolvimento Java, uma boa prtica utilizar desta forma, considerando que
estamos no Brasil, br.com.suaaplicacao.
Android Pro
Minimum Required SDK: a verso minima do Android, suportada pelo seu
aplicativo.
Target SDK: a verso mxima do Android, suportada pelo seu aplicativo.
Compile With: a verso do Android que vamos utilizar para compilar o projeto, ou
seja, onde esto as bibliotecas nativas da plataforma para gerar o executvel do
aplicativo. Essa verso costumar ser a mesma configurada em Minimum Required
SDK.
Theme: um tema padro que o Eclipse ADT vai configurar no seu projeto
automaticamente, com alguns componentes.
Agora, preencha os dados da tela conforme a figura abaixo:
Meu primeiro Projeto AndroidAndroid Aprendiz
16
Clique no boto Next > para ir para o prximo passo da configurao.
Android Pro
Na tela abaixo, apenas desmarque a opo Create custom launcher icon. Desmarcar essa
opo significa optar por no utilizar, nesse momento, nenhum logo ou cone customizado em
seu aplicativo, desse modo, o cone utilizado ser o padro do Android.
Meu primeiro Projeto AndroidAndroid Aprendiz
17
Clique no boto Next > para ir para o prximo passo da configurao.
Android Pro
Agora, escolha um layout inicial para seu projeto. Nesse caso, escolha a opo mais bsica,
chamada Blank Activity.
Meu primeiro Projeto AndroidAndroid Aprendiz
18
Clique no boto Next > para ir para o prximo passo.
Android Pro
Pronto, voc est muito perto de criar seu primeiro projeto Android. Clique no boto Finish
para terminar todo o processo.
Meu primeiro Projeto AndroidAndroid Aprendiz
19 Android Pro
Se tudo ocorreu bem, sua tela estar parecida com o exemplo a seguir.
Meu primeiro Projeto AndroidAndroid Aprendiz
20
Agora, voc vai executar o projeto, usando o emulador que ensinei a criar no Post Android:
Configurando o Ambiente de Desenvolvimento no Blog Produo de Jogos. (no capitulo
Configurando o Ambiente de Desenvolvimento)
Clique com o boto direito do mouse, em cima do seu projeto MeuApp, e siga para o menu
Run As > Android Application.
Android Pro
Meu primeiro Projeto AndroidAndroid Aprendiz
21
Parabns!
Voc criou seu primeiro projeto Android :D
Android Pro
Agora que voc j criou seu primeiro projeto Android, vai entender do que feito o projeto,
seus arquivos e pastas. Nesse primeiro momento, no vou explicar tudo o que compe o
projeto, mas apenas o necessrio para voc entender por agora.
No se preocupe em tentar decorar tudo o que cada pasta ou arquivo faz, pois no decorrer do
seu aprendizado, isso ser algo comum para voc.
Entendendo o Projeto Android
Android Pro22
Primeiro, voc entender o arquivo mais importante do projeto Android: o AndroidManifest.
xml.
O AndroidManifest.xml responsvel por definir as caractersticas do projeto como
permisses, verso, logo, nome e seus componentes. Ao longo dos estudos, voc aprender
vrias configuraes desse arquivo.
Veja um exemplo do arquivo:
Entendendo o Projeto AndroidAndroid Aprendiz
23 Android Pro
Outras partes que compem seu projeto Android so:
src/: a pasta onde ficam as fontes do seu projeto, ou seja, as classes Java que voc
desenvolve.
res/: Contm vrios recursos do projeto como imagens, layout, xmls de configurao
como veremos a seguir.
o drawable/: existem vrias pastas drawable que contm as imagens utilizadas no
projeto. Cada uma das pastas contm uma verso de uma determinada imagem,
separadas por definio de tela.
o layout/: nesta pasta, ficam os arquivo responsveis pelo design das telas do seu
projeto.
o menu/: nesta pasta, ficam os arquivos xml referente aos menus do seu projeto.
o values/: contm outras configuraes em xml para parametrizao do projeto
como cores, mensagens dentre outras.
Entendendo o Projeto AndroidAndroid Aprendiz
24 Android Pro
Neste captulo, voc estudar um pouco a interface grfica do Android, como ela funciona e
sua estrutura.
Basicamente, todos os componentes visuais do Android so baseados em View e
ViewGroup. As Views so componentes como botes, campos de texto, combo-box dentre
outros. Os ViewGroups so componentes de organizao de layout como listas e tabelas, ou
seja, agrupamento de Views.
A hierarquia dos componentes pode ser representada desta forma:
Interface do Projeto Android
Android Pro25
Para entender melhor sobre o View e ViewGroup, voc vai usar seu projeto como exemplo,
abra o arquivo activity_main.xml.
Interface do Projeto AndroidAndroid Aprendiz
26 Android Pro
Nesse exemplo, h dois componentes que compem a interface da tela principal do projeto:
RelativeLayout: um ViewGroup que posiciona os componentes filhos em relao
uns aos outros ou em relao ao prprio RelativeLayout.
TextView: uma View que basicamente serve para mostrar um texto para o usurio.
TextView
RelativeLayout
Agora, coloque a mo na massa, adicionando dois componentes novos em sua tela principal.
Remova o TextView e adicione um EditText e um Button. O arquivo vai ficar dessa forma:
Interface do Projeto AndroidAndroid Aprendiz
27 Android Pro
Entenda alguns atributos importantes das Views:
android:layout_width/android:layout_height: definem o tamanho do componente e
so obrigatrios para todas as Views.
android:id: um identificador nico que faz referncia a View. Sempre que for definir
um id para um componente, ele seguir essa forma @+id/NOME_DO_ID, onde o @+
indica que estamos criando um id para aquela View.
android:hint: um valor padro que mostrado, quando o campo texto est vazio.
android:layout_below: posiciona o componente abaixo de outra View.
Execute o projeto no emulador, para ver como ficou seu aplicativo. Lembrando que, para
executar seu projeto, clique com o boto direito do mouse em cima do projeto e v em Run
As > Android Application.
Interface do Projeto AndroidAndroid Aprendiz
28 Android Pro
Bom, voc j deu uma cara diferente para seu projeto, usando novos componentes. Por
mais simples que seja, j um aplicativo que pode interagir com o usurio.
Voltando um pouco para o layout principal activity_main.xml, voc ver que o Eclipse est
sublinhando de amarelo duas linhas do seu arquivo e mostrando a seguinte mensagem.
[I18N] Hardcoded string "Digite seu nome", should use @string resource
[I18N] Hardcoded string "Saudao", should use @string resource
Mas o que isso quer dizer?
A ferramenta est avisando-o de que no est seguindo uma boa prtica de desenvolvimento
e est colocando as mensagens direto na sua View. Ele ainda indica para usar uma @string
resource no lugar das mensagens.
Qualquer texto que for utilizado no seu projeto, sempre deve estar dentro de Resources. Os
Resources permitem que voc gerencie suas mensagens e outros dados em um nico local e
ajuda, tambm, a adicionar suporte de vrios idiomas ao seu aplicativo.
Os Resources ficam na pasta values do seu projeto e, nesse caso, ir utilizar o strings.xml,
para colocar seus textos.
Interface do Projeto AndroidAndroid Aprendiz
29 Android Pro
Abra o arquivo strings.xml.
Pode-se ver que j existem algumas strings configuradas no arquivo.
Interface do Projeto AndroidAndroid Aprendiz
30 Android Pro
MeuApp Hello world! Settings
Vamos adicionar mais duas strings no arquivo, que deve ficar assim:
MeuApp Hello world! Settings Digite seu nome Saudao
Basicamente, voc adicionou uma tag string com um contedo e deu um nome a ela.
Mensagem X
Lembrete: todas as mensagens utilizadas no seu projeto devem estar dentro desse
arquivo e nunca diretamente no cdigo ou nos arquivos de layout.
Legal! Voc adicionou as strings dentro do arquivo, agora precisa ir para o arquivo
activity_main.xml e trocar as mensagens pela referncia delas.
Interface do Projeto AndroidAndroid Aprendiz
31 Android Pro
Veja que trocou as mensagens pelas referncias delas. Dessa forma, fica muito mais fcil
gerenciar todas as mensagens do projeto.
O arquivo activity_main.xml vai ficar assim.
Neste captulo, voc ver um pouco de programao e entender como interagir com a
interface grfica do projeto.
preciso mostrar uma saudao para o nome que foi digitado no campo de texto; para isso,
voc precisa colocar uma ao no boto onde, quando o usurio clicar, sua ao de saudao
acontea, mostrando uma mensagem para o usurio junto com o que foi digitado no campo
texto.
Programao do Projeto Android
Android Pro
Ol Fulano, tudo bem?
32
Abra o arquivo MainActivity.java.
Programao do Projeto AndroidAndroid Aprendiz
33 Android Pro
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
Essa uma Activity, um dos componentes mais importantes do Android. Ela responsvel
por fazer a interao da interface grfica com outras funcionalidades e bibliotecas.
Todas as telas do seu projeto devem estender uma Activity, dessa forma voc fala para o
Android que aquela sua classe uma Activity tambm.
Existe um mtodo muito importante dentro de uma Activity que o onCreate, ele
responsvel por fazer a criao dos componentes na tela. Sempre que quiser trabalhar com
um componente de tela usar o onCreate. Dentro do onCreate, h duas chamadas de
mtodos, o super.onCreate(savedInstanceState) que o onCreate nativo da plataforma e o
setContentView(R.layout.activity_main) que onde relacionamos nosso layout com nossa
Activity.
Sendo assim, voc precisa resgatar os componentes pelos ids, para poder trabalhar com
eles. A Activity do Android tem um mtodo chamado findViewById onde pode pegar seu
campo de texto e o boto.
Veja abaixo como fica seu cdigo para fazer isso dentro do mtodo onCreate:
Programao do Projeto AndroidAndroid Aprendiz
34 Android Pro
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
// Resgatamos nossos componentes pelo id final EditText editTextNome = (EditText) findViewById(R.id.editTextNome); final Button btnAcao = (Button) findViewById(R.id.buttonAcao); }
...
Agora que j tem seus componentes, pode comear a trabalhar com eles para atingir seu
objetivo, mostrar uma mensagem de saudao para o nome digitado no campo de texto.
Agora, voc vai adicionar uma ao em seu boto, utilizando o mtodo setOnClickListener.
Dentro do clique do boto, pega o nome dentro do campo de texto e mostra uma mensagem
na tela do usurio, utilizando um Toast. O Toast uma mensagem rpida que aparece para o
usurio e desaparece depois de alguns segundos.
Programao do Projeto AndroidAndroid Aprendiz
35 Android Pro
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
// Resgatamos nossos componentes pelo id final EditText editTextNome = (EditText) findViewById(R.id.editTextNome); final Button btnAcao = (Button) findViewById(R.id.buttonAcao);
// Adicionando uma ao no clique do boto btnAcao.setOnClickListener(new View.OnClickListener() {
@Overridepublic void onClick(View v) {
// Pegamos o conteudo do campo de textoString nome = editTextNome.getText().toString();
// Mostramos uma mensagem na tela do usurioToast.makeText(MainActivity.this, "Ol, " + nome + " tudo
bem?", Toast.LENGTH_LONG).show();}
}); }
...
Execute seu projeto no emulador e veja o resultado.
Muito bem! Voc cumpriu o objetivo, fez uma saudao personalizada para qualquer nome
digitado no campo de texto.
Programao do Projeto AndroidAndroid Aprendiz
36 Android Pro
Esse, foi apenas o incio da sua jornada para se tornar um desenvolvedor de aplicativos para
Android.
Porm, antes de partir, gostaria de deixar dois desafios para voc como um bnus. Desafios
so sempre bons para voc comear a pensar na resoluo de problemas dentro da
plataforma Android.
Espero que nos vejamos em breve, com mais oportunidades, muito mais contedo e um maior
grau de dificuldade.
At j!
Concluso
Android Pro37
#1 Desafio: Boas prticasAdicione a mensagem de saudao dentro de strings.xml e o utilize dentro do Toast.Dica: para recuperar a mensagem na Activity utilize o mtodo getString(resId)
#2 Desafio: Componentes da telaAdicione mais um campo sobrenome abaixo do campo nome e o utilize na mensagem de saudao.