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

Android Training Program - Portugal, Aula 8

ATP Portugal
December 03, 2020

Android Training Program - Portugal, Aula 8

Aula #8 Firebase 🔥 (cont.)

Continuação da aula anterior

- Cloud Storage
- Crashlytics
- Performance
- Push notifications
- Analytics

ATP Portugal

December 03, 2020
Tweet

More Decks by ATP Portugal

Other Decks in Education

Transcript

  1. • Sejam excelentes uns para os outros • Fale mais

    alto se vir ou ouvir alguma coisa • O assédio não é tolerado • Pratique "Sim e" um ao outro Código de conduta Mais informações: http://bit.ly/2IhF0l3
  2. Andres-Leonardo Martinez-Ortiz Google Carlos Mota Formador Renato Almeida Formador @davilagrau

    @cafonsomota @tallnato Equipa Daniela Ferreira Gestora de comunidades
  3. • 12 aulas • 1h30 cada aula • ~1 aula

    por semana • 14 Outubro a 16 Dezembro • YouTube live • Suporte assíncrono contínuo via Discord/email • Todo o código disponível no GitHub Photo by Arif Riyanto on Unspla O programa
  4. #0 14 de Outubro Pronto para começar #1 21 de

    Outubro Bem-vindos ao Android #2 28 de Outubro Fundações I #3 04 de Novembro Fundações II #4 11 de Novembro Fundações III #5 18 de Novembro Listas, listas e mais listas #6 25 de Novembro Jetpack, Jetpack, Jetpack! #7 - #8 02 - 03 de Dezembro Firebase #9 - #10 09 - 10 de Dezembro MLKit & TensorFlow #11 16 de Dezembro Resumo Semana Semana Calendário ✅ ✅ ✅ ✅ Direto ✅ ✅ ✅
  5. Sumário Photo by Mika Baumeister on Unsplash • Resumo da

    aula anterior • Cloud Storage • Crashlytics • Performance • Push notifications • Analytics • Kotlin para principiantes • É Natal
  6. Constrói melhores aplicações Cloud Firestore Armazena e sincroniza dados a

    uma escala global Firebase ML Machine learning para programadores Cloud Functions Corre código de servidor sem gerir servidores Authentication Autentica utilizadores de forma simples e segura Hosting Distribui recursos web rapidamente e com segurança Cloud Storage Armazena e distribui ficheiros à escala da Google Realtime Database Armazena e sincroniza dados da aplicação em segundos
  7. Melhora a qualidade da aplicação Crashlytics Prioritiza e resolve problemas

    com relatórios poderosos e em tempo real Performance Monitoring Obtém informações sobre o desempenho da aplicação Test Lab Testa a tua aplicação em dispositivos alojados pela Google App Distribution Distribuí versões de pré-lançamento da aplicação a utilizadores específicos
  8. Cresce o teu negócio In-App Messaging Envolve os utilizadores activos

    com mensagens contextuais Google Analytics Obtém métricas gratuitas e ilimitadas Predictions Segmentação inteligente de utilizadores baseada no comportamento previsto A/B Testing Optimiza a experiência da aplicação através de experimentação Cloud Messaging Envia mensagens e notificações direcionadas Remote Config Modifica a tua aplicação sem lançar uma nova versão Dynamic Links Impulsiona o crescimento utilizado links directos
  9. FirebaseUI Authentication • Suporta: ◦ E-mail e palavra-chave ◦ Integração

    com Google, Apple, Facebook, Twitter e GitHub ◦ Autenticação via o número de telemóvel (SMS) ◦ Integração com sistemas de autenticação externos ◦ Autenticação anónima Diferentes formas de te autenticares
  10. FirebaseUI Authentication • Solução completa de UI ◦ É a

    forma recomendada para implementares o teu ecrã de login • Não precisas de te preocupar com nada ◦ Todos os fluxos de autenticação já se encontram implementados ◦ Só precisas de implementar a ação de clique no botão
  11. Realtime database Cloud Firestore Atualizações em tempo real ✅ ✅

    Suporte offline ✅ ✅ Presença ✅ ❌ Modelo de dados JSON Collections Pesquisa Limitada Permite filtros mais avançados Performance Regional Mundial Escalabilidade <200.000 ligações simultâneas Automática
  12. • O Cloud storage é um serviço de armazenamento poderoso,

    simples e barato desenvolvido para a escala da Google • Os SDK’s disponíveis adicionam a segurança da Google para as transferências dos ficheiros • É possível armazenar imagens, áudios, vídeos ou outros tipos de conteúdos Cloud Storage
  13. • Ativar o Storage na plataforma • Escolher a localização

    do bucket. ◦ Devemos escolher sempre a localização mais próxima dos nossos utilizadores. Antes de começar
  14. // Aponta para a referência raiz storageRef = storage.reference //

    Aponta para a pasta "images" imagesRef = storageRef.child("images") // Aponta para o ficheiro "images/space.jpg" val fileName = "space.jpg" spaceRef = imagesRef.child(fileName) // O caminho é "images/space.jpg" val path = spaceRef.path // O nome do ficheiro é "space.jpg" val name = spaceRef.name // Aponta para "images" imagesRef = spaceRef.parent Como utilizar? Utilizar referência
  15. imageRef = storageRef.child("images/image.jpg") val localFile = File.createTempFile("images", "jpg") islandRef.getFile(localFile).addOnSuccessListener {

    // Ficheiro no armazenamento interno criado }.addOnFailureListener { // Caso de erro } Como utilizar? Transferir um ficheiro para o armazenamento interno
  16. var file = Uri.fromFile(File("/storage/emulated/0/Download/fifi.jpg")) val riversRef = storageRef.child("images/${file.lastPathSegment}") uploadTask =

    riversRef.putFile(file) // Registar para ser notificado quando a transferência é terminada, ou ocorre um erro uploadTask.addOnFailureListener { // Quando ocorre um erro }.addOnSuccessListener { taskSnapshot -> // Quando a transferência é terminada com sucesso // taskSnapshot.metadata contém metadados tais como o tamanho, tipo de conteúdo, etc // ... } Como utilizar? Enviar um ficheiro
  17. • Relatórios de falhas completos e em tempo real •

    Permite encontrar rapidamente a causa das falhas • As falhas são priorizadas de forma a permitir identificar o que corrigir primeiro • Alertas em tempo real Crashlytics
  18. apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics' //

    ou plugins { id 'com.android.application' id 'kotlin-android' id 'com.google.gms.google-services' id 'com.google.firebase.crashlytics' } Como utilizar? Importar a biblioteca app/build.gradle
  19. // Set a key to a string. FirebaseCrashlytics.getInstance().setCustomKey("str_key", "hello") //

    Set a key to a boolean. FirebaseCrashlytics.getInstance().setCustomKey("bool_key", true) // Set a key to an int. FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1) // Set a key to an long. FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1L) // Set a key to a float. FirebaseCrashlytics.getInstance().setCustomKey("float_key", 1.0f) // Set a key to a double. FirebaseCrashlytics.getInstance().setCustomKey("double_key", 1.0) E ainda... Chaves custom
  20. • Mede automaticamente o tempo de arranque da aplicação, pedidos

    HTTP à rede, entre outros • Permite observar situações em que a aplicação possa ser mais rápida • Permite customizar os parâmetros a monitorizar da aplicação Performance
  21. apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.firebase-perf' //

    ou plugins { id 'com.android.application' id 'kotlin-android' id 'com.google.gms.google-services' id 'com.google.firebase.firebase-perf' } Como utilizar? Importar a biblioteca app/build.gradle
  22. • Enviar notificações ou mensagens com dados • Permite direcionar

    as notificações para diferentes utilizadores de forma versátil • Permite enviar mensagens através dos clientes Push Notifications
  23. apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' // ou plugins {

    id 'com.android.application' id 'kotlin-android' id 'com.google.gms.google-services' } Como utilizar? Importar a biblioteca app/build.gradle
  24. • Camada sobre Google Analytics • Solução de analytics grátis

    e ilimitada • Permite reportar até 500 eventos distintos • Os relatórios ajudam a perceber o como os utilizadores se comportam, o que permite tomar decisões informadas sobre marketing e otimizações de performance Analytics
  25. Manuel Ernesto Firebase Storage: o que é e como funciona?

    GDG Luanda GDG Lubango @manuelernest0
  26. val max = if (a > b) a else b

    Operador ternário String a = a > b ? a : b
  27. when (val response = httpRequest()) { is Success -> response.body()

    else -> throw Exception(response.status) } when… guardar numa variável
  28. for (i in 1..max) { when (i) { i %

    2 -> break else -> continue } } when… break?... continue?
  29. for (i in 1..max) { when (i) { i %

    2 -> break else -> continue } } when… break?... continue? Apenas no Kotlin 1.4.20!
  30. fun some(arg1: Int, arg2: Int, arg3: Int) { // código

    incrível aqui } some(arg1 = 1, arg2 = 2, arg3 = 3) when… guardar numa variável
  31. fun some(arg1: Int, arg2: Int, arg3: Int) { // código

    incrível aqui } some(1, arg2 = 2, 3) when… guardar numa variável Apenas no Kotlin 1.4.20!
  32. Stetho Biblioteca que permite através das Google Developers Tools do

    Chrome, aceder à base de dados, pedidos de rede, etc, tudo através do browser. https://github.com/facebookarchive/stetho
  33. de

  34. Trabalho para casa • Criar conta no Firebase • Criar

    um projecto • Explorar o Firebase
  35. Trabalho para casa • Criar um chat • Com a

    CameraX, tirar uma foto e enviar para o Storage • Lista com as fotos disponíveis no Storage
  36. Android Training Program PORTUGAL Aula #9 ML Kit: Machine Learning

    para iniciantes Próxima aula: 09 de Dezembro