SlideShare uma empresa Scribd logo
Android
Luiz Carvalho
Minicurso de
V Workshop Tocantinense de Sistemas de Informação
Católica-TO (10 e 11 de abril)
Luiz Carvalho
www.redrails.com.br
Bacharel em Ciência da Computação
Pós Graduado em Telemática
Criador do Droido Mensagens
Analista na Defensoria Pública
Alguns Números (dez->)
- 94 países
- Mais de 1,5 Milhão de acesos
- Quase 400 mil envios
- Mais de 240 mil instalações(~3%)
- Avaliação 4,29 Estrelas
- quase 2 mil reviews
Droido hoje
Base de
Mensagens
Alg. Gen
Servidor
de
Analise
Servidor
de
Distribuição
Servidor
de
Distribuição
Servidor
de
Distribuição
Servidor
de
Distribuição
Mão na massa, o que eu preciso?
- Uma IDE? Eclipse, Android Studio, …
- Android SDK
- Máquina (Windows, Linux, Mac)
- Publicar? $25
Ambiente
- Eclipse + ADT
- Instalar (https://dl-ssl.google.com/android/eclipse/)
- ADT Bundle
- (http://developer.android.com/sdk/installing/bundle.html)
- Android Studio (Direct Link ou apt-get)
Android Studio
Baseado no InteliJ IDEA
preview de Layouts
Moderno sistema de
dependências (Maven)
Moderno sistema de
build (Gradle)
Sistema de migração
de projetos do ADT
Hello World
o/
Criação do projeto
Application Name: Nome da aplicação, será exibido para o usuário no Android e na Play Store.
Project Name: Nome do projeto, identifica a pasta que será criada na área de trabalho do Eclipse.
Package Name: Nome do pacote principal da aplicação, seguindo as convenções do Java. Deve ser único.
Minimum Required SDK: Menor versão do Android suportada pela aplicação. Quanto menor a versão, mais dispositivos serão compatíveis
com a aplicação. Em contra-partida, componentes ou features mais recentes (a princípio) não estarão disponíveis em versões mais
antigas. Se sua aplicação utiliza recursos essenciais disponíveis apenas em versões mais recentes do Android deverá ser selecionada
a menor versão que disponibiliza estes recursos.
Target SDK: Indica a maior versão do Android na qual a aplicação foi testada.
Compile With: Indica com qual versão entre os SDK’s baixados a aplicação foi compilada. Embora a aplicação possa ser compilada com
versões anteriores, é recomendado usar o SDK mais recente, assim é possível usar novas features e otimizar a aplicação para os
dispositivos mais recentes.
Theme: Especifica o estilo de interface do Android que será usado na aplicação.
Icone
http://developer.android.com/design/style/iconography.html
Gradle
Gradle é um sistema de automatização de
builds, assim como o Ant e Maven, e pode
ser assim definido
Ambiente de Desenvolvimento
SDK
Emulador
Logcat
adb
DDMS
SDK - Emulador
AVD
Dispositivo Simulado
Target SDK
Arquitetura
Memória
Alternativa Genymotion (http://www.genymotion.com/)
SDK Manager
Versões do Android (API)
Plataforms-Tools
Build Tools
Drivers
Simuladores de Arquitetura
Documentação
Exemplos
Bibliotecas(Ads, Support)
Android Device Monitor (DDMS)
Consumo de memória
log de eventos (logcat)
Processos
Simulação de eventos no Emulador
Transferência de arquivos
Visualização da estrutura do app
Screenshots
Logcat
Logs de aplicações
Filtrar nível
Filtrar por App
Filtrar por Tag
Conteúdo da mensagem
Até pelo PID
Estrutura de um Projeto Android
gradlew ou gradlew.bat
builds
libs
build.gradle
src/main
java
res
Recursos
drawable(ldpi, mdpi, hdpi, xdpi, xxdpi, xxdpi)
layouts
menus
values
AndroidManifest.xml
Informações(tema, nome, icone,versão ...)
restrições (ex tela)
permissões
Registro de Activities
Define a primeira Activity a ser
chamada(Launcher, Main)
Java
Activity
Service
ContentProvider
CliCiclo de
vida de uma
Activity
Layouts - Linear
Layouts - Relative
Layouts - table
Tags
Atributos obrigatórios
layout_width e layout_height
wrap_content, fill_parent, match_parent
px: Correspondente ao número de pixels da tela.
sp: (Scale-independent Pixels) Idem ao dp, mas também considera o
tamanho da fonte que o usuário está utilizando.
dip ou dp: (Density-independent Pixels) Essa unidade é relativa à resolução
da tela (recomendada para maioria dos casos).
1dpi = 1px mdpi
Tags
<TextView>
@string
<ImageView>
<EditText>
<Button>
Adicionando Comportamento
Adicionar ID às Tags
findViewByID
(CastView)
Listener
Log
Tag
Alt+6
DEBUG
WARN
ERROR
INFO
VERBOSE
Toast
MakeText
Context
Duração (LENGTH_SORT, LENGTH_LONG)
show()
Novo Projeto
Lista de Heróis
Listagem de Heróis
<ListView>
String[] heros = {“hero1”...}
android.R.layout.simple_list_item_1
ArrayAdapter<String> heroAdapter = new
ArrayAdapter<String>(this,layout,heros);
lista.setAdapter(heroAdapter);
Interação com a lista
listaHeros.setOnItemClickListener
parent, itemView, position, id
Pegando valor:
((TextView)view).getText()
parent.getItemAtPosition(position)
MakeToast;show()
Interação com a lista
Clique longo
return false: não consome o evento e deixa que o o
toque simples seja executado
return true; consome o evento e não invoca o toque
simples;
Cadastro
Nova->Activity
Activity
Layout
AndroidManifest
NewHeroActivity
Criar Layout
LinearLayout
Adicionar id em EditText
WrapContent
Como chegar nessa Activity?
ActionBarIcons
Como conseguir icones?
Faça os seus
Pegue emprestado do SDK
Baixe icones oficiais no site do Developer Android
(https://developer.android.com/design/downloads/index.html)
[01_core_new] (http://redrails.com.br/)
android:icon
Intent
É um pedido que é encaminhado ao sistema operacional
que verificará qual é a “Intenção da mensagem” e
tomará uma decisão.
Chamadas Telefônicas
Abrir outro App
Mandar um SMS
Abrir uma url no browser
Iniciar uma Activity
Iniciando uma Activity
Intent newHeroIntent = new
Intent(this,NewHeroiActivity.class);
startActivity(newHeroIntent);
Salvando formulário
Pegar todos os valores do Formulário
Criar Model Hero;
long id;String name;String favoriteSkill;
String ultimateSkill; Double rating;
Adicionar campos
Gerar Getters and Setters(Alt+Insert)
Setar valores da View no Model
Salvando Formulário
Criar DAO
extend SQLiteOpenHelper
implements onCreate, onUpdate, Constructor
Nome e versão da base
OnCreate
String sql = "CREATE TABLE heros(_id PRIMARY KEY," +
"name TEXT, favorite_skill TEXT, " +
"ultimate_skill TEXT, rating REAL)";
db.execSQL(sql);
OnUpdate
db.execSQL("DROP TABLE IF EXIST heros;");
this.onCreate(db);
Salvar Aluno
criar método salvarHero(Hero hero)
SQLiteDatabase db = getWritableDatabase();
ContentValues valores = new ContentValues();
valores.put("name",hero.getName());
valores.put("favorite_skill", hero.getFavoriteSkill());
valores.put("ultimate_skill", hero.getUltimateSkill());
valores.put("rating",hero.getRating());
db.insert("heros",null, valores);
Salvando Formulário
Adicionar ação para o botão de salvar
redirecionar para home após salvar
finish();
Atualizando ListView
Atualização do Adapter no onResume
Tornar listaHerosView attributo da classe
HeroDAO heroDao = new HeroDAO(this);
List<Hero> listHeros = heroDao.getHeros();
int layout = android.R.layout.simple_list_item_1;
ArrayAdapter<Hero> heroAdapter = new
ArrayAdapter<Hero>(this,layout,listHeros);
listaHerosView.setAdapter(heroAdapter);
Perguntas?
http://linkedin.com/in/luizcarvalhodev
https://github.com/LuizCarvalho/
http://www.facebook.com/LuizCarvalho.br
https://plus.google.com/+LuizCarvalhoDev
http://twitter.com/luizcarvalho

Mais conteúdo relacionado

Semelhante a Curso de Introdução ao Android Básico

Conhecendo o Android Wear
Conhecendo o Android WearConhecendo o Android Wear
Conhecendo o Android Wear
Nelson Glauber Leal
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
Rodrigo Rocha
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
Adriel Café
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de Android
Tiago Barreto
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TV
Aécio Costa
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
Campus Party Brasil
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Carlos Duarte do Nascimento
 
Show Day Droid x
Show Day Droid xShow Day Droid x
Show Day Droid x
Impacta Eventos
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
KMILT
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 
Pdm -final
Pdm  -finalPdm  -final
Pdm -final
Charles Fortes
 
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Stefanini
 
Introdução ao Titanium Mobile
Introdução ao Titanium MobileIntrodução ao Titanium Mobile
Introdução ao Titanium Mobile
Eric Cavalcanti
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfv
erickrodrigo23
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Alisson Solitto
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
CDS
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Ramon Durães
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
Régis Eduardo Weizenmann Gregol
 
Oficial
OficialOficial
Hello World Android
Hello World AndroidHello World Android
Hello World Android
Everton Dewes
 

Semelhante a Curso de Introdução ao Android Básico (20)

Conhecendo o Android Wear
Conhecendo o Android WearConhecendo o Android Wear
Conhecendo o Android Wear
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de Android
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TV
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Show Day Droid x
Show Day Droid xShow Day Droid x
Show Day Droid x
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Pdm -final
Pdm  -finalPdm  -final
Pdm -final
 
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
Desenvolvimento Mobile com Visual Studio 2008, por onde começar?
 
Introdução ao Titanium Mobile
Introdução ao Titanium MobileIntrodução ao Titanium Mobile
Introdução ao Titanium Mobile
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfv
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 
Hello World Android
Hello World AndroidHello World Android
Hello World Android
 

Mais de Luiz Carvalho

Palestra Online: Quanto custa um app para sua empresa?
Palestra Online: Quanto custa um app para sua empresa?Palestra Online: Quanto custa um app para sua empresa?
Palestra Online: Quanto custa um app para sua empresa?
Luiz Carvalho
 
Comunidade Startup Tocantins 2019
Comunidade Startup Tocantins 2019 Comunidade Startup Tocantins 2019
Comunidade Startup Tocantins 2019
Luiz Carvalho
 
Chatbots e a nova era das aplicações móveis - Congresso Internacional de CIT
Chatbots e a nova era das aplicações móveis - Congresso Internacional de CITChatbots e a nova era das aplicações móveis - Congresso Internacional de CIT
Chatbots e a nova era das aplicações móveis - Congresso Internacional de CIT
Luiz Carvalho
 
Chatbots e a revolução digital
Chatbots e a revolução digitalChatbots e a revolução digital
Chatbots e a revolução digital
Luiz Carvalho
 
Movimento startup Tocantins [Araguaína]
Movimento startup Tocantins [Araguaína]Movimento startup Tocantins [Araguaína]
Movimento startup Tocantins [Araguaína]
Luiz Carvalho
 
Apresentação Parlo Startup Day 2017 Palmas
Apresentação Parlo Startup Day 2017 PalmasApresentação Parlo Startup Day 2017 Palmas
Apresentação Parlo Startup Day 2017 Palmas
Luiz Carvalho
 
Chatbots: A nova era das aplicações móveis
Chatbots:  A nova era das aplicações móveis Chatbots:  A nova era das aplicações móveis
Chatbots: A nova era das aplicações móveis
Luiz Carvalho
 
Minicurso: Como criar chatbots
Minicurso: Como criar chatbotsMinicurso: Como criar chatbots
Minicurso: Como criar chatbots
Luiz Carvalho
 
Chatbot - A nova era das aplicações móveis
Chatbot  - A nova era das aplicações móveisChatbot  - A nova era das aplicações móveis
Chatbot - A nova era das aplicações móveis
Luiz Carvalho
 
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Minicurso: Desenvolvimento na velocidade da luz com Ruby on RailsMinicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Luiz Carvalho
 
Rails: Porque programar deve ser divertido
Rails: Porque programar deve ser divertidoRails: Porque programar deve ser divertido
Rails: Porque programar deve ser divertido
Luiz Carvalho
 
Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?
Luiz Carvalho
 
Droido
DroidoDroido

Mais de Luiz Carvalho (14)

Palestra Online: Quanto custa um app para sua empresa?
Palestra Online: Quanto custa um app para sua empresa?Palestra Online: Quanto custa um app para sua empresa?
Palestra Online: Quanto custa um app para sua empresa?
 
Comunidade Startup Tocantins 2019
Comunidade Startup Tocantins 2019 Comunidade Startup Tocantins 2019
Comunidade Startup Tocantins 2019
 
Chatbots e a nova era das aplicações móveis - Congresso Internacional de CIT
Chatbots e a nova era das aplicações móveis - Congresso Internacional de CITChatbots e a nova era das aplicações móveis - Congresso Internacional de CIT
Chatbots e a nova era das aplicações móveis - Congresso Internacional de CIT
 
Chatbots e a revolução digital
Chatbots e a revolução digitalChatbots e a revolução digital
Chatbots e a revolução digital
 
Movimento startup Tocantins [Araguaína]
Movimento startup Tocantins [Araguaína]Movimento startup Tocantins [Araguaína]
Movimento startup Tocantins [Araguaína]
 
Apresentação Parlo Startup Day 2017 Palmas
Apresentação Parlo Startup Day 2017 PalmasApresentação Parlo Startup Day 2017 Palmas
Apresentação Parlo Startup Day 2017 Palmas
 
Chatbots: A nova era das aplicações móveis
Chatbots:  A nova era das aplicações móveis Chatbots:  A nova era das aplicações móveis
Chatbots: A nova era das aplicações móveis
 
Minicurso: Como criar chatbots
Minicurso: Como criar chatbotsMinicurso: Como criar chatbots
Minicurso: Como criar chatbots
 
Chatbot - A nova era das aplicações móveis
Chatbot  - A nova era das aplicações móveisChatbot  - A nova era das aplicações móveis
Chatbot - A nova era das aplicações móveis
 
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Minicurso: Desenvolvimento na velocidade da luz com Ruby on RailsMinicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
 
Rails: Porque programar deve ser divertido
Rails: Porque programar deve ser divertidoRails: Porque programar deve ser divertido
Rails: Porque programar deve ser divertido
 
Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?Ruby On Rails: Por que sua Startup deve usar?
Ruby On Rails: Por que sua Startup deve usar?
 
Droido - imprensa
Droido - imprensaDroido - imprensa
Droido - imprensa
 
Droido
DroidoDroido
Droido
 

Curso de Introdução ao Android Básico