23 de 31 BC 72 – PROGRAMAÇÃO MÓVEL COM ANDROID (40h) OBJETIVOS: O mercado mobile representa uma área em franca expansão e plataforma Android é o grande destaque deste cenário, apresentando como principal vantagem o fato de ser um sistema aberto e cada vez mais adotado por diversos fabricantes. O nosso BuriCurso de Android faz uma viagem pela API, apresentando conceitos básicos e avançados, além, de instigar a discussão sobre padrões de projetos. Durante o curso, desenvolvemos uma aplicação completa que usa recursos de formulários, Google Maps, comunicação com servidor, persistência local, GPS, câmera, SMS, entre outros. PRÉ-REQUISITOS: Curso Java e Orientação a Objetos e razoável experiência com a plataforma Java. Ou equivalente com conhecimento sólido de orientação a objetos, threads, java.lang e java.util. EMENTA: • • • • • • • Introdução: Pensamento Mobile, Android, Linux, Dalvik, Java, Android Developer Challenger, SDK, AVD e os Emuladores. Configuração: Java, Android SDK, Eclipse, Plugin para Android, Emuladores com Genymotion, ADT Bundle, ADB – Android Debug Bridge, DDMS, Minha primeira App. Conceitos básicos: Activity, View e setContentView, Classe R., AndroidManifest.xml, Componentes visuais – TextView, EditText, Button e Toast, findViewById, Tratamento de eventos e LogCat Definições de Projeto: Agenda de contatos e eventos. Modelo: Contato.java, Visão: ContatoLayout.xml e Controle: ContatoActivity.java. Componentes: LinearLayout, ListView, ArrayAdapter, Layouts customizados. Intents e Menus: Construção de menus com ActionBar e OptionMenu. Carregar menu com MenuInflater. Menus de contexto com ContextMenu. Navegação entre telas com Intents, passagem de parâmetros. Encerramento da Activity com o método finish(). Intent Filter: Definição de ações da Intent, Configuração da Intent principal, Abertura de activities baseada em ações, Alteração da tela de Home da aplicação. Cadastro de Contatos: Criação do formulário para cadastro dos dados dos contatos: ContatoFormActivity.java na camada de controle e ContatoFormLayout.xml na camada de visão. www.buritech.com.br | [email protected] | +55 92 8118-­‐7682 (vivo) 24 de 31 • • • • • • • • • • Banco de dados. SQLite, Criação e acesso ao banco de dados, funções para Insert, Delete, Update e Select. Persistência de dados baseada no padrão de projeto DAO. Intents nativas do Android: Envio de SMS e e-mail, Abrindo o browser, Fazendo ligação para um contato, Visualização de contatos do Celular, trabalhando com retornos de Intents. Redes Sociais. Multimídia: Áudio, vídeo e câmera. Formatos suportados, Reprodução de áudio, reprodução de músicas com MediaPlayer, reprodução de vídeos com VideoView, Utilizando a câmera. Serviços baseados em BroadcastReceiver: Introdução, configuração, envio com o método sendBroadcast, Ciclo de vida, recebimento de SMS, processamento pesado em segundo plano. Integração de sistemas baseada em JSON: Introdução, entendendo a estrutura, composição de elementos, trabalhando com listas, leitura e escrita usando objetos JSON. Processamento em segundo plano: O que é um handler? Execução de objetos Runnable, atualização de Views com Threads, tela de splash, tarefas assíncronas e ProgressDialog. Customização avançada utilizando Application resources: suporte nativo a dispositivos diferentes, aplicação de qualifiers, carregamento de imagens e layouts baseado na resolução do device. Trabalhando com tablets: Introdução aos Fragments, Problema do reuso de Views em várias Activities, Ciclo de Vida, Busca de Fragment na tela, Criação dinâmica de Fragments utilizando FragmentTransaction, Biblioteca de compatibilidade Google Maps e GPS: Geração da Google API Key, configuração do projeto para uso de mapas, Exibir mapas, Seleção de pontos no mapa, Interação com GPS, Exibindo posição atual. Trabalhando com arquivos: Lendo e salvando arquivos, diretórios privados da aplicação, acesso ao sdcard, SharedPreferences, backup de arquivos. www.buritech.com.br | [email protected] | +55 92 8118-­‐7682 (vivo) 25 de 31 BC 73 – PROGRAMAÇÃO MÓVEL COM ANDROID AVANÇADO(40h) OBJETIVOS: Neste BuriCurso, apresentamos componentes avançados do Android Studio, nova IDE para desenvolvimento Android, mantida pela Google, demonstrando como gerenciar dependências usando Gradle. Vamos utilizar padrões de projeto para desenvolvimento de interfaces compatíveis com Tablets e Smartphones, sem a necessidade de milhares de if’s. Você ainda espera baixar todas as imagens, para poder exibir sua ListView? Vamos discutir estratégias para recebimento assíncrono dessas imagens, além de discutirmos como podemos diminuir o acoplamento entre Fragmensts e FragmentActivities. PRÉ-REQUISITOS: • • • • BC 51 – JAVA PARA INICIANTES; e BC 52 – PROGRAMAÇÃO JAVA AVANÇADO; e BC 72 – PROGRAMAÇÃO MÓVEL COM ANDROID; ou Conhecimento correspondente; EMENTA: • • • • • • • • Mudando de IDE: Instalação e configuração do Android Studio, entendendo as novidades do ambiente, Resolvendo problema de path do Java. Definições de projeto: App para acesso a site de leilões de revistas em quadrinhos. Cadastro e envio de lances, Baixa automática de novas ofertas do leilão, Baixa assíncrona de imagens. Gerenciamento de dependências: Introdução ao Gradle; Gradle vs Maven; Instalação e configuração; Estrutura de pastas e repositórios; Uso de TAGs que descrevem comportamento de scripts. Controle de versões com GIT: Entendendo o versionamento; Criação de repositórios, Clone, Indexação de arquivos, Baixar versão – Pull, Commit – Versionamento local, Push – envio para o servidor, Tags – criando marcos. Injeção de dependências: Introdução ao RoboGuice; Tipos de injeção: View, Resources, System Services, POJO, Fragment, Service e BroadcastReceiver, Trabalhando com eventos. Persistência de dados: Introdução ao ORMLite, Instalação e configuração do ORMLite, Anotações e propriedades, mapeamento de classes e atributos; Persistência e Padrões de Projeto; Mapeamento de relacionamentos; Integração de sistemas: Aplicação de padrões de projeto; Gerenciamento eficiente de componentes; Trabalhando com notificações; Aplicando o Pull to Refresh . Transições de telas no tablet: Entendendo a pilha de execução; Problemas de transição de telas; Como melhorar o controle de transições? www.buritech.com.br | [email protected] | +55 92 8118-­‐7682 (vivo)