Slide 1

Slide 1 text

Seu app é seu castelo. Construindo aplicações para Android que respeitam os usuários! Walmyr Carvalho Founder, Developer & Designer @ Kusudama
 Google Developer Expert, Android

Slide 2

Slide 2 text

Olá CapiConf, meu nome é WalmyrCarvalho! :)

Slide 3

Slide 3 text

CapiConf 2017 Foi daora! ❤✨

Slide 4

Slide 4 text

Trabalho com desenvolvimento Android há 9 anos e sou um Google Developer Experts de Android no Brasil há 3 anos. Além disso, estou muito próximo da comunidade nacional de Android, sendo organizador do GDG São Paulo, Kotlin Meetup São Paulo e Android Dev BR, a maior comunidade brasileira de Android do mundo, com mais de 5.000 pessoas!
 
 Também apoio o empreendedorismo nacional, sendo mentor de Android e mobile no Google Developers Launchpad Accelerator e na ACE Startups.

Slide 5

Slide 5 text

Já ajudei a evoluir produtos mobile para empresas como Loggi, 99, Cielo, CI&T, Hotel Urbano e Globo Esporte, durante mais de 8 anos de carreira como desenvolvedor Android. Fonte: Google Play

Slide 6

Slide 6 text

Nesse ano fundei a Kusudama, um estúdio de design e desenvolvimento de produtos digitais para Android e iOS que tem como objetivo criar soluções que tratem os usuários mobile com respeito.

Slide 7

Slide 7 text

Qual é a melhor aplicação que você já usou no seu smartphone?

Slide 8

Slide 8 text

Fonte: Google Play

Slide 9

Slide 9 text

Em boa parte desses projetos existe um time relativamente grande por trás, garantindo que o produto cresça e evolua de forma saudável e com agilidade.

Slide 10

Slide 10 text

Mas o que define se um aplicativo é bom ou não? Qual é o critério que a gente usa?

Slide 11

Slide 11 text

A "pior" resposta de todas: depende!
 • Sua aplicação é gratuita ou paga? • É uma ferramenta ou um serviço? • Só funciona no Brasil ou também no exterior? • Qual é a versão mínima do OS que ela suporta? • Funciona só em smartphones ou também em tablets? • Tem versões para iOS e Android?

Slide 12

Slide 12 text

No desenvolvimento de aplicações mobile, ter o contexto certo é a chave de muitas situações desafiadoras e importantes.

Slide 13

Slide 13 text

Pixel 3 Galaxy S8 ☺ Moto G

Slide 14

Slide 14 text

Além da qualidade dos nossos dispositivos, existe outro desafio grande: internet!

Slide 15

Slide 15 text

Internet é tudo, tanto pra quem faz quanto pra quem usa!
 • Carregamento de dados em geral (emails, tweets, etc) • Streaming de mídia (áudio, vídeo, etc) • Mapas e geolocalização • Sincronização entre dispositivos • Cache de informações importantes (passagens aéreas, documentos, etc) • Memes e gifs legais (importante)

Slide 16

Slide 16 text

Do ponto de vista de produto, existem diversas soluções excelentes para mitigar situações ruins de conexão de internet nos dispositivos mobile das pessoas.

Slide 17

Slide 17 text

Lite Normal Fonte: Google Play

Slide 18

Slide 18 text

Offline Ride - Ola (ride sharing) Em 2016 a Ola, uma das maiores empresas de ride sharing da India e Austrália, anunciou o suporte a solicitação de corridas offline pelo celular, utilizando SMS. bit.do/ola-offline-rides Fonte: Gadgets 360º

Slide 19

Slide 19 text

Tanto um bom smartphone quanto uma boa internet são privilégios em muitos lugares, portanto sempre precisamos ter empatia durante o desenvolvimento de aplicações mobile.

Slide 20

Slide 20 text

bit.do/android-go

Slide 21

Slide 21 text

Android Go, uma experiência pensada para devices mais simples e conexão reduzida!
 • Utiliza menos recursos do aparelho • Gerenciamento de armazenamento • Aplicações para gerenciar dados • Performance otimizada • Segurança reforçada bit.do/android-go

Slide 22

Slide 22 text

Quais são os aspectos que tornam uma aplicação boa de fato?

Slide 23

Slide 23 text

Tamanho do download Login e onboarding Experiência de uso Idioma e localização Baixa conectividade Suporte Acessibilidade Versão suportada Preço Crash-free Segurança Privacidade Ofuscação de código Feature toggles Tamanho de payloads (API) Métricas internas Login (Google, GitHub, etc) Push notifications Certificate Pinning SSL e HTTPS Tipo de API (REST, GraphQL) OAuth, JWT e sessões Leitor de digitais Performance

Slide 24

Slide 24 text

Tamanho do download Login e onboarding Experiência de uso Idioma e localização Suporte Acessibilidade Versão suportada Preço Segurança Privacidade Ofuscação de código Feature toggles Tamanho de payloads (API) Métricas internas Login (Google, GitHub, etc) Push notifications Certificate Pinning SSL e HTTPS Tipo de API (REST, GraphQL) OAuth, JWT e sessões Leitor de digitais Performance Baixa conectividade Crash-free

