Android Aprendiz Novo-TheANONYBAY
Android Aprendiz Novo-TheANONYBAY
Android Aprendiz Novo-TheANONYBAY
APRENDIZ
Um guia para iniciantes
Crie seu primeiro aplicativo Android
Fillipe Cordeiro
Android Aprendiz
Um guia para iniciantes
Crie seu primeiro aplicativo Android
Sumrio
11
13
22
25
32
Sobre o Autor
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
Sobre oo Livro
livro
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.
Dvidas
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.
AndroidPro
Hoje, o Android a plataforma mobile mais utilizada. Vejamos alguns dados estatsticos para
entender o alcance que essa plataforma tem pelo mundo.
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.
AndroidPro
Android Aprendiz
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.
10
AndroidPro
(Fonte: https://developer.android.com/about/dashboards/index.html)
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.
11
AndroidPro
Android Aprendiz
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.
Aplicativos
http://androidannotations.org/
http://square.github.io/retrofit/
Activities
Intents
Widgets
Linux
A figura acima mostra todas as camadas da plataforma e podemos ver que a base de todo
Android desenvolvida baseada em Linux:
USB,
GPSs
etc),
sistemas
de
arquivos
processamento.
12
AndroidPro
13
AndroidPro
Android Aprendiz
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 Android Studio.
Execute o Android Studio, conforme visto na configurao do ambiente de desenvolvimento.
Ele deve se parecer com a imagem abaixo:
primeira vista, o Android Studio 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.
14
AndroidPro
Android Aprendiz
Agora vamos criar o seu projeto Android, clicando na opo Start a new Android Studio
project (Iniciar um novo projeto Android Studio).
Nesse momento uma nova tela vai abrir para iniciarmos as configuraes da criao do
projeto Android.
O Android Studio, ferramenta oficial do Google, facilita bastante a criao de novos projetos
e no desenvolvimento deles.
Na prxima pgina vamos iniciar a configurao de um novo projeto.
15
AndroidPro
Android Aprendiz
Project Location: a pasta ou local onde seu projeto ser guardado dentro do seu
computador.
16
AndroidPro
Android Aprendiz
Nesse momento no vou entrar na explicaes do que so as outras opes dessa tela,
vamos nos concentrar em criar nosso primeiro aplicativo para tablets e celulares.
17
AndroidPro
Android Aprendiz
Existem algumas opes de aplicativo que o Android Studio oferece para a criao d nosso
projeto. Isso facilita bastante na hora de comear um projeto novo.
Agora, escolha um layout inicial para seu projeto. Nesse caso, escolha a opo mais bsica,
chamada Blank Activity.
18
AndroidPro
Android Aprendiz
Pronto, voc est muito perto de criar seu primeiro projeto Android. Clique no boto Finish
para terminar todo o processo.
19
AndroidPro
Android Aprendiz
Aps o termino da gerao do projeto, se tudo ocorreu bem, sua tela estar parecida com o
exemplo a seguir.
Agora vamos executar o projeto em um emulador Android. V at o menu Run > Run app.
Quando a seguinte tela aparecer, clique no boto OK.
20
AndroidPro
Android Aprendiz
Parabns!
Voc criou seu primeiro projeto Android :D
21
AndroidPro
22
AndroidPro
Android Aprendiz
23
AndroidPro
Android Aprendiz
java/: 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
layout/: nesta pasta, ficam os arquivo responsveis pelo design das telas do seu
projeto.
menu/: nesta pasta, ficam os arquivos xml referente aos menus do seu projeto.
24
AndroidPro
25
AndroidPro
Android Aprendiz
Para entender melhor sobre o View e ViewGroup, voc vai usar seu projeto como exemplo,
abra o arquivo activity_main.xml. Quando abrir o arquivo, clique na aba no canto inferir
esquerdo chamada Text.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="
match_parent"
android:layout_height="match_parent" android:paddingLeft="
@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".
MainActivity">
<TextView android:text="@string/hello_world" android:layout_width="
wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
Nesse exemplo, h dois componentes que compem a interface da tela principal do projeto:
TextView: uma View que basicamente serve para mostrar um texto para o usurio.
TextView
RelativeLayout
26
AndroidPro
Android Aprendiz
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:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.androidpro.meuapp.MainActivity" >
<!-- Campo texto para entrada de dados pelo usurio -->
<EditText
android:id="@+id/editTextNome"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Digite seu nome"/>
<!-- Boto de ao -->
<Button
android:id="@+id/buttonAcao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editTextNome"
android:text="Saudao" />
</RelativeLayout>
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.
27
android:hint: um valor padro que mostrado, quando o campo texto est vazio.
AndroidPro
Android Aprendiz
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 >
Run app.
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.
28
AndroidPro
Android Aprendiz
Voltando um pouco para o layout principal activity_main.xml, voc ver que o Android
Studio 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
Os Resources ficam na pasta values do seu projeto e, nesse caso, ir utilizar o strings.xml,
para colocar seus textos.
29
AndroidPro
Android Aprendiz
Vamos adicionar mais duas strings no arquivo, que deve ficar assim:
name="app_name">MeuApp</string>
name="hello_world">Hello world!</string>
name="action_settings">Settings</string>
name="hint_edit_mensagem">Digite seu nome</string>
name="text_btn_acao">Saudao</string>
</resources>
Basicamente, voc adicionou uma tag string com um contedo e deu um nome a ela.
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.
30
AndroidPro
Android Aprendiz
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.androidpro.meuapp.MainActivity" >
<!-- Campo texto para entrada de dados pelo usurio -->
<EditText
android:id="@+id/editTextNome"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="@string/hint_edit_mensagem"/>
<!-- Boto de ao -->
<Button
android:id="@+id/buttonAcao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editTextNome"
android:text="@string/text_btn_acao" />
</RelativeLayout>
Veja que trocou as mensagens pelas referncias delas. Dessa forma, fica muito mais fcil
gerenciar todas as mensagens do projeto.
31
AndroidPro
Ol Fulano,
tudo bem?
32
AndroidPro
Android Aprendiz
Essa uma Activity, um dos componentes mais importantes do Android. Ela responsvel
por fazer a interao da interface grfica com outras funcionalidades e bibliotecas.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
33
AndroidPro
Android Aprendiz
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:
Clique em cima dos textos em vermelho e aperte os comandos Alt + Enter at todas as
classes serem importadas.
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.
34
AndroidPro
Android Aprendiz
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.
Clique em cima dos textos em vermelho e aperte os comandos Alt + Enter at todas as
classes serem importadas.
35
AndroidPro
Android Aprendiz
Muito bem! Voc cumpriu o objetivo, fez uma saudao personalizada para qualquer nome
digitado no campo de texto.
36
AndroidPro
Concluso
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!
37
AndroidPro