Pro Yearly is on sale from $80 to $50! »

Android Training Program - Portugal, Aula 1

9e9eb825c69d719f2d3c32bdd3bc971e?s=47 ATP Portugal
October 21, 2020

Android Training Program - Portugal, Aula 1

Aula #1: Bem-vindos ao Android 👋

Vamos a isto!

Durante as próximas semanas vais desenvolver uma aplicação Android utilizando as diferentes funcionalidades que a plataforma te fornece e irás ainda integrar com Firebase e TensorFlow:
- Introdução ao Android
- Diferentes API’s
- Criar uma aplicação
- Estrutura do projeto

9e9eb825c69d719f2d3c32bdd3bc971e?s=128

ATP Portugal

October 21, 2020
Tweet

Transcript

  1. Android Training Program PORTUGAL Aula #1 Bem-vindos ao Android

  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
  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. • Resumo da aula anterior • Plataforma Android • Passaporte

    para o Google • Uma pausa com Android 4.4 • Criar uma aplicação • Kotlin para principiantes • Doce ou travessura Sumário Photo by Mika Baumeister on Unsplash
  7. http://events.withgoogle.com/atp2020 ✉ atp-suporte@googlegroups.com http://bit.ly/atp2020-youtube http://bit.ly/atp2020-discord Links

  8. None
  9. None
  10. Resumo da Aula #0

  11. • Apresentação do programa • A evolução do Android •

    Introdução do Git e GitHub • Introdução ao Kotlin • Cria a tua aplicação Aula #0
  12. *í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
  13. Apple Pie Ice Cream Sandwich KitKat Lollipop Oreo Pie Android

    1.0 Android 4.0 Android 4.4 Android 5.0 Android 8.0 Android 9.0 evoluções da UI Android *adaptado a partir do tweet Luke Wroblewski, https://twitter.com/lukew/status/996461585693540352
  14. Photo by Lucas Miguel on Unsplash

  15. Photo by Brandon Hoogenboom on Unsplash

  16. • Desenvolvimento nativo ◦ Java/ Kotlin ❤ ◦ Bibliotecas nativas

    escritas em C/C++ • Híbrido ◦ PhoneGap, Ionic, etc. • Cross platform ◦ Flutter, React Native, Xamarin, NativeScript, Ionic, Ruby Motion, etc. • Multiplatforma ◦ Kotlin (toda a lógica é partilhada por diferentes plataformas, e a UI desenvolvida nativamente) Android
  17. null safety Kotlin

  18. https://github.com/android-training-program

  19. None
  20. Discord

  21. None
  22. Plataforma Android

  23. Arquitetura

  24. Arquitetura

  25. Arquitetura vai sair no teste!

  26. Imagina que queres tirar uma foto com o teu telemóvel.

  27. Photo by Fidel Fernando on Unsplash

  28. Camera Mensagens Telefone ... (aplicações de sistema)

  29. Photo by Moritz Mentges on Unsplash

  30. Camera2 SMSManager InCallService ... (API’s) Camera Mensagens Telefone ... (aplicações

    de sistema)
  31. Activity Resources Notification Telephony Camera2 SMSManager InCallService ... (API’s) Camera

    Mensagens Telefone ... (aplicações de sistema)
  32. Activity Resources Notification Telephony Camera2 SMSManager InCallService ... (API’s)

  33. Activity Resources Notification Telephony Camera2 SMSManager InCallService ... (API’s) OpenGL

    ES ... Bibliotecas nativas
  34. Activity Resources Notification Telephony Camera2 SMSManager InCallService ... (API’s) OpenGL

    ES ... Bibliotecas nativas ART ... Runtime
  35. Activity Resources Notification Telephony Camera2 SMSManager InCallService ... (API’s) OpenGL

    ES ... Bibliotecas nativas ART ... Runtime ICameraDevice ... HAL
  36. Activity Resources Notification Telephony Camera2 SMSManager InCallService ... (API’s) OpenGL

    ES ... Bibliotecas nativas ART ... Runtime ICameraDevice ... HAL Camera Drivers ... Linux Kernel
  37. Passaporte para o Google

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

  39. Bolsas https://buildyourfuture.withgoogle.com/ • Google Europe Students with Disabilities Scholarship Termina

    em: 04 de Dezembro Valor: 7000€ • Generation Google Scholarship Termina em: 04 de Dezembro Valor: 7000€ • Google Conference and Travel Scholarships Termina em: 01 de Agosto de 2021
  40. Programas https://buildyourfuture.withgoogle.com/ Google Summer of Code Google Code-in Google Hash

    Code Google CTF
  41. https://buildyourfuture.withgoogle.com/

  42. Uma pausa com Não saiam dos vossos lugares Android 4.4

  43. Criar uma aplicação

  44. O que vais precisar android studio

  45. https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

  46. https://github.com/join?source=login

  47. None
  48. None
  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. https://www.toptal.com/developers/gitignore

  57. None
  58. None
  59. None
  60. None
  61. None
  62. None
  63. None
  64. Kotlin para principiantes ‍♀

  65. A linguagem que vamos utilizar durante todo o curso vai

    ser Kotlin. - ATP 2020
  66. Notas • O curso vai ser leccionado utilizando Kotlin •

    Kotlin é a linguagem oficial de programação para Android desde 2019 ◦ Todas as aplicações/bibliotecas desenvolvidas nativamente são em Kotlin • A versão de Java que temos atualmente no Android é a 8 ◦ A última versão que foi lançada é a 15 • Não há qualquer problema na utilização de Java ◦ ambas as linguagens são interoperáveis (comunicam entre si) ◦ mas uma vez que Kotlin é a linguagem oficial, é esta que vamos utilizar durante o curso
  67. Kotlin • Consegues fazer o mesmo, escrevendo menos código •

    Mais erros apanhados antes de compilares o teu código ◦ O próprio Android Studio (IDE) avisa-te de possíveis problemas que o teu código possa dar • Inúmeras funcionalidades disponíveis na linguagem • Várias ferramentas que te permitem lidar melhor com concorrência • Integração com bibliotecas desenvolvidas em Kotlin mais fácil e directa ◦ Paging3, Room, Compose, etc.
  68. VS

  69. VS Ronda 1

  70. for (int i = 0; i <= 100; i++) {

    System.out.println(i); } for (i in 0..100) { println(i) } Ciclos for 0 1 2 3 4 5 ... 100
  71. for (Object item : list) { // Do something with

    this item } for(item in list) { // Do something with this item } Ciclos for
  72. list.forEach { item -> // Do something with this item

    } for (Object item : list) { // Do something with this item } Ciclos for
  73. for (i in list.indices) { val item = list[i] //

    Do something with item } for (int i = 0; i < list.size(); i++) { Object item = list.get(i); // Do something with item } Ciclos for
  74. class Dog(val name: String) public class Dog { private final

    String name; public Dog(String name) { this.name = name; } public String getName() { return name; } ... } Propriedades
  75. Dog dog = new Dog("Bobi"); Log.d("O meu cão é o

    " + dog.getName()); public class Dog { private final String name; public Dog(String name) { this.name = name; } public String getName() { return name; } ... } Propriedades
  76. val dog = Dog("Bobi") Log.d("O meu cão é o "

    + dog.name) Propriedades class Dog(val name: String)
  77. val dog = Dog("Bobi") Log.d("O meu cão é o ${dog.name}")

    Propriedades class Dog(val name: String)
  78. class Dog implements Animal {} class Dog : Animal {}

    Interfaces
  79. class Dog extends Animal() {} class Dog : Animal() {}

    Herança
  80. public String getName() { return "Olá Java"; } fun getName():

    String { return "Olá Kotlin" } Métodos
  81. public String getName() { return "Olá Java"; } fun getName():

    String = "Olá Kotlin" Métodos
  82. public String getName() { return "Olá Java"; } fun getName()

    = "Olá Kotlin" Métodos
  83. descobre as diferenças...

  84. Dog bobi = new Dog("Bobi"); Dog lacy = new Dog("Lacy");

    Log.d("O meu cão é o "+ bobi.getName()); List<Dog> dogs = new ArrayList<Dog>(); dogs.add(bobi); dogs.add(lacy); val bobi = Dog("Bobi") val lacy = Dog("Lacy") Log.d("O meu cão é o " + bobi.name) val dogs = ArrayList<Dog>() dogs.add(bobi) dogs.add(lacy)
  85. Converter de Java para Kotlin ♻

  86. None
  87. Double Bang ‼

  88. class Kennel { var dog: Dog? = something() fun test()

    { dog.move() } } !!
  89. class Kennel { var dog: Dog? = something() fun test()

    { dog!!.move() } } !!
  90. class Kennel { var dog: Dog? = something() fun test()

    { dog!!.move() } } !!
  91. class Kennel { var dog: Dog? = something() fun test()

    { dog?.move() } } !!
  92. class Kennel { var dog: Dog? = something() fun test()

    { dog?.move() } } !!
  93. Scratch file

  94. Rascunho

  95. None
  96. TODO()

  97. when(legs) { } TODO() 0 -> println("É melhor usar um

    ") in 1..3 -> println("Mete ") 4 -> println("✅") else -> ...
  98. when(legs) { 0 -> println("É melhor usar um ") in

    1..3 -> println("Mete ") 4 -> println("✅") else -> ... } TODO()
  99. when(legs) { 0 -> println("É melhor usar um ") in

    1..3 -> println("Mete ") 4 -> println("✅") else -> TODO() } TODO()
  100. when(legs) { 0 -> println("É melhor usar um ") in

    1..3 -> println("Mete ") 4 -> println("✅") else -> TODO("Implementar isto") } TODO() ⚠ kotlin.NotImplementedError: Implementar isto ⚠
  101. None
  102. Doce ou travessura

  103. None
  104. None
  105. adb tcpip 5555 Debug via Wi-Fi 1. Liga o telemóvel

    ao computador 2. Introduz no terminal o comando: 3. Desliga o telemóvel do computador 4. Vai a: Definições > Sobre o telemóvel > Endereço IP 5. Com esse endereço executa o seguinte comando: adb connect <endereço_ip> 6. Feito.
  106. TPC ‍‍

  107. Trabalho Para Casa ‍‍

  108. Trabalho para casa • Criar um novo projecto • Adicioná-lo

    ao Github • Línguas: e • Alterar as cores • Adicionar um novo icon • Explorar os diferentes componentes
  109. Trabalho para casa • Criar um novo projecto • Adicioná-lo

    ao Github • Línguas: e • Alterar as cores • Adicionar um novo icon • Explorar os diferentes componentes
  110. Trabalho para casa

  111. Dúvidas?

  112. Obrigado ‍♀

  113. Android Training Program PORTUGAL Aula #2 Fundações I Próxima aula:

    28 de Outubro