Programa de Formação Dev Venture

Objetivo:

Habilitar pessoas que já tenham alguma bagagem com programação para construir projetos Android profissionais.

Metodologia:

Exposição de material teórico alinhado com dinâmicas, práticas individuais e em grupo. Execução de dojos e programação em pares.

Carga Horária:

63h

Ementa:

Motivação e ambientação

Explorar o contexto em que a tecnologia Android nativa é aplicada. Compreender ferramentas de apoio do desenvolvimento de aplicativos (IDE, emuladores, linguagens, bibliotecas de suporte, gestão de um projeto Android com Git)

  • Introdução
    • Universo mobile
    • Android no Brasil
    • Apresentação primeiro projeto
  • Primeiro Projeto
    • Como instalar e usar o Android Studio
    • Processo de desenvolvimento para - construir apps Android
    • Como criar um projeto Android a - partir de um template
  • Primeira App Interativa
    • Layout editor
    • Views
    • Buttons
    • Textviews
    • ImageView
    • View binding

Visão de Projetos de software aplicada ao contexto Android

Versionamento de código, introdução ao Kotlin, aplicação de boas práticas de programação.

  • Versionamento de código com Git
    • Github x Git
    • Criação de um projeto
    • Git commit, Git Push e Git pull
    • Repositórios locais e remotos
    • Lidando com conflitos
  • Introdução Kotlin
    • Variáveis e tipos de dados
    • Null safety
    • Collections
    • Loops
  • Princípios e boas práticas de - programação
    • Programação orientada à objetos
    • Introdução ao SOLID
    • Dicas com Clean Code
    • Introdução à arquitetura de software

Criação de interfaces e interações

Compreender ferramentas para criação de interfaces aplicáveis a diferentes contextos. Utilizar de recursos para melhorar o reuso de código relacionado às interfaces. Criação de interfaces responsivas e resilientes.

  • Construção de layouts complexos
    • Group views e suas características
    • Linear Layout
    • Constraint Layout
    • Comparativo entre groupviews (FrameLayout, Relative Layout)
    • Recycle view
  • Resources: strings, dimensions, colors
  • Navegação entre telas
    • Navigation components
    • Intents
  • Construção de layouts customizados
  • Estruturação de temas
    • Criação dark theme

Execução de tarefas em background e notificações

Entender como o Android gerencia a execução de tarefas e como podemos manipular recursos para executar atividades assíncronas ou em background nas apps.

  • Gerenciamento de threads no android
  • Services
  • WorkerManager
  • Broadcasts receivers
  • Alarms

Armazenamento e gerenciamento de dados

Compreender ferramentas para armazenamento de dados, suas características e aplicação em diferentes contextos.

  • Shared preferences
  • O que é SQL
  • Queries básicas
  • Room
  • Introdução aos Content Providers
  • File System

Conexão com a internet

Compreender como consumir informações de serviços externos através da internet, gerenciando recursos e dados.

  • Retrofit
  • Aplicação das Coroutines
  • Modelagem dos dados (POJOS)
  • Glide
  • Firebase

Arquitetura de aplicações Android

  • Clean Architecture
  • Entendimento dos Architecture - components, MVVM e suas aplicações
  • Databinding
  • Outros modelos de arquitetura - aplicáveis ao contexto android
  • Injeção de dependências e ferramentas

Caminho para produção

  • Google play console
  • Publicação de aplicações
  • Ferramentas para habilitar entrega e integração contínua nos projetos
  • Discussão sobre qualidade de software
  • Introdução à testes automatizados no Android (Espresso, UI Automator, testes de unidade, mocks e stubs)

Novidades

  • Compose
  • Android 12
  • Flow
  • Hilt

Referências:

https://developer.android.com/courses/fundamentals-training/toc-v2 https://developer.android.com/courses/kotlin-android-fundamentals/overview https://github.com/mobile-roadmap/android-developer-roadmap https://www.udemy.com/course/kotlin-android