Fundamentos de Kotlin e Android
Fundamentos de Kotlin e Android
Nivel 1
Kotlin - Fundamentos:
Kotlin é uma linguagem de programação multiplataforma, orientada a objetos, funcional e
estaticamente tipada. Ela compila para a máquina virtual Java e também pode ser traduzida para
a linguagem JavaScript e compilada para código nativo (via LLVM). É a linguagem oficial do
sistema Android da Google.
Entender a sua sintaxe
Conhecer os tipos primitivos
Declarar e usar variáveis e constantes
Usar estruturas condicionais (if, else)
Usar estruturas de repetição e laços (while, for)
Usar funções, passando parâmetros e argumentos
Implementando métodos e reutilizando eles
Null Safety (Elimine o perigo de referências nulas)
Exceptions e Throwables
Convenções de código
Manipular Coleções, arrays e listas
Orientação a Objetos com Kotlin (Properties, Data class, Companion Objects, Delegation)
Receber dados de uma API
Conteúdos
[Link])
Site Documentação Kotlin: Tipos Básicos e Kotlin (inglês) ([Link]
[Link])
SiteDocumentação Kotlin: Sintaxe básica do Kotlin(inglês) ([Link]
[Link])
Site Documentação Kotlin: Convenções de código do Kotlin (inglês)
([Link]
Site Explorando a documentação: Números em Kotlin ([Link]
documentacao-numeros-em-kotlin-15go)
YouTube Kotlin // Dicionário do Programador ([Link]
Conteúdos Alura:
Artigo Linguagem Kotlin: o que é, para que serve e um Guia para aprender
([Link]
Podcast Case Contabilizei: Kotlin - Hipsters Ponto Tech ([Link]
contabilizei-kotlin-hipsters-ponto-tech-310/)
Curso Formação Kotlin ([Link]
Desafio 7 Days of Code: Kotlin ([Link]
Android - Fundamentos:
Conhecer Kotlin, Java ou C++ que são as linguagens para desenvolver Apps Android.
Entender como o SDK do Android empacota o código e recursos do App em um APK (Android
Package - Pacote Android) para rodar no SO do Android
Saber os componentes de entrada de um App - Activity, Service, Broadcast Receiver e Content
Provider
Compreender os ciclos de vida de componentes do Android e como funcionam - O ciclo de vida
de uma Activity
Ativar componentes de entrada do App com Intents
Conhecer o arquivo de manifesto e os principais itens de configuração
Entender quais são os recursos de um projeto Android - código fonte, recursos estáticos,
drawables, layout, mipmap, values etc
Criar um projeto Android com o Android Studio e rodar em um dispositivo físico ou virtual
Conhecer bibliotecas do jetpack para garantir a compatibilidade entre as versões do Android
Conteúdos
Site Documentação Android: Fundamentos de aplicativos
([Link]
Site Documentação Android: Componentes de aplicativo
([Link]
Site Documentação Android: Ativação de componentes
([Link]
br#ActivatingComponents#Components)
Site Documentação Android: Visão geral do manifesto do aplicativo
([Link]
Site Documentação Android: Visão geral dos recursos do aplicativo
([Link]
Site Documentação Android: Criar seu primeiro App Android
([Link]
Site Documentação Android: Acessar as bibliotecas do Jetpack por tipo
([Link]
Conteúdos Alura:
Artigo Criando o primeiro app Android ([Link]
app-android)
Artigo Activity Lifecycle: por que você deve conhecer sobre o ciclo de vida da Activity
([Link]
CursoAndroid com Kotlin criando um app ([Link]
android-kotlin)
Conceitos de Orientação a Objetos:
A Programação Orientada a Objetos é um paradigma de programação de software baseado na
composição e interação entre diversas unidades chamadas de 'objetos' e as classes, que
contêm uma identidade, propriedades e métodos). Ela é baseada em quatro componentes da
programação: abstração digital, encapsulamento, herança e polimorfismo.
Como funcionam objetos
Criar e utilizar construtores
O que são classes
Criar e utilizar métodos
Como funciona encapsulamento
O que é herança
O que é polimorfismo
Como funcionam interfaces
O que são abstrações
Conteúdos
Artigo Princípios básicos da Programação Orientação a Objetos (POO)
([Link]
programa%C3%A7%C3%A3o-orienta%C3%A7%C3%A3o-a-objetos-poo-62da3998b7ce)
YouTube FernandaDev: O que é Programação Orientada a Objetos?(POO)
([Link]
YouTube Giuliana Bezerra: Desmistificando os tipos de referência - Ep. 8
([Link]
Conteúdos Alura:
Podcast [Link]: TechGuide - Orientação a Objetos – Hipsters Ponto Tech #350
([Link]
POO: o que é programação orientada a objetos? ([Link]
Artigo
programacao-orientada-a-objetos)
SiteApostila: Java e Orientação a Objetos ([Link]
objetos)
Site Livro: Orientação a Objetos ([Link]
conceitos)
YouTube Alura: Orientação a objetos (com Roberta Arcoverde) ([Link]
v=jpuJ1qrluoU)
YouTube Alura: Imersão Java: Orientação a Objetos, APIs e além (e live coding!)
([Link]
Curso Formação Java e Orientação a Objetos ([Link]
Curso Formação C# e Orientação a Objetos ([Link]
orientacao-objetos)
CursoFormação Python e orientação a objetos ([Link]
linguagem)
Curso Curso Orientação a Objetos com PHP: Classes, métodos e atributos
([Link]
Curso Curso JavaScript: programação orientada a objetos ([Link]
online-javascript-passos-programacao-orientada-objetos)
Android - Sistema de View:
A classe View representa o bloco básico de construção dos componentes de interface do
usuário em Android.
Conhecer a referência View e ViewGroup para definir um Layout
Saber as principais ViewGroups para construir layouts - LinearLayout, RelativeLayout,
FrameLayout e ConstraintLayout
Usar o editor visual de Layout para personalizar a tela, ou então, utilizar o arquivo XML para a
edição
Conhecer o Preview do editor visual e usá-lo para preparar as telas e componentes do App
Utilizar as Views do SDK do Android - TextView, Button, EditText, CheckBox, DatePicker etc
Criar Views personalizadas para atender demandas específicas
Personalizar as Views com propriedades do Android ou da própria View - Ajustes de altura,
largura, visibilidade, espaçamento
Implementar Layouts de conteúdos dinâmico com adaptadores - AdapterView e RecyclerView
Integrar código de negócio com o layout da tela - Chamar e manipular as Views com o View
Binding
Reagir a eventos das Views a partir de listeners como cliques, cliques longos, rolagem, arrastar e
soltar
Conteúdos
([Link]
Site Documentação Android: Criar uma IU responsiva com o ConstraintLayout
([Link]
Artigo Android View: Prólogo ([Link]
pr%C3%B3logo-d44a89c14fd1)
Listas com RecyclerView ([Link]
Artigo
d3f41e0d653c)
Site Documentação Android: Visão geral dos eventos de entrada
([Link]
YouTube Vinícius Thiengo: View - Entendendo os Componentes Visuais no Android
([Link]
Conteúdos Alura:
Artigo View Binding Android ([Link]
Curso Android com Kotlin: criando um app ([Link]
android-kotlin)
Curso Android com Kotlin: personalize o seu App ([Link]
kotlin-personalize-app)
Curso RecyclerView: listas flexíveis e performáticas ([Link]
recyclerview-listas-flexiveis-e-performaticas)
Curso RecyclerView: Listeners, animações e boas práticas ([Link]
online-recyclerview-listeners-animacoes)
Curso RecyclerView: criando telas com Constraint Layouts ([Link]
online-layout-android-1)
Android - Fragments:
Um Fragment representa o comportamento ou uma parte da interface do usuário em uma
Activity hospedeira. É possível combinar vários fragmentos em uma única Activity para criar uma
IU de vários painéis e reutilizar um fragmento em diversas atividades. Você pode imaginar um
fragment como uma seção modular de uma Activity, que tem o próprio ciclo de vida, recebe os
próprios eventos de entrada e que pode ser adicionada ou removida durante a execução da
Activity.
Entender o que é um Fragment
Como usar e reutilizar Fragments na mesma Activity
Entender os motivos para utilizar Fragments em projetos Android
Implementar layouts com múltiplos painéis
Migrar projetos Android que utilizam apenas Activities para utilizar fragments
Lidar com transações do gerenciador de fragments
Conteúdos
Site Documentação Android: Fragmentos
([Link]
Site Documentação Android: Ciclo de Vida dos Fragments (inglês)
([Link]
Site Documentação Android: Filosofia de projeto com Fragments
([Link]
Artigo Aprenda a Usar os Fragments em 4 Passos
([Link]
YouTube Pedro Henrique de Oliveira e Silva: Android - Utilizando Fragments
([Link]
Conteúdos Alura:
([Link]
Site Documentação Android: Navegação ([Link]
hl=pt-br)
Site Documentação Android: Como navegar com o Compose
([Link]
Site Documentação Android: Entenda as tarefas e a pilha de retorno
([Link]
ArtigoUsando Navigation Component — Android Jetpack ([Link]
br/usando-navigation-component-android-jetpack-e1356921b31d)
Artigo Introdução ao Compose Navigation
([Link]
574d1d9572a0)
YouTube Stack Mobile: Android Para Iniciantes - Navegação Entre Telas
([Link]
YouTubeCodandoTV: Aprenda a usar o Navigation do Compose! ([Link]
si=tejc83Raer4wsWvy)
Conteúdos Alura:
Curso Navigation: transição de telas no Android ([Link]
navigation)
Curso Navigation: novas features e reutilização de código ([Link]
online-android-navigation-features)
Curso Jetpack Compose: navegando entre telas com o Navigation
([Link]
Conteúdos
Site Documentação Android: Tutorial do Android Compose
([Link]
Artigo Novas pessoas desenvolvedoras android deveriam aprender Compose ou XML? (inglês)
([Link]
YouTube Utilizando o JETPACK COMPOSE para criar UIs modernas para Apps Android
([Link]
v=6qIjSVVzlt0&ab_channel=InstitutodeInform%C3%A1ticaUFG)
Site Documentação Android: Estado e Jetpack Compose
([Link]
Site Documentação Android: Ciclo de vida dos composables
([Link]
br#:~:text=Quando%20o%20Jetpack%20Compose%20executa,Jetpack%20Compose%20programar%C3%A
YouTube CodandoTV: Link da playList com vários vídeos ensinando como fazer
v=yWWOuxeqxwE&list=PLYaQbIm_3oZ9rHMFnm7si0LTqEDcYtG2t&pp=iAQB)
Conteúdos Alura:
YouTube O que é Jetpack Compose? com Alex Felipe | #HipstersPontoTube
([Link]
YouTube Jetpack Compose: Começando com Compose | #AluraMais
([Link]
Vale a pena aprender Jetpack Compose agora? ([Link]
Artigo
pena-aprender-jetpack-compose)
Curso Formação: Jetpack Compose - Criando telas e gerenciando estados
([Link]
Android - Persistência:
O conceito de "persistência de dados" refere-se a garantir que as informações inseridas na
aplicação serão armazenadas em um meio em que possam ser recuperadas de forma
consistente. Ou seja, são registros permanentes e que não são perdidos quando há o
encerramento da sessão.
No Android podemos armazenar de maneira persistente arquivos específicos ou para o App ou
compartilhado, informações de tipo primitivo com preferências e dados estruturados com banco
de dados.
Conteúdos
([Link]
Site Documentação Android: Acessar arquivos específicos do app
([Link]
Site Documentação Android: Visão geral do armazenamento compartilhado
([Link]
Site Documentação Android: Salvar dados de chave-valor
([Link]
Site Documentação Android: Salvar dados em um banco de dados local usando o Room
([Link]
YouTube Kaique Ocanha - Aulas de Android: LIVE #010 - Room Database - Introdução a
([Link]
Curso Android com Kotlin: persistência de dados com o Room ([Link]
online-android-kotlin-persistencia-dados-room)
Curso Android com Kotlin: Migrations e relacionamento com o Room
([Link]
Curso Jetpack Compose: armazenamento de dados internos ([Link]
online-jetpack-compose-armazenamento-dados-internos)
Android - Gradle:
O Gradle e o plug-in do Android para Gradle(AGP) oferecem uma maneira flexível de compilar,
criar, gerenciar e empacotar seu app ou biblioteca Android.
O que é uma build tool
Aprender a estrutura de um projeto Android como um projeto multi módulo do Gradle
Para que serve o Gradle e como usá-lo
O que são dependências e como utilizá-las
Conteúdos
hl=pt-br)
Site Documentação Android: Dicas e receitas para o Gradle
([Link]
Site Documentação Android: Adicionando dependências do build - Gradle
([Link]
Site Documentação Android: Guia para Modularização de app
([Link]
Site AndroidPro: Gradle para Android - Entendendo o processo de build
([Link]
Artigo Gradle Android para Iniciantes ([Link]
iniciantes-roger-silva/?originalSubdomain=pt)
Site Slides sobre Desenvolvimento Android - by Moro ([Link]
about-android-development/blob/main/README_pt-[Link]#gradle-)
Conteúdos Alura:
v=6llRWbdnmuk)
YouTube Começando com o Gradle: Tasks e comandos básicos
([Link]
([Link]
YouTube Paulo Salvatore: Carregando imagens no Android com Kotlin | Glide
([Link]
YouTube Stevdza-San: Coil - Biblioteca moderna de carregamento de imagem | Android Studio
compose-app-android)
Nivel 2
Android - Permissões:
As permissões do app ajudam a apoiar a privacidade do usuário protegendo dados restritos,
como estados do sistema e os dados de contatos dos usuários, há também as ações restritas,
como a conexão a um dispositivo pareado e a gravação de áudio ou uso de câmera.
Entender o que são permissões
Aprender sobre os diferentes tipos de permissões
Permissões especiais
Práticas recomendadas
Conteúdos
Site Documentação Android: Permissões no Android
([Link]
Site Documentação Android: Uso de permissões - Android Manifest
([Link]
Site Documentação Android: Solicitando permissões do app
([Link]
Artigo Entendendo as permissões do app (inglês)
([Link]
YouTube Tiago Aguiar: Permissões Android - Tutorial Como Usar
([Link]
Kotlin - Assíncrono:
Na programação assíncrona as funções não são executadas em ordem. Com o assincronismo,
podemos interromper do código para conseguirmos alguma outra informação necessária para a
continuar a execução. Isso significa que o código espera por uma outra parte do código e,
enquanto espera, executa as demais partes.
Aprender as possibilidades para rodar o código de maneira assíncrona no Android
Conhecer o pacote [Link] e as suas soluções
Utilizar Coroutines como uma solução de código assíncrono no Kotlin
Entender e usar estruturas reativas como LiveData, Flow, StateFlow, RX, etc
Conteúdos
Site Documentação Android: Corrotinas do Kotlin no Android
([Link]
Site Documentação Android: Fluxos em Kotlin no Android
([Link]
Site Documentação Android: StateFlow e SharedFlow
([Link]
Site Documentação Android: Visão geral do LiveData
([Link]
Artigo Introdução ao RX Java com Kotlin
([Link]
90c58d184c6b)
YouTube Kotlin Coroutines: Criando um Projeto Android do Zero Com a Arquitetura MVVM e
LiveData ([Link]
YouTubeCodandoTV(Rods): Configurar o Networking na sua aplicação Retrofit+Okhttp+
Interceptores+Coroutines ([Link]
Conteúdos Alura:
Site Operações Assíncronas com Coroutines no Kotlin
([Link]
android-c58)
Retrofit com Coroutines e LiveData no Android ([Link]
Artigo
com-coroutines-e-livedata-no-android)
([Link]
Artigo Comunicação HTTP eficiente no Android com Volley
([Link]
volley-9772b4057a5c)
Artigo Consumindo API REST no Android com Retrofit em Kotlin
([Link]
1-5e752ab8a877)
YouTube Coder: Como fazer chamadas API usando a biblioteca Android Volley | Kotlin
([Link]
YouTube Tiago Aguiar: Retrofit - O Guia Definitivo para Cliente HTTP no Android
([Link]
Conteúdos Alura:
Artigo Retrofit com Coroutines e LiveData no Android ([Link]
com-coroutines-e-livedata-no-android)
Curso Android com Kotlin: comunicação com Web API ([Link]
android-kotlin-comunicacao-web-api)
Android ([Link]
Site Documentação Android: Sensores - Sensores de Movimento, Posição e Ambiente
([Link]
SiteDocumentação Android: Visão Geral da Conectividade (Bluetooth, Wi-Fi, operações de
rede) ([Link]
Conteúdos Alura:
Alura: Utilizando o Google Maps em Apps Android ([Link]
YouTube
v=rpqi7Y1NQZY)
YouTube Alura: Tirando foto no app com a câmera do Android ([Link]
v=jLcrcTMoB88)
Android (IA):
Um Client-SDK para IA é uma ferramenta intermediária que simplifica a comunicação entre o seu
aplicativo e serviços de IA remotos. Imagine como uma ponte que liga o seu aplicativo (que está
local no seu dispositivo) a um servidor poderoso de IA (que geralmente fica na nuvem);
IA On-Device, ou inteligência artificial no dispositivo, refere-se à execução de tarefas de IA
diretamente no seu dispositivo pessoal, como smartphone, tablet ou smartwatch, em vez de
depender de servidores remotos na nuvem;
Aprender a traduzir textos automaticamente, reconhecer imagens, gerar respostas inteligentes e
mais utilizando IA no seu app;
Como acessar a API Gemini/GPT diretamente do app Android usando o SDK do cliente para
Android;
Como baixar e utilizar ferramentas de machine learning localmente nos apps;
Conteúdos
([Link]
Site Documentação ML Kit ([Link]
Site Documentação do TensorFlow Lite ([Link]
Site Documentação do Gemini Nano SDK ([Link]
YouTube TensorFlow - Modelos de linguagem no dispositivo com Keras e Android
([Link]
Conteúdos Alura:
([Link]
android-studio-c9218)
Artigo Gemini no Android Studio: a Github Copilot da Google
([Link]
Curso Formação - Android com IA: criando apps mais inteligentes com o Google ML Kit
([Link]
Curso Formação Android: criando apps de forma inovadora com CoPilot, GPT e Gemini
([Link]
([Link]
Artigo Injeção de dependência no Kotlin com Koin
([Link]
com-koin-4d093f80cb63)
YouTube Chico Rasia: Viewmodel com injeção de dependência via Factory no Android com Kotlin
([Link]
YouTube Douglas Motta: Injeção de Dependência com Koin no Android
([Link]
YouTube CodandoTV(Rods): Configurar Koin de maneira completa
([Link]
Conteúdos Alura:
de-dependencia-do-android-com-o-hilt)
Android - Testes:
O teste de software é o processo de avaliação e verificação de que um software realmente faz o
que deveria fazer. Os benefícios dos testes incluem a prevenção de bugs, a redução dos custos
de desenvolvimento e a melhoria do desempenho.
Usar testes unitários
Usar testes de integração
Usar testes instrumentados
Usar mocks para facilitar a implementação de testes com dependências
Implementar testes com ferramentas de Injeção de Dependências como o Hilt
Conteúdos
([Link]
Site Documentação Android: Como testar o layout do Compose
([Link]
Site Documentação Android: Criar testes de unidade locais
([Link]
Artigo Testes Instrumentados: tipos de teste e como são executados.
([Link]
s%C3%A3o-executados-1f13a8cfe4c4)
YouTube Dev Vai Longe: 02 Testes unitários no Android com mockito, jUnit e kotlin.
([Link]
Conteúdos Alura:
CursoAndroid com Kotlin: testes de unidade e Mocks ([Link]
android-kotlin-testes-unidade-mocks)
Curso Android com Kotlin: testes instrumentados ([Link]
android-kotlin-testes-instrumentados)
Nivel 3
Android - Arquitetura:
O guia de arquitetura Android aborda práticas e a arquitetura recomendada para a criação de
apps robustos com alta qualidade de produção. Organizar sua base de código em partes
contidas e acopladas com flexibilidade (Modularização).
Aprender o que é e para que serve a arquitetura MVVM (Model-View-ViewModel)
Camadas de IU, dados e domínios
Fluxo de dados dentro do app
Como utilizar o ViewModel
Recomendações da arquitetura, padrão repositório, offline-first
Gerenciamento de estado
Injeção de dependências
Melhorar a experiência dos usuários do app com o ViewModel
Aprender o que é modularização
Benefícios da modularização
Conteúdos
Site Documentação Android: Guia para a arquitetura do app
([Link]
Site Documentação Android: Visão geral do ViewModel
([Link]
Site Documentação Android: Camada de IU
([Link]
Site Documentação Android: Camada de Domínio
([Link]
Site Documentação Android: Camada de dados
([Link]
Site Documentação Android: Camada de dados - offline first
([Link]
Site Resumo da série 'MAD Skills' de arquitetura (inglês) ([Link]
[Link]/2022/04/[Link])
YouTube Android pra valer: Como usar o ViewModel + LiveData no Android
([Link]
Site Documentação Android: Guia para a modularização de apps Android
([Link]
Site Documentação Android: Recomendações para arquiteturas do Android
([Link]
YouTube CodandoTV(Rods) - Simplificando o Clean Architecture +MVVM na sua aplicação mobile
([Link]
Curso Architecture Components: ViewModel, LiveData e Room
([Link]
([Link]
Site Documentação Android: Primeiros passos com telas grandes
([Link]
Site Documentação Android: Criar para bilhões ([Link]
guidelines/build-for-billions?hl=pt-br)
([Link]
Site Documentação Android: Ativar multidex para apps com mais de 64.000 métodos
([Link]
Site Documentação Android: Guia de desempenho do app
([Link]
YouTube Philipp Lackner: Reduzir, otimizar and tornar seu app mais seguro com R8 & ProGuard
(inglês) ([Link]
Java - Fundamentos:
Java é uma linguagem de programação amplamente usada para codificar aplicações Web. Java
é uma linguagem multiplataforma, orientada a objetos e centrada em rede que pode ser usada
como uma plataforma em si. É uma linguagem de programação rápida, segura e confiável para
codificar tudo, desde aplicações móveis e software empresarial até aplicações de big data e
tecnologias do servidor.
Conhecer os tipos primitivos
Declarar variáveis, considerando os diferentes tipos
Usar estruturas condicionais ('if', 'else')
Conhecer os operadores de atribuição e comparação
Usar estruturas de repetição e laços ('while', 'for')
Usar funções, passando parâmetros e argumentos
Manipular métodos
Manipular arrays e listas
Obter dados de uma API
Criar construtores
Conteúdos
Site O que é Java? ([Link]
ArtigoAprenda Comigo: Java — Parte 1 ([Link]
parte-1-42ef8fddd8b6)
YouTube FernandaDev: Java (Aula 1 - Classes, Objetos, Atributos e Métodos)
([Link]
YouTube Loiane Groner: Primeiro Programa em Java ([Link]
Conteúdos Alura:
Artigo Java: o que é, linguagem e um Guia para iniciar na tecnologia
([Link]
Podcast Hipster 313 - Ecossistema Java revisitado ([Link]
revisitado-hipsters-ponto-tech-313/)
Artigo Como começar a desenvolver em Java? ([Link]
com-o-desenvolvimento-java)
Artigo Meu primeiro programa em Java ([Link]
programa-em-java)
Artigo Java: Conheça o método main ([Link]
Artigo Desenvolvendo aplicações Java com o VS Code
([Link]
Artigo Diferença entre int e Integer em Java ([Link]
int-e-integer-em-java)
Como converter String para Date em Java ([Link]
Artigo
converter-string-para-date-em-java)
Artigo Iterando uma lista em Java ([Link]
java)
Artigo Importando classes no Java ([Link]
java)
Site Apostila: Java e Orientação a Objetos ([Link]
objetos)
Site Apostila: Java para Desenvolvimento Web ([Link]
YouTube Alura: O que é o Java? ([Link]
Curso Formação Java e Orientação a Objetos ([Link]
Desafio 7 Days of Code: Java ([Link]
Android - Depuração:
Durante o desenvolvimento de um app, é bastante comum a presença de bugs inesperados,
como também, a falta de compreensão do motivo do bug. Para agilizar a análise e investigação
de problemas ou comportamentos inesperados no app, precisamos aprender a depurar ou
debuggar um app Android.
Saber como executar um app em depuração no Android Studio
Aprender a ativar a depuração em dispositivos físicos
Utilizar Logs para identificar eventos
Analisar stack track
Inspecionar o Layout, recursos do sistema como processador, memória e rede
Depurar o banco de dados do app e arquivos APKs pré-compilados
Analisar o build com o analizador de APK
Conteúdos
Site Documentação Android: Depurar seu app ([Link]
hl=pt-br)
Site Documentação Android: Configurar opções do desenvolvedor no dispositivo
([Link]
Site Documentação Android: Escrever e visualizar registros com o Logcat
([Link]
Site Documentação Android: Analisar um stack trace
([Link]
Site Documentação Android: Depurar o layout com o Layout Inspector e a Validação de layout
([Link]
Site Documentação Android: Inspecionar o tráfego de rede com o Network Inspector
([Link]
Site Documentação Android: Depurar seu banco de dados com o Database Inspector
([Link]
Site Documentação Android: Depurar APKs pré-compilados
([Link]
Site Documentação Android: Capturar e ler relatórios de bugs
([Link]
Site Documentação Android: Analisar seu build com o APK Analyzer
([Link]
YouTube Pedro Carvalho: Iniciando com Debug no Android Studio
([Link]
Conteúdos Alura:
Artigo O que é logcat e como visualizar logs no Android ([Link]
que-e-logcat-como-visualizar-logs-android)
([Link]
YouTube CodandoTV(Rods) - Ofuscação do seu app - Segurança #02
([Link]
YouTube CodandoTV(Rods) - Malware do seu app - Segurança #03
([Link]
YouTube CodandoTV(Rods) - Autenticação do seu app - Segurança #04
([Link]
YouTube CodandoTV(Rods) - Análise de código do seu app - Segurança #05
([Link]
YouTube CodandoTV(Rods) - Comunicação de Tráfego do seu app - Segurança #06
([Link]
Site Slides sobre Desenvolvimento Android - by Moro ([Link]
about-android-development/blob/main/README_pt-[Link]#seguran%C3%A7a-)
hl=pt-br)
Artigo O que é necessário para publicar seu aplicativo no Google Play e na App Store
([Link]
e-na-app-store-em-2023-le6)
Artigo Crie e publique um aplicativo Android na Google Play Store
([Link]
store/)
YouTube Deivid Rothen: Como Publicar um Aplicativo Android na Play Store
([Link]
YouTube Stack Mobile: Como Publicar um Aplicativo Android na Loja da Google Play - Guia
github-pages/about-github-pages)
Site Git School - Visualizing Git ([Link]
Site Dangit, Git!?! ([Link]
YouTube Rafaella Ballerini: O que é Git e GitHub? - definição e conceitos importantes 1/2
([Link]
YouTube Rafaella Ballerini: Como usar Git e GitHub na prática! - desde o primeiro commit até o
([Link]
Artigo Mais git com o hub: a linha de comando do Github
([Link]
Podcast Hipsters 184: Guia do Iniciante em Github
([Link]
Site GitHub: diferentes maneiras de compartilhar seu projeto
([Link]
projeto-c2002)
SiteWebsérie: Git e Github para Sobrevivência ([Link]
github-para-sobrevivencia)
Podcast Hipsters 109: Git e Github ([Link]
hipsters-109-a474)
YouTube Alura: Git e Github para Sobrevivência 01: Como o Git funciona?
([Link]
Curso Curso Git e GitHub: compartilhando e colaborando em projetos
([Link]
Curso Curso Git e GitHub: dominando controle de versão de código
([Link]
Desafio 7 Days of Code: GitHub ([Link]
HTTP - Fundamentos:
HTTP significa Hyper Text Transfer Protocol. A comunicação entre computadores cliente e
servidores web é feita enviando solicitações HTTP e recebendo respostas HTTP.
Entender a diferença dos verbos HTTP
Testar os requests e ver os status codes no navegador
Saber fazer uma requisição HTTP na linha de comando com WGET
Baixar uma imagem com WGET
Fazer um post
Conteúdos
Site MDN Web Docs: Uma visão geral do HTTP ([Link]
BR/docs/Web/HTTP/Overview)
MDN Web Docs: Métodos de requisição HTTP ([Link]
Site
BR/docs/Web/HTTP/Methods)
Site HTTP Cats ([Link]
Site HTTP Dogs ([Link]
YouTube Fabiano Gabardo Lemos: Requisições HTTP - GET, POST, PUT, PATCH DELETE
([Link]
YouTube Programador a Bordo: Protocolo HTTP e TCP/IP - Introdução
([Link]
Conteúdos Alura:
Artigo HTTP: Desmistificando o protocolo da Web
([Link]
Artigo Métodos de requisição do HTTP ([Link]
requisicao-do-http)
Artigo Qual é a diferença entre HTTP e HTTPS? ([Link]
diferenca-entre-http-e-https)
Podcast [Link]: HTTP/2: magia com o novo protocolo - Hipsters 13
([Link]
CursoCurso HTTP: Entendendo a web por baixo dos panos ([Link]
online-http-entendendo-web-por-baixo-dos-panos)
JSON:
JSON significa JavaScript Object Notation (notação de objeto JavaScript). É um formato de texto
para armazenar e transmitir dados.
Criar um objeto
Transformar um objeto em uma string
Transformar uma string em objeto
Manipular um objeto
Conteúdos
Site MDN Web Docs: JSON ([Link]
BR/docs/Web/JavaScript/Reference/Global_Objects/JSON)
MDN Web Docs: Trabalhando com JSON ([Link]
Site
BR/docs/Learn/JavaScript/Objects/JSON)
ArtigoIntrodução ao JSON ([Link]
json-7825b1a550ff)
YouTube Marco Bruno: O que é JSON e como criar um objeto ([Link]
v=oCY5YEEjlwE)
Conteúdos Alura:
Artigo O que é JSON? ([Link]
Curso Curso MySQL e JSON: persistindo JSON de maneira eficiente
([Link]
Design Patterns:
Na engenharia de software, um "padrão de projeto" (Design Pattern em inglês) é uma solução
geral e reutilizável para um problema que ocorre normalmente dentro de um determinado
contexto de projeto de software.
Conhecer e aplicar os principais Design Patterns
Conteúdos
Artigo Design Patterns — O que são e quais os benefícios?
([Link]
benef%C3%ADcios-9cd0cfdd6ebf)
Artigo Design Patterns ([Link]
YouTube Matheus Castiglioni: O que são design patterns (padrões de projetos) e para que
servem? ([Link]
YouTube RinaldoDev: Design Patterns - o que são? Por que aprender a utilizar?
([Link]
Conteúdos Alura:
Podcast [Link]: TechGuide - Design Patterns – Hipsters Ponto Tech #347
([Link]
Artigo Design patterns: Breve introdução aos padrões de projeto
([Link]
Podcast [Link]: Design Patterns - Hipsters 206
([Link]
Curso Curso Design Patterns em Java I: boas práticas de programação
([Link]
Curso Curso Design Patterns C# I: boas práticas de programação
([Link]
Curso Curso Design Patterns em PHP: padrões comportamental
([Link]
CursoCurso Design Patterns em PHP: padrões estruturais ([Link]
online-php-design-pattern-estrutural)
Curso Curso Design Patterns em PHP: padrões criacionais ([Link]
online-php-design-pattern-criacional)
LINUX ([Link]
YouTube Ninja do Linux: Comandos básicos da linha de comando do Linux
([Link]
Conteúdos Alura:
Artigo CMD: dicas para trabalhar no prompt do Windows
([Link]
Artigo Como configurar variáveis de ambiente no Windows, Linux e macOS
([Link]
Site Primeiras aulas do Curso Windows Prompt: Trabalhando na linha de comando
([Link]
Curso Curso Windows Prompt: Trabalhando na linha de comando
([Link]
Curso Curso Terminal: aprenda comandos para executar tarefas
([Link]
Cloud - Fundamentos:
Cloud, ou computação em nuvem é a distribuição de serviços de computação pela Internet
usando um modelo de preço pago conforme o uso. Uma nuvem é composta de vários recursos
de computação, que abrangem desde os próprios computadores (ou instâncias, na terminologia
de nuvem) até redes, armazenamento, bancos de dados e o que estiver em torno deles. Ou seja,
tudo o que normalmente é necessário para montar o equivalente a uma sala de servidores, ou
mesmo um data center completo, estará pronto para ser utilizado, configurado e executado.
Conhecer a diferença entre IaaS, PaaS e SaaS
Conhecer os maiores provedores de cloud
Especializar-se em algum provedor
Conteúdos
em-nuvem-515930304cf9)
Artigo O que é cloud? ([Link]
991109e708c6)
YouTube Gabs Ferreira: Por que investir e estudar cloud? ([Link]
v=Z45BTNeZ1l0)
YouTube Andre Iacono: O que é MICROSOFT AZURE? Qual Certificação começar em 2022?
([Link]
YouTube AWS: O que é a AWS? ([Link]
YouTube O que é Google Cloud e por que aprender?
([Link]
Artigo AWS vs Google Cloud vs Azure: o que cada um tem de melhor?
([Link]
melhor-52107174f7b7)
YouTube Código Fonte TV: Azure (A plataforma Cloud da Microsoft)
([Link]
YouTube Mundo da Cloud: AWS do Zero ao Expert ([Link]
v=HiBCv9DolxI&list=PLtL97Owd1gkQ0dfqGW8OtJ-155Gs67Ecz)
Conteúdos Alura:
Podcast [Link]: TechGuide - Fundamentos Cloud – Hipsters Ponto Tech #348
([Link]
Artigo Cloud: o que é, História e Guia da computação em nuvem
([Link]
Podcast [Link]: Uma jornada Para o Cloud - Hipsters Deep Dive 005
([Link]
Podcast [Link]: Histórias do Cloud - Hipsters 04
([Link]
Artigo Heroku, Vercel e outras opções de cloud como plataforma
([Link]
Artigo AWS: Guia sobre o que é Amazon Web Services, seus Serviços e Certificações
([Link]
Artigo Terraform: criando máquinas na Azure ([Link]
maquinas-na-azure)
YouTube Alura: O que é cloud? ([Link]
YouTube Alura: AWS, Google Cloud e Azure: Por onde começar? | [Link]
([Link]
YouTube Alura: Certificação em Cloud: Azure, AWS, Google | [Link]
([Link]
Curso Formação Começando em Cloud Computing ([Link]
computing)
CursoFormação Amazon Web Services ([Link]
services)
Curso Formação Google Certified Associate Cloud Engineer
([Link]
Curso Formação Certificação AWS Certified Cloud Practitioner
([Link]
Curso Formação Containers com AWS ECS e EKS ([Link]
containers-aws)
Curso Formação Google Cloud Platform ([Link]
Curso Formação Certificação Google Certified Associate Cloud Engineer
([Link]
Curso Formação Azure ([Link]
Curso Formação Certificação AZ-900: Microsoft Azure Fundamentals
([Link]
SOLID:
O Solid possui cinco princípios considerados como boas práticas no desenvolvimento de
software que ajudam os programadores a escrever os códigos mais limpos, separando as
responsabilidades, diminuindo acoplamentos, facilitando na refatoração e estimulando o
reaproveitamento do código.
Conteúdos
Artigo Princípios de S.O.L.I.D em C# — Guia prático
([Link]
pr%C3%A1tico-cbb1e6584284)
YouTube Filipe Deschamps: SOLID fica fácil com Essas Ilustrações
([Link]
YouTube Central dotNET: Princípios de SOLID com C# ([Link]
v=iU4BMUcjg8g)
Felipe Pinheiro - Tech: Princípios SOLID, o que é DIP? ([Link]
YouTube
v=q0BGgQJcp7w)
YouTube Dev Eficiente: SOLID - Uma reflexão sobre o Princípio da responsabilidade única
([Link]
Conteúdos Alura:
Artigo SOLID: o que é e quais os 5 princípios da Programação Orientada a Objetos (POO)
([Link]
Podcast SOLID: Código bom e bonito - Hipsters Ponto Tech 219
([Link]
tech-219-a649)
YouTube Alura: Clean Code e Solid ([Link]
Curso Curso C#: aplique princípios SOLID ([Link]
principios-solid)
Curso Curso Boas práticas de programação: melhore o código de uma API Java
([Link]
Curso Curso SOLID com PHP: princípios da programação orientada a objetos
([Link]
Curso Curso iOS: escrevendo código de qualidade com SOLID em Swift
([Link]
Curso SOLID com TypeScript: aplicando boas práticas em orientação a objetos
([Link]
Curso Formação Boas práticas em C# ([Link]
sharp)
Curso Formação Boas práticas em PHP ([Link]
php)
Curso Formação Boas práticas em Java ([Link]
java)
Livro Casa do Código: Desbravando SOLID - Práticas avançadas para códigos de qualidade
Site
Clean Architecture:
A Clean Architecture (Arquitetura Limpa) é uma forma de desenvolver software, de tal forma que
apenas olhando para o código fonte de um programa, você deve ser capaz de dizer o que o
programa faz.
Conteúdos
([Link]
YouTube Full Cycle: O que é Clean Architecture ([Link]
mnOtQg)
YouTube CodandoTV(Rods) - Simplificando o Clean Architecture +MVVM na sua aplicação mobile
([Link]
Firebase:
O Firebase é uma plataforma de desenvolvimento de aplicativos Backend-as-a-Service (BaaS)
que fornece serviços de backend hospedados, tais como banco de dados em tempo real,
armazenamento em nuvem, autenticação, relatórios de falhas, aprendizado de máquina,
configuração remota e hospedagem para seus arquivos estáticos.
Entender como Instalar o Firebase
Conhecer a documentação do Firebase
Conhecer as ferramentas do Firebase disponíveis
Conteúdos
Site Produtos do Firebase | Firebase ([Link]
Site Casos de Uso do Firebase | Firebase ([Link]
Site Adicionando o Firebase ao App Flutter | Firebase Docs
([Link]
Site Adicionando o Firebase ao seu projeto Android | Firebase Docs
([Link]
YouTube Firebase: Começando no Firebase com Flutter - Firecasts (inglês)
([Link]
YouTube Prof. Diego Antunes: Instalação do Firebase no Flutter em 2022 (FlutterFire e Realtime
Database) ([Link]
Site Precificação do Firebase | Firebase ([Link]
Conteúdos Alura:
Artigo Integrando App Android com o Firebase Cloud Messaging
([Link]
Artigo Tratando notificações recebidas do Firebase no Android
([Link]
Artigo Autenticando com a conta Google no Android utilizando o Firebase Authentication
([Link]
Artigo Flutter: Tratamento de exceções com Firebase Crashlytics
([Link]
YouTube Alura: Primeiros passos em Cloud Firestore no Flutter (Parte 1) | #AluraMais
([Link]
YouTube Alura: Primeiros passos em Cloud Firestore no Flutter (Parte 2) | #AluraMais
([Link]
YouTube Alura: Registro de exceções no Firebase Crashlytics | #AluraMais
([Link]
Curso Curso Flutter: Push Notifications com Firebase Cloud Messaging
([Link]
Curso Formação Firebase com Android ([Link]
([Link]
Design System:
Um Design System (sistema de design) é uma coleção de componentes reutilizáveis, guiados
por padrões claros, que podem ser colocados juntos para construir aplicações.
Criar e manter bibliotecas que serão consumidas e usadas como padrão para a construção de
um projeto
Design tokens
Estilos fundamentais
Construção de componentes
Microinterações
Documentação
Conteúdos
ArtigoDesign System: o que é e quais os benefícios? ([Link]
partner/design-system-o-que-e-438773dd811)
Artigo Afinal, o que é Design System? ([Link]
design-system-448c257b0021)
Artigo O que são Design Tokens ([Link]
Caio Gonzalez: O que é Design System? / Guia para começar o seu próprio Design
YouTube
System ([Link]
Conteúdos Alura:
Artigo O que é Design System? ([Link]
Design Systems: exemplos práticos ([Link]
Artigo
exemplos-praticos)
YouTube Alura: Design System & Style Guide ([Link]
YouTube Alura: Design Systems (com Charles Assunção) ([Link]
v=MLGFctEtmYQ)
Podcast [Link]: Design Systems - Hipsters 170
([Link]
Podcast [Link]: Design System – Layers ponto tech 36
([Link]
Curso Design System: definindo estilos e tokens ([Link]
system-definindo-estilos-tokens)
Curso Design System: projetando e construindo componentes
([Link]
Curso Design System: documentando um design system
([Link]
Desafio Experimente o que é ser um(a) profissional de Ux
([Link]
Sistemas de cores:
Definir uma paleta de cores que faça sentido para determinada interface
Conteúdos
Artigo Cores em UI: Um Guia Rápido Para Usar em Seus Projetos
([Link]
31ccffe3e16b)
Artigo A Psicologia das cores e sua relação com o UX Design ([Link]
psicologia-das-cores-e-sua-rela%C3%A7%C3%A3o-com-o-ux-design-af02460639cd)
YouTube [Link]: Aplicação de Cores - Princípios do UI ([Link]
v=C_VhzEyqT6U)
Conteúdos Alura:
Curso Curso Cores para Designers: escolhendo e trabalhando com cores em um projeto
([Link]
Site Primeiras aulas do curso Cores: sistemas básicos e paletas
([Link]
Cores: sistemas básicos e paletas ([Link]
Curso
da-cor)
Curso Curso Design editorial: criação de materiais gráficos ([Link]
online-design-editorial)
([Link]
Conteúdos Alura:
Artigo 10 tipografias gratuitas para um design incrível ([Link]
tipografias-gratuitas-design-incrivel)
Site Tipografia para Web ([Link]
Site Primeiras aulas do curso Tipografia: conhecendo o que há por trás dos tipos
([Link]
Curso Curso Tipografia: conhecendo o que há por trás dos tipos
([Link]
Curso Curso Design editorial: criação de materiais gráficos ([Link]
online-design-editorial)
Design Responsivo:
Ajustar suas páginas para o tamanho da tela do usuário
Media queries
Conhecer o conceito de Mobile first
Conteúdos
Artigo Design responsivo para leigos ([Link]
leigos-888c9d0dfdaf)
Artigo Entendendo as diferenças entre design responsivo, adaptativo e mobile-first
([Link]
responsivo-adaptativo-e-mobile-first-ea3c61fc9181)
Artigo Web Design Responsivo — O Que É e Como Usá-lo
([Link]
us%C3%A1-lo-12477b168fc7)
YouTube MobGeek: O que é Design Responsivo? ([Link]
v=WXfYtneJZzI)
YouTube Ralf Lima: Mobile First e Desktop First ([Link]
v=oqggJTC3_vA)
Conteúdos Alura:
ArtigoComo fazer Grids e a Responsividade na Web ([Link]
fazer-grids-e-a-responsividade-na-web)
Curso Curso Layouts Responsivos: trabalhando com layouts mobile
([Link]
Curso HTML e CSS: responsividade com mobile-first ([Link]
html-css-responsividade-mobile-first)
Desafio 7 Days of Code: Responsividade ([Link]
Android - Acessibilidade:
Acessibilidade Digital é a eliminação de barreiras na Web. O conceito pressupõe que os sites e
aplicativos sejam projetados de modo que todas as pessoas possam perceber, entender,
navegar e interagir de maneira efetiva com as páginas, incluindo pessoas com necessidades de
acessibilidades, como pessoas com problemas de visão, daltonismo, dificuldades auditivas,
comprometimento motor, deficiência cognitivas e muitos outros tipos de deficiência.
Aumentar a visibilidade do texto
Usar controles grandes e simples
Descrever cada elemento de IU
Conteúdos
([Link]
Site Documentação Android: Princípios para melhorar a acessibilidade do app
([Link]
Site Documentação Android: Testar a acessibilidade do seu app
([Link]
YouTube Chico Rasia: View customizada no Android com Kotlin, parte 3: Acessibilidade com
Talkback ([Link]
YouTube CodandoTV: Acessibilidade usando JetPack COMPOSE com Gabriel Moro
([Link]
SiteSlides sobre Desenvolvimento Android - by Moro ([Link]
about-android-development/blob/main/README_pt-[Link]#acessibilidade-%EF%B8%8F)
Figma - Fundamentos:
Figma é uma aplicação web colaborativa para design de interfaces. O conjunto de recursos do
Figma se concentra na interface do usuário e no design da experiência do usuário, com ênfase
na colaboração em tempo real, utilizando uma variedade de editores de gráficos vetoriais e
ferramentas de prototipagem.
Criar layouts de páginas e componentes
Conteúdos
Site Figma Básico - Primeiros passos com Figma
([Link]
Artigo O que é o Figma e por que usar ele? ([Link]
figma-e-por-que-usar-ele-a71fbf1dbdd8)
Artigo Entenda o que é e como usar o Figma para criar designs
([Link]
YouTube Marco Bruno: Como usar o Figma! ([Link]
YouTube 4 Exemplos de Componentes interativos no Figma ([Link]
v=mGL3jrY-OBc)
Conteúdos Alura:
Artigo Figma: o que é a ferramenta, Design e uso ([Link]
Site Como Front-End utiliza o Figma - Alura+ ([Link]
mais/como-front-end-utiliza-o-figma-c858)
Artigo Top 5 plugins no Figma para trabalhar com Design System
([Link]
Artigo 5 plugins essenciais que você precisa ter no seu Figma
([Link]
Artigo10 truques incríveis e pouco conhecidos no Figma ([Link]
truques-incriveis-pouco-conhecidos-figma)
Podcast [Link]: Figma do Design ao Código 03
([Link]
03-a726)
YouTube Como fazer estilos locais mais rapidamente no Figma?
([Link]
Curso Formação Figma ([Link]
TechGuide - Alura
Alura, PM3 e FIAP
O [Link] é um projeto open source