Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pensando grande em telas pequenas: como desenvolver, manter e evoluir aplicações mobile escaláveis como as gigantes do mercado!

Pensando grande em telas pequenas: como desenvolver, manter e evoluir aplicações mobile escaláveis como as gigantes do mercado!

This talk was held during two online events: the first one was during Capiconf Online - a online edition of one of the biggest technologies events in Brazil, that usually happens in the south, in Curitiba, Paraná, that happened on May 16th. The second one was during an online meetup of GDG Campinas, one of the biggest GDG chapters in Brazil, that happened on May 21th.

The talk was about techniques, tools and smart approaches on mobile development routine that I've compiled in a talk format, to help developers and professionals to evolve their practices and culture around mobile development and product release overall.

The content is in pt-BR.

CapiConf Online event info: https://www.meetup.com/pt-BR/GDG-Uberlandia/events/270222692/
Video: https://www.youtube.com/watch?v=dxmXWiV8CtA

GDG Campinas meetup info: https://www.meetup.com/pt-BR/gdgcampinas/events/270586511/
Video: https://www.youtube.com/watch?v=F48j_jq5wQA

Walmyr Carvalho

May 21, 2020
Tweet

More Decks by Walmyr Carvalho

Other Decks in Technology

Transcript

  1. Pensando grande
    em telas pequenas:
    Como desenvolver, manter e evoluir
    aplicações mobile escaláveis! ✨
    Walmyr Carvalho
    Mobile Technical Leader @ idwall, Founder @ Kusudama
    Google Developer Expert, Android
    @walmyrcarvalho

    View full-size slide

  2. Olá, pessoal!
    Meu nome é Walmyr Carvalho,
    muito prazer! :)

    View full-size slide

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

    View full-size slide

  4. Já ajudei a evoluir produtos mobile
    para empresas como Loggi, 99, Cielo,
    CI&T, Hotel Urbano e Globo Esporte,
    durante mais de 9 anos de carreira
    como especialista em Android.
    Créditos: Google Play

    View full-size slide

  5. Nesse ano fundei a Kusudama,
    um estúdio de desenvolvimento e
    design de produtos digitais para
    Android e iOS, que tem como seu
    objetivo criar experiências que
    tratem seus usuários com respeito
    dentro do universo mobile.

    View full-size slide

  6. Recentemente me juntei ao
    grande time da idwall como
    Mobile Technical Leader, com o
    objetivo de criar a próxima
    plataforma de identidade digital
    brasileira no mobile, além de
    soluções para empresas que
    buscam aumentar a confiança na
    identificação dos seus usuários.

    View full-size slide

  7. Do commit até as lojas…
    Como costuma ser esse caminho?

    View full-size slide

  8. O desenvolvimento mobile vem crescendo e amadurecendo
    cada vez mais a cada ano que passa, o que é ótimo para a
    área, para os profissionais e para o mercado em geral! ❤

    View full-size slide

  9. Stack Overflow Survey 2019
    De acordo com a pesquisa, 18% das
    pessoas vem trabalhando com
    desenvolvimento para mobile, o que é
    um número bem expressivo! ❤
    insights.stackoverflow.com/survey/2019
    Créditos: Stack Overflow

    View full-size slide

  10. E, naturalmente, com o passar do tempo e o aumento do
    engajamento na área, o mobile vem crescendo bastante e
    adotando novas técnicas, ferramentas, frameworks e
    boas práticas, numa velocidade que acompanha a
    evolução dos desafios que estamos encontrando! ✨

    View full-size slide

  11. Mas… como será que as grandes empresas fazem mobile hoje?
    Será que estamos seguindo uma tendência parecida nos
    nossos próprios projetos?

    View full-size slide

  12. Quais práticas interessantes podemos explorar
    para evoluir as nossas rotina de desenvolvimento,
    testes e releases em geral?

    View full-size slide

  13. Em geral, gosto de dividir a rotina de uma pessoa
    profissional mobile dentro de um projeto de aplicação
    em três etapas mais macro:

    View full-size slide



  14. Desenvolvimento
    & Qualidade
    Integração &
    Deploy Contínuo
    Melhoria &
    Evolução Pós Produção

    View full-size slide

  15. Em linhas gerais, penso que o mercado já faz uso de ótimas
    técnicas, frameworks e boas práticas de desenvolvimento e
    deploy em geral, o que é ótimo! ❤

    View full-size slide


  16. Algumas boas práticas que vejo com mais
    frequência atualmente:
    - gitflow e githooks
    - Code Reviews
    - Pair Programming
    - CI / CD as a service (Bitrise, Circle CI, etc)
    - Análises estáticas de código
    - Linters (ktlint, SwiftLint, etc)
    - Feature flags (Firebase Remote Config, etc)

    View full-size slide

  17. Mas já não tá ótimo, Walmyr?
    O que dá pra fazer de diferente?

    View full-size slide

  18. Novos build systems
    Hoje é possível fazer uso de build
    systems diferentes para Android e iOS,
    com o objetivo de aumentar a
    praticidade, caching e performance das
    suas builds em geral! ✅
    Créditos: xkcd.com/303

    View full-size slide

  19. Buck (Facebook)
    Sistema de builds agnóstico de plataforma
    e linguagens, criado e utilizado pelo
    Facebook nas suas aplicações,
    especialmente no mobile.
    Recomendada para projetos com um
    crescimento rápido e alto!
    buck.build
    Créditos: Facebook

    View full-size slide

  20. Bazel
    Outra opção de ferramenta de builds
    agnóstica de plataforma e linguagens,
    utilizada em produção por grandes
    empresas como Google, PayPal e Dropbox!
    bazel.build
    Créditos: Bazel

    View full-size slide

  21. Créditos: Artem Zinnatullin (Twitter)

    View full-size slide

  22. Nokee
    Uma opção mais nova que faz uma ponte
    do Gradle para uma variedade maior de
    plataformas!
    Hoje já é possível utilizar Gradle para fazer
    builds de projetos iOS!
    nokee.dev
    Créditos: Nokee

    View full-size slide

  23. Créditos: Nokee

    View full-size slide

  24. Legal! O que mais dá pra fazer de diferente
    nos meus projetos mobile?

    View full-size slide

  25. Automação de code reviews
    Hoje é possível fazer uso de ferramentas
    para automatizar code reviews, através
    de integrações de mecanismos de
    mensageria com linters! ✅
    Créditos: Focus Shift

    View full-size slide

  26. Danger ⚠
    O Danger é um mecanismo de mensageria que tem
    como objetivo automatizar checagens comuns
    dentro de um code review, otimizando o tempo
    gasto com reviews mais rasos de código!
    O Danger suporta a maioria dos VCSs e linters
    comuns no mercado, além de ter versões em
    Kotlin, Javascript, Python e Swift! ✅
    danger.systems
    Créditos: Danger

    View full-size slide

  27. # Messages
    message("You have added 3 more gems to the app.")
    # Warnings
    warn("You have not included a CHANGELOG entry.")
    # Errors
    fail("Please add tests to your PR.")

    View full-size slide

  28. Code reviews automatizados no Android
    utilizando Danger e ktlint ✅
    O Joe Birch, GDE de Android e Kotlin e Tech Lead
    de Android no Buffer, postou um artigo bem
    explicativo no blog do Bitrise explicando como
    integrar o Danger com o ktlint para code reviews
    automatizados para checagens de sintaxe e regras
    de Android em geral!
    tiny.cc/bitrise-post-joe-birch
    Créditos: Joe Birch e Bitrise

    View full-size slide

  29. Créditos: Joe Birch e Bitrise

    View full-size slide

  30. Trunk based
    Alguns times e empresas vem experimentado o
    desenvolvimento trunk based ao invés do gitflow
    como rotina de trabalho com git dentro dos
    projetos.
    A ideia geral do trunk based é fazer merges direto
    em master, sempre que possível.
    O padrão trunk based não é novo e trás uma série
    de benefícios, como a redução de conflitos de
    merge/rebase e melhorias nas rotinas de CI/CD!
    Créditos: Giphy

    View full-size slide

  31. Trunk-based development vs Git Flow
    Esse artigo do Konrad Gadzinowski no blog da
    Toptal fala um pouco sobre as vantagens e
    desvantagens do trunk based em comparação
    com o gitflow!
    tiny.cc/toptal-gitflow-vs-trunk
    Créditos: Konrad Gadzinowski (Toptal)

    View full-size slide

  32. Créditos: Konrad Gadzinowski (Toptal)

    View full-size slide

  33. Daora! O que mais dá para fazer?

    View full-size slide

  34. Server side rendered UI
    Muitas empresas já exploram
    mecanismos de loading dinâmico de UIs
    no mobile (tipo internet)!
    Parece bobagem, mas é um desafio
    levemente complicado no mobile nativo,
    mas que hoje já uma realidade!
    Créditos: Giphy

    View full-size slide

  35. Créditos: John Sundell (Twitter)

    View full-size slide

  36. Features dinâmicas
    Além das feature flags para habilitar e
    desabilitar features em produção sem a
    necessidade de um novo release, já é
    possível fazer o uso de recursos que
    habilitam features dinamicamente em
    um projeto mobile! ⚡
    Créditos: Giphy

    View full-size slide

  37. Créditos: Dynamic Delivery (Android Developers)

    View full-size slide

  38. Resumindo…
    O que aprendemos hoje?

    View full-size slide

  39. ✅ É possível fazer integrações rápidas de código sem muito risco!
    ✅ Já é possível desacoplar totalmente release de features do release do app!
    ✅ Já é possível fazer mudanças de UI remotamente de maneira mais simples
    ✅ Sempre meça tudo que puder para você ter argumentos para evoluir!

    View full-size slide

  40. Importante lembrar: algumas dessas práticas não fazem
    sentido para o seu projeto e tá tudo bem! ❤

    View full-size slide

  41. Mais importante do que aplicá-las sempre é saber que
    existem essas possibilidades, o que ajuda num
    planejamento mais interessante para um futuro mais
    escalável, dinâmico e de qualidade para o seu projeto!

    View full-size slide

  42. Perguntas?
    Ficou alguma dúvida?

    View full-size slide

  43. Muito obrigado!
    Se tiver qualquer dúvida ou sugestão,
    pode falar comigo. ❤
    @walmyrcarvalho
    /walmyrcarvalho
    [email protected]

    View full-size slide