Curso básico
lucas boeing scarduelli / @lucasscarduelli
aula 04
agenda
13/05/2017
Introdução ao Android
Ambiente de Desenvolvimento
Arquitetura
Estrutura da Aplicação
20/05/2017
Activities, Intents e Intent Filters
Leiautes e Componentes (ViewGroups e Views)
03/06/2017
Iterações Com o Usuário (Eventos)
Permissões de Aplicativo
10/06/2017
Armazenamento de Dados
Chamadas Remotas
24/06/2017
Mapas
Sensores
Publicação no Google Play
é hora de conectar com o ……….
O SQLite é um banco de dados relacional open-source e fornece suporte para
comandos SQL.
Cada aplicação Android pode criar quantos bancos de dados desejar e eles irão ficar armazenados no
sistema, mas vale lembrar que o banco de dados criado pela aplicação não pode ser acessado nem
visualizado por outra aplicação, apenas pela que o criou.
Para fazer o acesso ao banco de dados SQLite dentro da plataforma Android iremos utilizar uma API de
acesso, a qual já vem no pacote SDK.
Não permite conexão remota diretamente com banco de dados!
SQLite - banco de dados interno
uma classe auxiliar para gerenciar a criação de banco de dados e
gerenciamento de versão.
Para usar SQLiteOpenHelper, crie uma subclasse estendida e implementar o
construtor e os métodos onCreate(), onUpgrade().
classe SQLiteOpenHelper
https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
onCreate(): é chamado quando a aplicação cria o banco de dados pela primeira
vez. Nesse método devem ter todas as diretrizes de criação e população inicial
do banco.
onUpgrade(): é o método responsável por atualizar o banco de dados com
alguma informação estrutural que tenha sido alterada.
classe SQLiteOpenHelper
classe SQLiteOpenHelper
mão na massa…
classe SQLiteOpenHelper
criando o banco de dados…
classe SQLiteOpenHelper
fazendo upgrade de versão do banco de dados…
vamos organizar as coisas!
models e controllers
models - modelo de dados
representando a estrutura da tabela do banco de dados…
controllers - manipulação do banco de dados
classe com métodos de crud que fazem a manipulação do banco de dados…
criando o crud
create, retrieve, update e delete
fluxo do crud
Leiaute
activity
controller
sqlite
usuário
create
inserindo dados… #nocontroller
create
inserindo dados… #naactivity
create
validação de dados… #naactivity
retrieve
consultando dados… #nocontroller
retrieve
onde vamos mostrar esses dados?
precisamos de uma tela de consulta de produtos…
retrieve
o que precisamos construir?
retrieve
o que precisamos construir?
uma nova activity para consulta
um botão para acessar essa activity
adicionar uma listview no leiaute
criar um leiaute para a lista de produtos
retrieve
consultando dados… #naactivity
update
alteração de dados… #nocontroller
update
alteração de dados… #nocontroller
update
alteração de dados… #naactivity #consultadeproduto
update
alteração de dados… #naactivity #cadastrodeproduto
update
alteração de dados… #naactivity #cadastrodeproduto
delete
excluir dados… #nocontroller
delete
excluir dados… #naactivity
chamadas remotas
conectando uma api rest
habilitando o acesso a internet
no androidmanifest.xml …
por não ser considerada uma permissão perigosa, não há necessidade de
requisitá-la em tempo de execução!
execução em segundo plano
operações de rede não são permitidas na linha de execução principal da app…
criando uma conexão http
Tanto HttpUrlConnection quanto HttpsURLConnection permitem que você execute operações
como adicionar cabeçalhos de requisição e ler as respostas.
adicionando cabeçalho na requisição
Para adicionar um cabeçalho em sua requisição, você deve usar o método setRequestProperty() da
classe HttpURLConnection.
lendo respostas
A maioria das APIs REST atuais retornam dados formatados como um documento JSON válido.
interpretando json
A maneira de extrair uma parte específica das informações do documento JSON depende de sua estrutura.
atualizando leiaute
como executamos em segundo plano não temos acesso ao leiaute!!!!
Mas conseguimos contornar…
usando outros métodos http
Interfaces REST baseadas em HTTP usam métodos HTTP para determinar o tipo da operação que deve ser
executada em um recurso.
bibliotecas de terceiro
achou complicado? existem bibliotecas de terceiro que podemos utilizar …
android volley
https://github.com/google/volley
https://developer.android.com/training/volley/index.html

Curso Básico Android - Aula 04