|
Objetivo do curso:
Com o grande crescimento do mercado para dispositivos mobile (liderado pelos celulares e smartphones) o desenvolvimento para essa tecnologia ganhou muito destaque no mercado. Muitas pessoas têm buscado aparelhos que sejam capazes de fornecer recursos que possam facilitar a sua vida de alguma forma. O mundo corporativo também tem observado esse crescimento com muito otimismo, pois aumentam exponencialmente suas possibilidades de negócios. O Android, sistema operacional desenvolvido para dispositivos móveis, oferece uma um pacote de desenvolvimento Android SDK possibilitando ao desenvolvedor criar softwares para serem executados sobre essa plataforma. Esse curso tem o objetivo de preparar o aluno para trabalhar com essa tecnologia e tirar o máximo de proveito dessa poderosa plataforma.
Pré-requisitos:
Lógica de programação;
Java - Orientação à Objetos: classes, interfaces, classes abstratas;
Polimorfismo: herança, override, overload
Linguagem de marcação: XML, HTML, MXML entre outras... Nesse requisito é necessário que o aluno tenha tido algum tipo de contato com essa notação para que possa facilmente se familiarizar com a notação proposta no curso.
Conteúdo Programático:
Capítulo 1 - Introdução ao Android
Introdução
Open Handset Alliance e o Android
Conhecendo um pouco mais sobre o Android
Sistema operacional Linux
Máquina virtual Dalvik
Código aberto e livre
Android Developer Challenge
Android Market
T-Mobile G1
Google Nexus One
Desenvolvimento de aplicações com o Eclipse e Java
Capítulo 2 - Configuração do ambiente
Android SDK
Requisitos de software e sistema
Instalação do SDK
Plataforma (versão do Android)
Instalando uma plataforma no SDK
Configuração virtual de um celular Android (AVD)
Criando uma configuração virtual (AVD)
Emulador do Android
Instalando uma aplicação no emulador
Instalação do plug-in para o Eclipse
Configuração das preferências do Eclipse
Criação da primeira aplicação Android no Eclipse
Execução da aplicação no Eclipse
Compreensão dos arquivos gerados no projeto
Aplicações na tela principal (Home)
Visualização das aplicações instaladas
Alterando a resolução do emulador
Perspectiva DDMS do Eclipse
Instalação do exemplo ApiDemos do SDK
Como fazer o download dos exemplos do livro
Resumo das configurações necessárias
Capítulo 3 - Conceitos básicos do Android
Activity, View e o método setContentView(view)
A classe R
Arquivo AndroidManifest.xml
Criação do projeto Android para este Capítulo
Criação da interface visual em XML – novo exemplo
Criação da interface visual com a API Java
Acesso aos elementos da tela – o método findViewById(id)
Tratamento de eventos
LogCat – onde está o System.out.println()?
Capítulo 4 - Activity
Ciclo de vida de uma activity (atividade)
Exemplo de aplicação sobre o ciclo de vida
Navegação entre telas e inicialização de uma nova activity
Passagem de parâmetros para a próxima tela
Atalho para passar parâmetros para a próxima tela.
ListActivity – exibição de uma lista de itens na tela
ArrayAdapter – preenchimento da lista com um array de strings
Construção de um menu para abrir as telas da aplicação
Encerramento de uma activity – o método finish()
SimpleCursorAdapter – Exibição dos contatos da agenda em uma lista
SimpleAdapter – exibição de valores fixos em uma lista
SimpleAdapter – uso de um arquivo XML customizado
Criação de um ListAdapter customizado com imagens
MapActivity
Capítulo 5 - Intent
Intent – envio de uma mensagem ao Android
Navegação entre telas e envio de parâmetros
Exemplos de Intent nativas do Android
Abrindo o browser
Fazer uma ligação para um número de telefone
Visualização de um contato da agenda
Visualização de todos os contatos cadastrados no celular
Retornando resultados de um Intent – startActivityForResult(...)
Como retornar resultados de um activity
Qual método utilizar? startActivity(...) ou startActivityForResult(...) ?
Outros exemplos de como chamar aplicações nativas
Intent – então isso é tudo o que ela faz?
Capítulo 6 - Interface Gráfica - gerenciadores de layout
View
ViewGroup – a classe-mãe de todos os gerenciadores de layouts
FrameLayout
LinearLayout
LinearLayout – controle do alinhamento “layout_gravity”
LinearLayout – controle do peso e “relevância” de cada componente
TableLayout – uso de uma tabela com linhas e colunas
TableLayout e shrinkColumns – contração de colunas
TableLayout e strechColumns – expansão de colunas
TableLayout – criação de um formulário
RelativeLayout
AbsoluteLayout
Uso de mais de um layout para criar telas complexas
Criação de um layout pela API – LinearLayout
Criação de um layout pela API – TableLayout
Outras subclasses de ViewGroup
ScrollView
GridView
Gallery
ImageSwitcher
WebView – exibição de uma página web em sua aplicação
TabHost
Capítulo 7 - Interface gráfica – View
Definição de recursos de texto, cores e imagens
Arquivo XML com as mensagens da aplicação
Arquivo XML com as cores
Arquivo XML para criar um estilo css
Exemplo completo com estilos
Temas
View – a classe responsável por desenhar elementos na tela.
Definição das dimensões
TextView
EditText – Campo de texto para digitar informações
AutoCompleteTextView
Button e ImageButton
CheckBox e ToggleButton
RadioButton
Spinner
ProgressDialog – criação de uma janela de progresso por tempo indeterminado
ProgressBar – criação de uma barra de progresso
Toast – exibição de alertas para o usuário
LayoutInflater – transformação de um arquivo XML em um objeto View
Criação de um alerta de confirmação
ListView
Outros componentes
Adição de menus na aplicação
Trabalhando com submenus
Criação de sua própria classe View customizada
Desenho manual com a classe Canvas
Movimentação de um objeto pela tela
Movimentação de uma imagem pela tela
Movimentação de uma imagem pela tela usando TouchScreen
Capítulo 8 - Intent Filter
Especificação de uma ação para uma Intent
Configuração do <intent-filter> para a aplicação principal
Ação e categoria: como identificar uma Intent
Abertura de uma activity usando uma ação
Revisão dos conceitos
Uso de uma categoria customizada
Por que criar uma ação e categoria para uma Intent?
Exemplo completo de IntentFilter
Chamando uma activity de outra aplicação
Substituindo a tela Home
Substituindo a agenda de contatos
Capítulo 9 - BroadcastReceiver
Introdução
Duas opções para configurar um BroadcastReceiver
Envio de uma mensagem com o método sendBroadcast(intent)
Projeto de exemplo do BroadcastReceiver
Ciclo de vida
Execução de um BroadcastReceiver ao inicializar o sistema operacional
Configuração de uma aplicação para ser iniciada apenas com um BroadcastReceiver
Recebimento de uma mensagem SMS com um BroadcastReceiver
Uso de um serviço para processamento pesado em segundo plano
Abertura de uma tela/activity a partir de um BroadcastReceiver
Interação com o usuário por meio de uma notificação
Capítulo 10 - Notification
Por que usar uma notificação para se comunicar com o usuário
Um exemplo de notificação
Construção de um exemplo prático
Entendendo o exemplo
Outras opções ao disparar uma Intent de uma notificação
Observações
Capítulo 11 - Service
Por que utilizar a classe Service
As duas maneiras de iniciar um serviço em segundo plano
Inicialização de um serviço com o método startService(intent)
Exemplo – inicialização de um serviço com o método startService(intent)
Deixar o serviço executando depois sair de uma tela
Inicialização de um serviço como método bindService(intent,con,flags)
Qual método utilizar para iniciar um serviço?
Serviço executando em um processo diferente da sua aplicação
Criação de uma interface AIDL
Exemplo completo com serviço e notificação
Um serviço em execução contínua não consome muito processamento?
Capítulo 12 - AlarmManager
Porque utilizar um alarme (agendar uma tarefa)
Método da classe AlarmManager
Criação de um exemplo para agendar um alarme
Executando um alarme mais de uma vez
Quando utilizar ou não um alarme
Capítulo 13 - Handler
Introdução
Por que utilizar um Handler?
Envio de uma mensagem
Tipos dos métodos sendMessage(mensagem)
Execução de um Runnable com o método postMessage(runnable)
Atualização da view dentro de uma thread
Implementação de um tela Splash Screen para sua aplicação
Não utilize o Thread.sleep(ms)!
Capítulo 14 - Banco de dados
SQLite
Criação do banco de dados com o SQLite Expert Personal
Aplicação para inserir, alterar e excluir carros
Abrindo o banco de dados
Inserção de registros no banco de dados
Atualização de registros no banco de dados
Exclusão de registros do banco de dados
Busca de registros no banco de dados
Juntando as peças
Construção de uma lista para visualizar os carros cadastrados
Adição de um menu e eventos na tela de lista de carros
Criação da tela com o formulário para inserir e editar carros
Criação da tela com o formulário para buscar um carro pelo nome
Execução da aplicação de cadastro
Criação de um banco de dados diretamente com a API
Outras formas de armazenamento de dados
Lendo e salvando arquivos
Criação do projeto de arquivos
Salvando as preferências do usuário com a classe SharedPreferences
Capítulo 15 - Content Provider
Por que utilizar a classe ContentProvider “provedor de conteúdo”
URI – Immutable URI reference
Exemplos de provedores de conteúdo – nativos
Leitura de informações
Métodos da classe Cursor
Como ler todos os telefones e a foto de um contato
Relembrando um exemplo de Intent
Entendendo a sintaxe da Uri: content://authority/path/id
A classe ContentProvider
Implementação da classe CarroProvider de forma correta
Classe estática Carros
Exemplo para testar a classe CarroProvider
É possível usar a classe CarroProvider em outra aplicação?
Uso de uma Intent com a ação ACTION_VIEW
É possível criar o mesmo exemplo para cadastrar contatos na agenda?
Capítulo 16 - Mapas e GPS
Conceitos básicos
Obtenção de uma chave para o acessar o Google Maps
Criação do primeiro mapa no Android
Criação de um mapa com um arquivo de layout XML
Informando as coordenadas com a classe GeoPoint
Configurar o mapa para o modo Rua ou Satélite
A classe MapController
Centralização do mapa em uma coordenada
Controle de zoom
Controle do zoom
Desenhando um overlay
Criação de um overlay com uma imagem
Juntando as partes
Movimentação automática do mapa
GPS – Desenvolvimento de aplicações de localização
Simulação da localização GPS do emulador
Uso de um trajeto salvo pelo Google Earth
Criação de seu próprio arquivo kml com o Google Earth
Uso de um arquivo GPX
Onde você está localizado no mapa?
Controle do clique sobre um overlay
A classe ItemizedOverlay
Capítulo 17 - Http, sockets e Web Services
Comunicação com um servidor
Uso de sockets
Criação do projeto socket no servidor
Criação do projeto-cliente no Android
Revisão dos conceitos
Comunicação com o servidor por meio do protocolo HTTP
Criação de um projeto web no Eclipse
Criação de uma aplicação para fazer o download de um arquivo-texto
Criação de uma aplicação para o download de uma imagem
Envio de parâmetros por POST
Exemplo buscando carros do servidor
Jakarta Commons HttpClient
Acesso a um web service
Criação do projeto servidor com um Web Service
Criação de um cliente de web service no Android
Revisão
Capítulo 18 - SMS
Introdução
Envio de uma mensagem SMS por telnet
Envio de uma mensagem SMS pelo Eclipse
Criação do projeto de exemplo
Classe Sms que envia e recebe uma mensagem SMS
Método enviarSms(contexto,destino,mensagem)
Método receberMensagem(intent)
Execução do exemplo
Conclusão
Capítulo 19 - Multimídia – Áudio, vídeo e câmera
Formatos de áudio e vídeo suportados
Reprodução de áudio com duas linhas de código
Um segundo exemplo
Simulação de um cartão de memória (SD-Card)
Entendendo a classe MediaPlayer
Criação do player Mp3
Listagem de todas as músicas do cartão de memória
Uso de um serviço para reproduzir uma música em segundo plano
Criação de uma aplicação para utilizar o serviço de mp3
Reprodução de vídeos de uma forma simples com o VideoView
Utilizando a câmera
Capítulo 20 - Variedades
Simulação de um SD Card
Uso de um arquivo .jar em sua aplicação
ADB (Android Debug Bridge)
Controle da versão de sua aplicação
Informações sobre a versão do SO
Obtenção de um certificado digital para assinar sua aplicação
Obtenção de uma chave válida para o Google Maps
Assinando a aplicação para publicar no Android Market
Publicando no Android Market
Professor: Éberson Oliveira
Graduado em Processamento de Dados pela Faculdade de Tecnologia (FATEC). Desenvolvedor desde 2003, tendo começado a trabalhar com Java em 2007. Atua no desenvolvimento de aplicações web para diversos dispositivos fazendo uso de diversos tipos de interfaces gráficas. Faz parte da equipe de pesquisa e prototipação da empresa onde trabalha. Entusiasta Java, Java FX, Adobe Flex e Android.
Turmas em formação para:
5 domingos, das 8:30 as 16:30hs, de 26/2 a 25/3 ou
ou
10 Noites, das 18:45 as 22:45hs, de 7/2 a 13/3
Valor do investimento, incluso livro original (opcional), certificado e lanche: R$ 990,00 (em até 5 vezes no cheque ou 3 vezes no cartão ou boleto, sem acréscimo)
|