SlideShare a Scribd company logo
1 of 34
Download to read offline
Desenvolvimento
Android
Nelson Glauber
@nglauber
@nglauber
nglauber
www.nglauber.com.br

youtube.com/nglauber
O que é o Android?
• Um sistema operacional para dispositivos móveis utilizado por
mais de 2 bilhões de dispositivos.
• O Android é Open Source (source.android.com) distribuído sob
licença Apache via AOSP (Android Open Source Project)
Android está AQUI…
Wear OS
Android TV
Android Auto
E muito mais…
Os sabores do Android
1.5 - 3 1.6 - 4 2.0 - 6

2.1 - 7
2.2 - 8 2.3 - 9 e 10
3.0 - 11

3.1 - 12

3.2 - 13
4.0 - 14/15
4.1 - 16

4.2 - 17

4.3 - 18
4.4 - 19
Os sabores do Android
5.0 - 21

5.1 - 22
6.0 - 23
7.0 - 24

7.1 - 25
8.0 - 26

8.1 - 27
9.0 - 28
API Level 29
Fragmentação
74,8% dos aparelhos com
Android 6 ou superior 

(em maio 2019)
https://developer.android.com/about/dashboards
Market Share
Android 74.1%
iOS 24.8%
https://gs.statcounter.com/os-market-share/mobile/worldwide/2019
O segredo do android
O que é preciso saber pra
ser um desenvolvedor de
aplicativos Android?
Conceitos
• Lógica de programação, algoritmos e estrutura de dados.
• Programação Orientada à Objetos.
• Protocolos de comunicação (HTTP, Bluetooth, NFC, Socket, …)
• Inglês
Linguagens de Programação
• Kotlin
• Java
• C/C++
Linguagens++
• XML
• SQL
• NoSQL
UI & UX
• Conceitos de usabilidade de aplicativos.
• Criação de interfaces utilizando Material Design (cores,
margens, tamanhos, sombras, elevação, navegação, …)
• Bitmaps (PNG e JPG) e imagens vetoriais (Vector Drawable)
• Animações (micro-interações, transições de tela)
Arquitetura
• Princípios do S.O.L.I.D.
• MVP
• MVVM
• Clean Architecture
Comunicação
• Socket
• HTTP
• OAuth
• REST (JSON|XML)
• GraphQL
• FlatBuffers
Threading
• Concorrência (Main Thread + Worker Thread)
• RxJava (Streams)
• Coroutines
Testes Automatizados
• Testes unitários (test)
• Testes instrumentados (androidTest)
• Ferramentas (JUnit, Robolectric, Espresso, UIAutomator,
Mockito/MockK, MockWebServer, …)
Ferramentas
• Controle de versão (Git/GitHub)
• Lint / KtLint / Detekt
• Profiler
• LeakCanary
• Git Hooks
CI/CD
• Jenkins
• Circle C.I.
• Bitrise
• Travis
• Fastlane
Serviços
• Firebase (Database, Storage, Cloud Messaging, Remote Config,
Crashlytics, Analytics, App Distribution, MLKit, Authentication,
Cloud Storage, …)
• Google Console (Maps, Street View, …)
• Branch.IO
• Cloudinary
• PubNub
Desafios
• Diversidade de modelos e fabricantes.
• Tamanhos e qualidade de telas diferentes.
• Internacionalização + Localização + RTL.
• Versões do S.O.
• Acessibilidade.
• Recursos de hardware restritos (bateria, dados, localização)
• Conectividade limitada.
Soft Skills
• Boa comunicação
• Trabalho em equipe
• Vontade de aprender
• Participar de comunidades
• Compartilhar conhecimento
• Ser empreendedor da sua carreira
Oportunidades de trabalho
• Altíssima demanda por profissionais qualificados.
• Salários bem atraentes.
• Boa projeção para o futuro.
Fonte: https://g1.globo.com/economia/concursos-e-emprego/noticia/2020/02/12/
levantamento-de-site-de-empregos-mostra-25-cargos-em-alta-no-brasil-veja-lista.ghtml
Média salarial de desenvolvedores Android

nas capitais
Fonte: https://medium.com/android-dev-br/refinamento-da-pesquisa-de-mercado-2019-d27649a7a2d0
Média salarial de CLTs e PJS
Conclusão
• Desenvolver aplicações para dispositivos móveis requer uma
base sólida de engenharia de software.
• Existem diversos desafios tecnológicos que devem ser
superados diariamente.
• Sem dúvida é uma área prazerosa e que traz um bom retorno.
Obrigado!
Nelson Glauber
@nglauber

More Related Content

What's hot

Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
Gilmar Pupo
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
kinow
 

What's hot (20)

Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste Continuo
 
Jenkins
JenkinsJenkins
Jenkins
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
TDC 2018
TDC 2018TDC 2018
TDC 2018
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Fastlane
FastlaneFastlane
Fastlane
 

