Share
Embed
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
Transcript
86 slides
-
• 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 -
Andres-Leonardo Martinez-Ortiz Google Carlos Mota Formador Renato Almeida Formador @davilagrau
@cafonsomota @tallnato Equipa Daniela Ferreira Gestora de comunidades -
• 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 -
#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 ✅ ✅ ✅ -
Sumário Photo by Mika Baumeister on Unsplash • Resumo da
aula anterior • Cloud Storage • Crashlytics • Performance • Push notifications • Analytics • Kotlin para principiantes • É Natal -
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 -
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 -
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 -
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 -
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 -
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 -
• 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 -
• 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 -
// 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 -
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 -
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 -
• 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 -
buildscript { dependencies { classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1' } } Como utilizar?
Importar a biblioteca build.gradle -
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 -
try { methodThatThrows() } catch (e: Exception) { FirebaseCrashlytics.getInstance().recordException(e) //
... tratar da excepção } E ainda... Reportar um erro -
// 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 -
• 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 -
buildscript { dependencies { classpath 'com.google.firebase:perf-plugin:1.3.4' } } Como utilizar?
Importar a biblioteca build.gradle -
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 -
• 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 -
buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.4' } } Como utilizar?
Importar a biblioteca build.gradle -
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 -
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_stat_ic_notification" /> <meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/colorAccent" /> Como utilizar?
Personalizar a notificação AndroidManifest.xml -
• 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 -
Manuel Ernesto Firebase Storage: o que é e como funciona?
GDG Luanda GDG Lubango @manuelernest0 -
val max = if (a > b) a else b
Operador ternário String a = a > b ? a : b -
when (val response = httpRequest()) { is Success -> response.body()
else -> throw Exception(response.status) } when… guardar numa variável -
for (i in 1..max) { when (i) { i %
2 -> break else -> continue } } when… break?... continue? -
for (i in 1..max) { when (i) { i %
2 -> break else -> continue } } when… break?... continue? Apenas no Kotlin 1.4.20! -
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 -
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! -
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 -
Trabalho para casa • Criar conta no Firebase • Criar
um projecto • Explorar o Firebase -
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 -
Android Training Program PORTUGAL Aula #9 ML Kit: Machine Learning
para iniciantes Próxima aula: 09 de Dezembro