Slide 25

Slide 25 text

Tamanho do download Login e onboarding Experiência de uso Idioma e localização Suporte Acessibilidade Versão suportada Preço Segurança Privacidade Ofuscação de código Feature toggles Tamanho de payloads (API) Métricas internas Login (Google, GitHub, etc) Push notifications Certificate Pinning SSL e HTTPS Tipo de API (REST, GraphQL) OAuth, JWT e sessões Leitor de digitais Performance Baixa conectividade Crash-free Macro Micro

Slide 26

Slide 26 text

Óbvio que existe uma série de outras coisas super importantes, mas existe uma base sólida necessária para toda aplicação.

Slide 27

Slide 27 text

Métricas + Dados Arquitetura + Qualidade Offline + Redundância Experiência

Slide 28

Slide 28 text

Disclaimer: Vou passar algumas recomendações que eu acredito que colaboram para esses pilares que comentei, mas nada aqui é escrito em pedra!

Slide 29

Slide 29 text

De forma prática, como podemos construir aplicações Android e mobile melhores?

Slide 30

Slide 30 text

Material Design: Um leve flashback… ⏳

Slide 31

Slide 31 text

O Material Design é um design language criado pelo Google em 2014, com o objetivo de se unificar experiências entre produtos para mobile, tablet, desktop e até mesmo wearables, carros e TVs.

Slide 32

Slide 32 text

Fonte: Google

Slide 33

Slide 33 text

Os resultados foram excelentes, inclusive com empresas convertendo mais após adotarem o Material Design em seus projetos, por exemplo.

Slide 34

Slide 34 text

Mas um ponto que se percebeu é que algumas aplicações perdiam um pouco a sua marca no meio de tantos aplicativos similares.

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Como flexibilizar o Material Design para resolver esse tipo de problema?

Slide 37

Slide 37 text

Material Theming: “Make branding great again” ✨

Slide 38

Slide 38 text

O Material Theming é a possibilidade de se flexibilizar o Material Design para melhor refletir a marca do seu produto.

Slide 39

Slide 39 text

Material Components GitHub bit.do/material-components-github

Slide 40

Slide 40 text

bit.do/talk-walmyr-material

Slide 41

Slide 41 text

Android Jetpack: Estruturando minha aplicação de forma eficiente!

Slide 42

Slide 42 text

O Android Jetpack é um conjunto de bibliotecas, ferramentas e guias que ajudam você a desenvolver aplicações de alto nível sem muita dor de cabeça.

Slide 43

Slide 43 text

Android Jetpack - Android Developers Página oficial developers.android.com/jetpack Fonte: Android Developers

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

Ou seja, com as bibliotecas do Jetpack você consegue construir aplicações sólidas, confiáveis e redundantes em situações adversas.

Slide 47

Slide 47 text

Fonte: Google bit.do/android-jetpack-youtube

Slide 48

Slide 48 text

Google - Android Sunflower GitHub bit.do/android-sunflower-github

Slide 49

Slide 49 text

Métricas: O que, quando e como medir?

Slide 50

Slide 50 text

As métricas de um aplicativo devem servir para alguns propósitos, como prover informações valiosas pra evolução do negócio, produto e

Slide 51

Slide 51 text

Firebase Analytics Página oficial firebase.google.com/docs/analytics Fonte: Firebase

Slide 52

Slide 52 text

Crashlytics - Firebase Página oficial firebase.google.com/docs/crashlytics Fonte: Firebase

Slide 53

Slide 53 text

Importante: o usuário deve estar no centro das suas métricas como objetivo de melhorar o produto, sejamos sensatos ao usar dados sensíveis, respeitando sempre os usuários

Slide 54

Slide 54 text

Se eu quiser aprender mais, onde eu posso ir?

Slide 55

Slide 55 text

Android Developers Página oficial developers.android.com Fonte: Google

Slide 56

Slide 56 text

Kotlin - Android Developers Página oficial developers.android.com/kotlin Fonte: Android Developers

Slide 57

Slide 57 text

Android Jetpack - Android Developers Página oficial developers.android.com/jetpack Fonte: Android Developers

Slide 58

Slide 58 text

Material Design Página oficial material.io Fonte: Material Design

Slide 59

Slide 59 text

Kotlin/Everywhere Evento kotl.in/everywhere Fonte: JetBrains Blog

Slide 60

Slide 60 text

Android Dev BR Comunidade slack.androiddevbr.org

Slide 61

Slide 61 text

Tenho alguns stickers! Me conta mais do seu projeto pra ganhar um! :)

Slide 62

Slide 62 text

Muito obrigado, qualquer tiver dúvida, fala comigo! @walmyrcarvalho /walmyrcarvalho [email protected]

Slide 63

Slide 63 text

Perguntas? Ficou alguma dúvida?