Similar to O que é preciso para ser um desenvolvedor Android

Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
Natanael Fonseca
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
Renato
 

Similar to O que é preciso para ser um desenvolvedor Android (20)

Show Day Droid x
Show Day Droid xShow Day Droid x
Show Day Droid x
 
A importancia de testes em todos os aspectos
A importancia de testes em todos os aspectosA importancia de testes em todos os aspectos
A importancia de testes em todos os aspectos
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
Android: Uma nova maneira de pensar
Android: Uma nova maneira de pensarAndroid: Uma nova maneira de pensar
Android: Uma nova maneira de pensar
 
Android - de usuários a desenvolvedores
Android - de usuários a desenvolvedoresAndroid - de usuários a desenvolvedores
Android - de usuários a desenvolvedores
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)
 
Android: mercado mobile e visão geral da plataforma
Android: mercado mobile e visão geral da plataformaAndroid: mercado mobile e visão geral da plataforma
Android: mercado mobile e visão geral da plataforma
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 
Flash mobile
Flash mobileFlash mobile
Flash mobile
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Apresentação Google Android
Apresentação Google AndroidApresentação Google Android
Apresentação Google Android
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 

More from Nelson Glauber Leal

More from Nelson Glauber Leal (20)

Seu primeiro app Android e iOS com Compose Multiplatform
Seu primeiro app Android e iOS com Compose MultiplatformSeu primeiro app Android e iOS com Compose Multiplatform
Seu primeiro app Android e iOS com Compose Multiplatform
 
Desenvolvimento Moderno de Aplicações Android 2023
Desenvolvimento Moderno de Aplicações Android 2023Desenvolvimento Moderno de Aplicações Android 2023
Desenvolvimento Moderno de Aplicações Android 2023
 
Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023
 
Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021
 
Jetpack Compose a new way to implement UI on Android
Jetpack Compose a new way to implement UI on AndroidJetpack Compose a new way to implement UI on Android
Jetpack Compose a new way to implement UI on Android
 
Jetpack Compose a nova forma de implementar UI no Android
Jetpack Compose a nova forma de implementar UI no AndroidJetpack Compose a nova forma de implementar UI no Android
Jetpack Compose a nova forma de implementar UI no Android
 
Aplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & JetpackAplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & Jetpack
 
Aplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & JetpackAplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & Jetpack
 
Arquitetando seu app Android com Jetpack
Arquitetando seu app Android com JetpackArquitetando seu app Android com Jetpack
Arquitetando seu app Android com Jetpack
 
Arquitetando seu app Android com Jetpack
Arquitetando seu app Android com JetpackArquitetando seu app Android com Jetpack
Arquitetando seu app Android com Jetpack
 
Aplicações Assíncronas no Android com Coroutines e Jetpack
Aplicações Assíncronas no Android com Coroutines e JetpackAplicações Assíncronas no Android com Coroutines e Jetpack
Aplicações Assíncronas no Android com Coroutines e Jetpack
 
Mastering Kotlin Standard Library
Mastering Kotlin Standard LibraryMastering Kotlin Standard Library
Mastering Kotlin Standard Library
 
Aplicações assíncronas no Android com Coroutines & Jetpack
Aplicações assíncronas no Android com Coroutines & JetpackAplicações assíncronas no Android com Coroutines & Jetpack
Aplicações assíncronas no Android com Coroutines & Jetpack
 
Introdução ao Desenvolvimento Android com Kotlin
Introdução ao Desenvolvimento Android com KotlinIntrodução ao Desenvolvimento Android com Kotlin
Introdução ao Desenvolvimento Android com Kotlin
 
Persisting Data on SQLite using Room
Persisting Data on SQLite using RoomPersisting Data on SQLite using Room
Persisting Data on SQLite using Room
 
Arquitetando seu aplicativo Android com Jetpack
Arquitetando seu aplicativo Android com JetpackArquitetando seu aplicativo Android com Jetpack
Arquitetando seu aplicativo Android com Jetpack
 
Desenvolvimento Moderno de Aplicativos Android
Desenvolvimento Moderno de Aplicativos AndroidDesenvolvimento Moderno de Aplicativos Android
Desenvolvimento Moderno de Aplicativos Android
 
Desenvolvimento Moderno de aplicativos Android
Desenvolvimento Moderno de aplicativos AndroidDesenvolvimento Moderno de aplicativos Android
Desenvolvimento Moderno de aplicativos Android
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com Kotlin
 
Tudo que você precisa saber sobre Constraint Layout
Tudo que você precisa saber sobre Constraint LayoutTudo que você precisa saber sobre Constraint Layout
Tudo que você precisa saber sobre Constraint Layout
 

O que é preciso para ser um desenvolvedor Android