Android Training Program - Portugal, Aula 11

9e9eb825c69d719f2d3c32bdd3bc971e?s=47 ATP Portugal
December 16, 2020

Android Training Program - Portugal, Aula 11

Aula #11 Resumo 📚

Feito! Durante o curso desenvolveste uma aplicação Android com recurso às últimas bibliotecas e frameworks disponíveis. Vamos fazer um resumo de tudo o que aprendeste e mostrar-te como podes publicar a tua aplicação.

9e9eb825c69d719f2d3c32bdd3bc971e?s=128

ATP Portugal

December 16, 2020
Tweet

Transcript

  1. Android Training Program PORTUGAL Aula #11 Resumo

  2. • 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
  3. Andres-Leonardo Martinez-Ortiz Google Carlos Mota Formador Renato Almeida Formador @davilagrau

    @cafonsomota @tallnato Equipa Daniela Ferreira Gestora de comunidades
  4. • 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
  5. #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 ✅ ✅ ✅ ✅ ✅
  6. Sumário Photo by Mika Baumeister on Unsplash • Resumo do

    programa • Convidados • Notas finais
  7. Photo by Mollie Sivaram on Unsplash

  8. Photo by Mollie Sivaram on Unsplash ‍ ~5000 participantes ~2900

    subscrições no YouTube ~25000 visualizações Obrigado! ‍♀
  9. http://events.withgoogle.com/atp2020 ✉ atp-suporte@googlegroups.com http://bit.ly/atp2020-youtube http://bit.ly/atp2020-discord Links

  10. http://bit.ly/atp2020-live

  11. http://bit.ly/atp2020-codelabs

  12. Resumo do programa

  13. Olá Mundo!

  14. versões Android 11 Android 10 Apple Pie 1.0 Cupcake 1.5

    Donut 1.6 Eclair 2.0/2.1 Froyo 2.2 Gingerbread 2.3.x Honeycomb 3.x Ice Cream Sandwich 4.0 Jelly Bean 4.1-4.3 KitKat 4.4 Lollipop 5.0 Marshmallow 6.0 Nougat 7.0 Oreo 8.0 Pie 9.0 Android 9. 10. 7. 8. 5. 6. 3. 4. 2. 1. 0.
  15. *ícones de flaticon.com Rabanadas 11 Queijadinha 10 Arroz Doce 1.0

    Cornucópia 1.5 Filhoses 2.2 Gargantas de Freira 2.3.x <chef_precisa-se> 3.x <chef_precisa-se> 4.0 Jesuítas 4.1-4.3 Molotoff 6.0 Nata 7.0 Ovos Moles 8.0 Pudim de Abade de Priscos 9.0 Leite Creme 5.0 Doce da Casa 1.6 Escarpiada 2.0/2.1 <chef_precisa-se> 4.4 versões Portuguesas Android 9. 10. 7. 8. 5. 6. 3. 4. 2. 1. 0.
  16. Git 9. 10. 7. 8. 5. 6. 3. 4. 2.

    1. 0.
  17. None
  18. Android Server side Native em todo o lado Kotlin Web

    9. 10. 7. 8. 5. 6. 3. 4. 2. 1. 0.
  19. None
  20. Activity Resources Notification Telephony Camera2 SMSManager InCallService ... (API’s) OpenGL

    ES ... Bibliotecas nativas ART ... Runtime ICameraDevice ... HAL Camera Drivers ... Linux Kernel
  21. 0. 1. 9. 10. 7. 8. 5. 6. 3. 4.

    2.
  22. 1. 2. AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pt.atp.bobi"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name"

    android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Bobi"> ... </application> </manifest> 0. 9. 10. 7. 8. 5. 6. 3. 4.
  23. Ciclo de vida

  24. Fragment 1. 2. 0. 9. 10. 7. 8. 5. 6.

    3. 4.
  25. Intents +351990000001 1. 2. 0. 9. 10. 7. 8. 5.

    6. 3. 4.
  26. Navegação

  27. 2. 3. Layouts +351990000001 1. 0. 9. 10. 7. 8.

    5. 6. 4.
  28. Views +351990000001 2. 3. 1. 0. 9. 10. 7. 8.

    5. 6. 4.
  29. Resolução medium resolution (mdpi) HTC Wildfire S high resolution (hdpi)

    Samsung Galaxy S2 extra extra extra high resolution (xxxhdpi) Pixel 5 2. 3. 1. 0. 9. 10. 7. 8. 5. 6. 4.
  30. +351990000001

  31. 3. 4. LiveData ViewModel Room 2. 1. 0. 9. 10.

    7. 8. 5. 6.
  32. • Service • Threads • IntentService • AsyncTasks • WorkManager

    • JobScheduler • DownloadManager • AlarmManager • Coroutines Operações assíncronas Soluções 3. 4. 2. 1. 0. 9. 10. 7. 8. 5. 6.
  33. atualizar atualizar desenha o ecrã desenha o ecrã desenha o

    ecrã objetivo: 60fps operação pesada atualizar atualizar thread secundária Operações assíncronas thread de UI 3. 4. 2. 1. 0. 9. 10. 7. 8. 5. 6.
  34. Allow Snapchat to access this device’s location? Ao instalar todas

    as permissões requisitadas são dadas Funcionalidades do sistemas precisam de autorização explícita do utilizador As permissões vão sendo cada vez mais restritivas: - Apenas enquanto estamos a utilizar a aplicação - Permitir apenas uma única vez Android ... Android 6.0 … Android 10 Android 11
  35. 4. 5. RecyclerView Activity RecyclerView LayoutManager Adapter ViewHolder data RecyclerView

    LayoutManager Adapter ViewHolder data Adapter ViewHolder data 3. 2. 1. 0. 9. 10. 7. 8. 6.
  36. Dogs’Ogram 4. 5. 3. 2. 1. 0. 9. 10. 7.

    8. 6.
  37. O Retrofit transforma uma API HTTP numa interface 4. 5.

    3. 2. 1. 0. 9. 10. 7. 8. 6.
  38. Glide 4. 5. 3. 2. 1. 0. 9. 10. 7.

    8. 6.
  39. The Dog API 4. 5. 3. 2. 1. 0. 9.

    10. 7. 8. 6.
  40. 5. 6. 4. 3. 2. 1. 0. 9. 10. 7.

    8.
  41. LiveData ViewModel Paging 3 Compose Room Camera X 5. 6.

    4. 3. 2. 1. 0. 9. 10. 7. 8.
  42. Room Room Resto da aplicação Data Access Object Entidades Obter

    os DAOs Obter as entidades da BD Persistir os dados para a BD get / set valores 5. 6. 4. 3. 2. 1. 0. 9. 10. 7. 8.
  43. CameraXβ Sistema de add-ons Consistência em todos os diapositivos Funciona

    com 94% dos Android 5.0+ 5. 6. 4. 3. 2. 1. 0. 9. 10. 7. 8.
  44. CameraXβ Captura Análise de imagem Pré-visualização Casos de uso https://developer.android.com/training/camerax

    5. 6. 4. 3. 2. 1. 0. 9. 10. 7. 8.
  45. @Composable fun Example() { Row { Image( asset = vectorResource(id

    = R.drawable.ic_paw), modifier = Modifier.width(32.dp).height(32.dp) ) Column { Text( text = "Olá mundo! ", style = TextStyle( fontSize = 19.sp, fontWeight = FontWeight.Normal, color = colorResource(id = R.color.white) ), modifier = Modifier.padding(start = 16.dp) ) Text( text = "Bem-vindos ao ATP!", style = TextStyle( fontSize = 19.sp, fontWeight = FontWeight.Normal, color = colorRsource(id = R.color.grey) ), modifier = Modifier.padding(start = 16.dp) ) } } } Como utilizar? Example.kt Compose
  46. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  47. 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 6. 7. 8. 5. 4. 3. 2. 1. 0. 9. 10.
  48. 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 6. 7. 8. 5. 4. 3. 2. 1. 0. 9. 10.
  49. 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 6. 7. 8. 5. 4. 3. 2. 1. 0. 9. 10.
  50. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  51. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  52. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  53. VS 6. 7. 8. 5. 4. 3. 2. 1. 0.

    9. 10.
  54. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  55. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  56. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  57. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  58. 6. 7. 8. 5. 4. 3. 2. 1. 0. 9.

    10.
  59. 7. 8. 9. 6. 5. 4. 3. 2. 1. 0.

    10.
  60. • Pode ser visto como uma forma de ajudar o

    software a realizar uma tarefa sem programar explicitamente ou criar regras • Na programação tradicional, um programador especifica as regras que o computador deve usar • Focado mais em análise de dados do que em programação • São disponibilizados um conjunto de exemplos e o computador aprende a partir destes dados • Podemos ver o machine learning como “programar com dados” Machine learning
  61. • Extrapolar dados • Evitar fraudes • Identificar oportunidades de

    investimento • Auxiliar os investidores a decidir quando negociar • Identificar clientes com perfis de alto risco Banca e finanças Onde é aplicado? Photo by Micheile Henderson https://www.sas.com/en_us/insights/analytics/machine-learning.html
  62. • Através da análise dos dados de wearables e outros

    tipos de sensores, permite avaliar o paciente em tempo real • Identificar tendências ou sinais de alerta de forma a melhorar os diagnósticos e tratamentos • Serve de complemento para os diagnósticos médicos Saúde Onde é aplicado? Photo by Online Marketing
  63. Navegação com uma conta registada

  64. Visão Linguagem natural 7. 8. 9. 6. 5. 4. 3.

    2. 1. 0. 10.
  65. Exemplo • Nariz ◦ (505.149811, 221.201797), (506.987122, 313.285919) • Olho

    esquerdo ◦ (404.642029, 232.854431), (408.527283, 231.366623), (413.565796, 229.427856), (421.378296, 226.967682), (432.598755, 225.434143), (442.953064, 226.089508), (453.899811, 228.594818), (461.516418, 232.650467), (465.069580, 235.600845), (462.170410, 236.316147), (456.233643, 236.891602), (446.363922, 237.966888), (435.698914, 238.149323), (424.320740, 237.235168), (416.037720, 236.012115), (409.983459, 234.870300) • Parte de cima do lábio ◦ (421.662048, 354.520813), (428.103882, 349.694061), (440.847595, 348.048737), (456.549988, 346.295532), (480.526489, 346.089294), (503.375702, 349.470459), (525.624634, 347.352783), (547.371155, 349.091980), (560.082031, 351.693268), (570.226685, 354.210175), (575.305420, 359.257751) Contorno da cara 7. 8. 9. 6. 5. 4. 3. 2. 1. 0. 10.
  66. Exemplo Classificação de imagens Texto Confiança Estádio 0.9205354 Desporto 0.7531109

    Evento 0.66905296 Lazer 0.59904146 Futebol 0.56384534 Rede 0.54679185 Planta 0.524364 7. 8. 9. 6. 5. 4. 3. 2. 1. 0. 10.
  67. Exemplo Deteção de poses 7. 8. 9. 6. 5. 4.

    3. 2. 1. 0. 10.
  68. 9. 10. 7. 8. 6. 5. 4. 3. 2. 1.

    0.
  69. Resumo Como funciona? Treinado Modelo de TensorFlow Convertido (para o

    formato do TensorFlow lite) Android App (Java/C++ API) iOS App (C++ API) Linux (ex. Pi) (Python/Java/C++ API)
  70. https://firebase.google.com/products/ml

  71. • Utilizando um modelo pré-treinado, permite desenhar um retângulo com

    a respectiva descrição de mais de 1000 objetos Deteção de objectos https://github.com/tensorflow/examples/blob/master/lite/examples/object_detection/android/
  72. • Este exemplo deteta continuamente as partes do corpo que

    estão visíveis pela câmera do dispositivo Deteção de pose https://github.com/tensorflow/examples/blob/master/lite/examples/posenet/android/
  73. Transferência de estilo

  74. Convidados

  75. Neto Marin Qualidade e futuro das aplicações Android Developer Advocate

    @Google @netomarim
  76. Nuno Loureiro Pixels Camp forever Head Of Design & Innovation

    at Trojan Horse was a Unicorn @nloureiro
  77. Inês Santos Silva Construir Equipas Diversas e Inclusivas CEO @Aliados

    @isss111
  78. Isabel Costa Como e porquê começar a contribuir para OSS?

    Software Engineer @Globality @isabelcmdcosta
  79. José Rocha Porque é que precisamos de mais programadores? Senior

    Acceleration Expert @beta-i @vvdboy
  80. As nossas secções

  81. Passaporte para a Google

  82. Constrói o teu futuro! https://buildyourfuture.withgoogle.com/ Bolsas Estágios Programas Recursos

  83. VS

  84. Doce ou travessura Photo by Beth Teutschmann on Unsplash

  85. Castanhas quentes e boas! Photo by sare . on Unsplash

  86. Sexta-Feira negra Photo by Xiaolong Wong on Unsplash

  87. Natal Photo by Mel Poole Unsplash

  88. None
  89. pogChamp elpidios NunoP2 Parabéns!

  90. ‍♀

  91. Os nossos parceiros

  92. Os nossos parceiros Obrigado! ‍♀

  93. Aula #0 Edições passadas do ATP Aula #1 Comunidades Aula

    #2 Programas e emprego na Google Aula #3 Inclusão Aula #4 Percurso até à Google Aula #5 Google Summer of Code Aula #6 UX em mobile Aula #7 Firebase KTX Aula #8 Firebase Storage Aula #9 Machine learning Aula #10 Federated learning Aula #11
  94. Aula #0 Edições passadas do ATP Aula #1 Comunidades Aula

    #2 Programas e emprego na Google Aula #3 Inclusão Aula #4 Percurso até à Google Aula #5 Google Summer of Code Aula #6 UX em mobile Aula #7 Firebase KTX Aula #8 Firebase Storage Aula #9 Machine learning Aula #10 Federated learning Aula #11 ‍ ‍ Aula #11 Obrigado! ‍♀
  95. Fifi

  96. Fifi Obrigado! ‍♀

  97. Obrigado ‍♀

  98. Android Training Program PORTUGAL Boas férias!