Ementa do Curso de Programação Android
Este curso consiste de 21 aulas expositivas.
As aulas expositivas, relacionadas abaixo, estão divididas em sete grupos de três
aulas.
-
Primeiro dia
:
Modelo, Visão e Controle
-
Primeiros Passos
-
Interfaces Gráficas
-
Lidando com Eventos
-
Segundo dia
: Exemplo Detalhado
-
O Zoo Gráfico
-
Construindo um Sudoku
-
Gráficos 2D
-
Terceiro dia
: Comunicação
-
Multimídia
-
Comunicação entre Atividades
-
Comunicação via Sockets
-
Quarto dia
: Manipulando Dados
-
Persistência
-
Banco de Dados
-
Provedores de Conteúdo
-
Quinto dia
: O Aparelho Móvel de Comunicação
-
Localização e Sensores
-
Mapas
-
Extreme Programming
-
Sexto dia
: Lidando com as Limitações do Aparelho
-
Interfaces gráficas fragmentadas.
-
Bateria, Chamadas e Eventos de Difusão.
-
Navegação entre janelas.
-
Sétimo dia
: Princípios da Programação Orientada a Objetos
-
Princípio da Substituição e abertura fechamento.
-
Princípio da Segregação de interfaces e da
responsabilidade única.
-
Princípio de projeto de pacotes.
Modelo, Visão e Controle
Primeiros Passos
-
O que é Android
-
Como é o desenvolvimento de aplicações para esse ambiente
-
O que é preciso para começar a programar
-
Atividades, o início de tudo
-
XML e arquivos de manifesto
Visões
-
O que é modelo, visão e controle
-
Como definir layouts gráficos
-
Como Separar visão de modelo
-
Como criar layouts em arquivos XML
-
Como adicionar eventos à aplicação
-
O padrão observer
Modelo, visão e controle
-
O que é modelo, visão e controle?
-
Como implementar a camada de modelo?
-
O princípio da responsabilidade única
-
Objetos imutáveis
-
Quais eventos podem ser tratados?
-
O que são cadeias de responsabilidades?
Exemplo Detalhado
Objetos Gráficos
-
Depuração simples: imprimindo eventos
-
Lidando com botões e spinners
-
Carregando múltiplas atividades em uma aplicação
-
O padrão adapter
-
Mostrando vários itens com listas
-
Os diversos layouts
Sudoku
-
Refinando layouts
-
Lidando com telas em modo paisagem
-
Invocando atividades dentro de atividades
-
Usando temas para melhorar layouts
-
Depurando via o console de saída
-
Carregando uma atividade
Gráficos 2D
-
Representando cores
-
Desenhando formas simples
-
Lindando com eventos de baixo nível
-
Como criar animações simples?
-
Como adicionar um key-pad à aplicação?
-
Representando iterações entre atividades
Comunicação
Recursos Multimídia
-
Como executar aplicações que contêm músicas?
-
Como abrir vídeos em Android?
-
Quais formatos de músicas são aceitos?
-
Quais formatos de vídeo?
-
Como otimizar a utilização de recursos?
-
O padrão proxy
Comunicação Entre-Atividades
-
O que são intenções?
-
Como invocar uma atividade a partir de outra?
-
Como invocar uma atividade específica?
-
Como criar parsers em Java?
-
Como ler páginas HTML?
-
O que são expressões regulares?
Comunicação via Sockets
-
O que são sockets?
-
O que são data object accesses?
-
Como criar servidores de serviços distribuídos?
-
Aplicações multi-threading simples
-
O padrão de projetos command
-
O que é o princípio da inversão de dependências?
Manipulando Dados
Persistência
-
Como armazenar as opções de preferência de uma aplicação?
-
Como tocar músicas em uma atividade Android?
-
Como armazenar dados usando Bundles?
-
Como usar o sistema de arquivos do aparelho celular?
-
Como manipular arquivos de texto em Java?
-
Como armazenar objetos diretamente em arquivos?
Bancos de Dados
-
Introdução a linguagem SQL
-
O banco de dados SQLite
-
Como criar e manipular um banco de dados em Android
-
Como apresentar dados na tela do aparelho celular
-
Como criar um log simples de eventos
-
Quais são as estruturas de dados mais comuns em Java?
Provedores de Conteúdo
-
O que são provedores de conteúdo?
-
Como ler dados de outras aplicações?
-
Como identificar recursos de forma única?
-
Como deixar dados disponíveis para outras aplicações?
-
Como estabelecer níveis de proteção para dados?
-
Como alterar dados de outras aplicações?
O Aparelho Móvel de Comunicação
Localização e Sensores
-
O que são serviços baseados em localização?
-
Como usar a API de mapas do Google?
-
Como sobrepor diferentes visões a um mapa?
-
Como integrar o mapa aos demais componentes gráficos?
-
Quais visões podem ser acopladas à mapas?
-
Como usar serviços de localização sem mapas?
Mapas
-
Como obter um certificado para usar a API de mapas do google?
-
Como importar as bibliotecas necessárias à manipulação de mapas?
-
Como exibir um mapa no aparelho móvel?
-
Como ler as coordenadas geográficas de um ponto no mapa?
-
Como obter um endereço a partir de um ponot no mapa?
-
O padrão Decorator
Extreme Programming
-
O que são métodos ágeis de programação?
-
O que é desenvolvimento orientado a testes?
-
Quais recursos podem ser usados para deixar o desenvolvimento mais eficiente?
-
O que é extreme programming?
-
Quais as vantagens da programação em pares?
-
O que é Scrum?
Lidando com as Limitações do Aparelho
Interfaces gráficas fragmentadas.
-
O que são Callbacks?
-
Como uma tela se comunica com a outra?
-
É possível exibir múltiplas telas?
-
Como exibir múltiplas telas?
-
Como enviar mensagens para um fragmento?
Bateria, Chamadas e Eventos de Difusão.
-
Como monitorar a bateria?
-
Como lidar com chamadas telefônicas?
-
O que são eventos de difusão?
-
O que são intenções assíncronas?
-
O que são intenções pendentes?
Navegando entre Janelas.
-
Como projetar estratégias efetivas e práticas de navegação entre janelas?
-
O que é a barra de ações
-
Como implementar navegação horizontal entre fragmentos
-
Como voltar à atividade mãe a partir da atividade filha
-
Que tipo de opções podemos inserir na barra de ações?
Princípios da Programação Orientada a Objetos
Software de Qualidade
-
Fatores de Qualidade de Software.
-
Fatores de qualidade externos e internos.
-
Anti-Fatores de Qualidade.
-
A rigidez dificultando mudanças.
-
A imobilidade dificultando o reúso.
Princípio da Substituição e abertura fechamento.
-
Quais os sintomas de um projeto ruim?
-
O que é a abertura-fechamento?
-
Polimorfismo de Subtipagem.
-
Programando para contratos.
-
Utilizando a resolução dinâmica de métodos.
Princípio da Segregação de interfaces e da
responsabilidade única.
-
Inversão de dependências.
-
Dividindo interfaces.
-
Reconhecendo responsabilidades.
-
O padrão de projetos template.
-
A lei das interfaces mais genéricas.