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

O que é preciso para ser um desenvolvedor Android