From 3ac074646fd768903139aa9c20f8599ecccba328 Mon Sep 17 00:00:00 2001 From: Rodrigo Ferreira Date: Mon, 30 Sep 2024 17:07:56 -0300 Subject: [PATCH] =?UTF-8?q?Conte=C3=BAdo=20do=20segundo=20ano=20ADS=20-=20?= =?UTF-8?q?FIAP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/logo.png | Bin 0 -> 143660 bytes fase01/capitulo01.md | 53 + fase01/capitulo02.md | 233 + fase01/capitulo03.md | 141 + fase01/images/arquitetura-mvvm.png | Bin 0 -> 81726 bytes fase01/images/calc-imc-estrutura.png | Bin 0 -> 242340 bytes fase01/images/calc-imc-layout.png | Bin 0 -> 127012 bytes .../estrutura-hierarquica-aplicacao.png | Bin 0 -> 158053 bytes fase01/images/estrutura-iu-primeiro-app.png | Bin 0 -> 160243 bytes fase01/images/fluxo-navegacao.png | Bin 0 -> 167062 bytes fase01/images/fluxo-startup-one.png | Bin 0 -> 68617 bytes fase01/images/habilidades-seculo-xxi.png | Bin 0 -> 43565 bytes fase01/trilha-android/capitulo10a.md | 432 + fase01/trilha-android/capitulo11a.md | 841 ++ fase01/trilha-android/capitulo12a.md | 822 ++ fase01/trilha-android/capitulo13a.md | 451 + fase01/trilha-android/capitulo2a.md | 1592 +++ fase01/trilha-android/capitulo3a.md | 81 + fase01/trilha-android/capitulo4a.md | 638 + fase01/trilha-android/capitulo5a.md | 528 + fase01/trilha-android/capitulo6a.md | 1149 ++ fase01/trilha-android/capitulo7a.md | 619 + fase01/trilha-android/capitulo8a.md | 986 ++ fase01/trilha-android/capitulo9a.md | 1213 ++ .../projects/Animacao/.gitignore | 15 + .../projects/Animacao/.idea/.gitignore | 3 + .../projects/Animacao/.idea/compiler.xml | 6 + .../projects/Animacao/.idea/gradle.xml | 18 + .../projects/Animacao/.idea/kotlinc.xml | 6 + .../projects/Animacao/.idea/misc.xml | 10 + .../projects/Animacao/app/.gitignore | 1 + .../projects/Animacao/app/build.gradle | 67 + .../projects/Animacao/app/proguard-rules.pro | 21 + .../fiap/animacao/ExampleInstrumentedTest.kt | 24 + .../Animacao/app/src/main/AndroidManifest.xml | 28 + .../java/br/com/fiap/animacao/MainActivity.kt | 138 + .../br/com/fiap/animacao/ui/theme/Color.kt | 11 + .../br/com/fiap/animacao/ui/theme/Theme.kt | 70 + .../br/com/fiap/animacao/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../br/com/fiap/animacao/ExampleUnitTest.kt | 17 + .../projects/Animacao/build.gradle | 6 + .../projects/Animacao/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../trilha-android/projects/Animacao/gradlew | 185 + .../projects/Animacao/gradlew.bat | 89 + .../projects/Animacao/settings.gradle | 16 + .../projects/AudioPlayer/.gitignore | 15 + .../projects/AudioPlayer/.idea/.gitignore | 3 + .../projects/AudioPlayer/.idea/.name | 1 + .../projects/AudioPlayer/.idea/compiler.xml | 6 + .../projects/AudioPlayer/.idea/gradle.xml | 18 + .../projects/AudioPlayer/.idea/kotlinc.xml | 6 + .../projects/AudioPlayer/.idea/misc.xml | 10 + .../projects/AudioPlayer/app/.gitignore | 1 + .../projects/AudioPlayer/app/build.gradle | 67 + .../AudioPlayer/app/proguard-rules.pro | 21 + .../audioplayer/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 28 + .../br/com/fiap/audioplayer/MainActivity.kt | 82 + .../br/com/fiap/audioplayer/ui/theme/Color.kt | 11 + .../br/com/fiap/audioplayer/ui/theme/Theme.kt | 70 + .../br/com/fiap/audioplayer/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/drawable/pause.png | Bin 0 -> 10406 bytes .../app/src/main/res/drawable/play.png | Bin 0 -> 10466 bytes .../app/src/main/res/drawable/stop.png | Bin 0 -> 11196 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/raw/lofi.mpeg | Bin 0 -> 5460217 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/fiap/audioplayer/ExampleUnitTest.kt | 17 + .../projects/AudioPlayer/build.gradle | 6 + .../projects/AudioPlayer/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/AudioPlayer/gradlew | 185 + .../projects/AudioPlayer/gradlew.bat | 89 + .../projects/AudioPlayer/settings.gradle | 16 + .../projects/BasicComponents/.gitignore | 15 + .../projects/BasicComponents/.idea/.gitignore | 3 + .../BasicComponents/.idea/compiler.xml | 6 + .../.idea/deploymentTargetDropDown.xml | 17 + .../projects/BasicComponents/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 41 + .../projects/BasicComponents/.idea/misc.xml | 10 + .../projects/BasicComponents/app/.gitignore | 1 + .../projects/BasicComponents/app/build.gradle | 63 + .../BasicComponents/app/proguard-rules.pro | 21 + .../ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 27 + .../com/fiap/basiccomponents/MainActivity.kt | 282 + .../fiap/basiccomponents/ui/theme/Color.kt | 8 + .../fiap/basiccomponents/ui/theme/Shape.kt | 11 + .../fiap/basiccomponents/ui/theme/Theme.kt | 47 + .../com/fiap/basiccomponents/ui/theme/Type.kt | 39 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../src/main/res/font/righteous_regular.ttf | Bin 0 -> 40892 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-anydpi-v33/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 7 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../fiap/basiccomponents/ExampleUnitTest.kt | 17 + .../projects/BasicComponents/build.gradle | 10 + .../BasicComponents/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/BasicComponents/gradlew | 185 + .../projects/BasicComponents/gradlew.bat | 89 + .../projects/BasicComponents/settings.gradle | 16 + .../trilha-android/projects/BoxApp/.gitignore | 15 + .../projects/BoxApp/.idea/.gitignore | 3 + .../projects/BoxApp/.idea/compiler.xml | 6 + .../projects/BoxApp/.idea/gradle.xml | 18 + .../projects/BoxApp/.idea/misc.xml | 10 + .../projects/BoxApp/app/.gitignore | 1 + .../projects/BoxApp/app/build.gradle | 63 + .../projects/BoxApp/app/proguard-rules.pro | 21 + .../fiap/boxapp/ExampleInstrumentedTest.kt | 24 + .../BoxApp/app/src/main/AndroidManifest.xml | 27 + .../java/br/com/fiap/boxapp/MainActivity.kt | 67 + .../java/br/com/fiap/boxapp/ui/theme/Color.kt | 8 + .../java/br/com/fiap/boxapp/ui/theme/Shape.kt | 11 + .../java/br/com/fiap/boxapp/ui/theme/Theme.kt | 44 + .../java/br/com/fiap/boxapp/ui/theme/Type.kt | 28 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-anydpi-v33/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../BoxApp/app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../BoxApp/app/src/main/res/values/themes.xml | 7 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../br/com/fiap/boxapp/ExampleUnitTest.kt | 17 + .../projects/BoxApp/build.gradle | 10 + .../projects/BoxApp/gradle.properties | 23 + .../BoxApp/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + fase01/trilha-android/projects/BoxApp/gradlew | 185 + .../projects/BoxApp/gradlew.bat | 89 + .../projects/BoxApp/settings.gradle | 16 + .../projects/CalculodeJuros/.gitignore | 15 + .../projects/CalculodeJuros/.idea/.gitignore | 3 + .../projects/CalculodeJuros/.idea/.name | 1 + .../CalculodeJuros/.idea/compiler.xml | 6 + .../projects/CalculodeJuros/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 32 + .../projects/CalculodeJuros/.idea/kotlinc.xml | 6 + .../projects/CalculodeJuros/.idea/misc.xml | 10 + .../projects/CalculodeJuros/app/.gitignore | 1 + .../projects/CalculodeJuros/app/build.gradle | 70 + .../CalculodeJuros/app/proguard-rules.pro | 21 + .../calculodejuros/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 28 + .../com/fiap/calculodejuros/MainActivity.kt | 29 + .../calculodejuros/calculos/CalcularJuros.kt | 9 + .../components/CaixaDeEntrada.kt | 40 + .../components/CardResultado.kt | 73 + .../fiap/calculodejuros/juros/JurosScreen.kt | 237 + .../juros/JurosScreenViewModel.kt | 52 + .../com/fiap/calculodejuros/ui/theme/Color.kt | 11 + .../com/fiap/calculodejuros/ui/theme/Theme.kt | 70 + .../com/fiap/calculodejuros/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../fiap/calculodejuros/ExampleUnitTest.kt | 17 + .../projects/CalculodeJuros/build.gradle | 6 + .../projects/CalculodeJuros/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/CalculodeJuros/gradlew | 185 + .../projects/CalculodeJuros/gradlew.bat | 89 + .../projects/CalculodeJuros/settings.gradle | 16 + .../projects/ColumnRow/.gitignore | 15 + .../projects/ColumnRow/.idea/.gitignore | 3 + .../projects/ColumnRow/.idea/.name | 1 + .../projects/ColumnRow/.idea/compiler.xml | 6 + .../.idea/deploymentTargetDropDown.xml | 17 + .../projects/ColumnRow/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 41 + .../projects/ColumnRow/.idea/misc.xml | 10 + .../projects/ColumnRow/app/.gitignore | 1 + .../projects/ColumnRow/app/build.gradle | 63 + .../projects/ColumnRow/app/proguard-rules.pro | 21 + .../fiap/columnrow/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 27 + .../br/com/fiap/columnrow/MainActivity.kt | 104 + .../br/com/fiap/columnrow/ui/theme/Color.kt | 8 + .../br/com/fiap/columnrow/ui/theme/Shape.kt | 11 + .../br/com/fiap/columnrow/ui/theme/Theme.kt | 44 + .../br/com/fiap/columnrow/ui/theme/Type.kt | 28 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-anydpi-v33/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 7 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../br/com/fiap/columnrow/ExampleUnitTest.kt | 17 + .../projects/ColumnRow/build.gradle | 10 + .../projects/ColumnRow/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../trilha-android/projects/ColumnRow/gradlew | 185 + .../projects/ColumnRow/gradlew.bat | 89 + .../projects/ColumnRow/settings.gradle | 16 + .../projects/ConsultaCEP/.gitignore | 15 + .../projects/ConsultaCEP/.idea/.gitignore | 3 + .../projects/ConsultaCEP/.idea/.name | 1 + .../projects/ConsultaCEP/.idea/compiler.xml | 6 + .../projects/ConsultaCEP/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 41 + .../projects/ConsultaCEP/.idea/kotlinc.xml | 6 + .../projects/ConsultaCEP/.idea/misc.xml | 10 + .../projects/ConsultaCEP/app/.gitignore | 1 + .../projects/ConsultaCEP/app/build.gradle | 72 + .../ConsultaCEP/app/proguard-rules.pro | 21 + .../consultacep/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 30 + .../br/com/fiap/consultacep/MainActivity.kt | 225 + .../java/br/com/fiap/consultacep/model/Cep.kt | 11 + .../fiap/consultacep/service/CepService.kt | 23 + .../consultacep/service/RetrofitFactory.kt | 20 + .../br/com/fiap/consultacep/ui/theme/Color.kt | 11 + .../br/com/fiap/consultacep/ui/theme/Theme.kt | 70 + .../br/com/fiap/consultacep/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/fiap/consultacep/ExampleUnitTest.kt | 17 + .../projects/ConsultaCEP/build.gradle | 6 + .../projects/ConsultaCEP/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/ConsultaCEP/gradlew | 185 + .../projects/ConsultaCEP/gradlew.bat | 89 + .../projects/ConsultaCEP/settings.gradle | 16 + .../projects/HelloWorld/.gitignore | 15 + .../projects/HelloWorld/.idea/.gitignore | 3 + .../projects/HelloWorld/.idea/.name | 1 + .../HelloWorld/.idea/codeStyles/Project.xml | 123 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + .../projects/HelloWorld/.idea/compiler.xml | 6 + .../projects/HelloWorld/.idea/gradle.xml | 19 + .../projects/HelloWorld/.idea/misc.xml | 10 + .../projects/HelloWorld/app/.gitignore | 1 + .../projects/HelloWorld/app/build.gradle | 44 + .../HelloWorld/app/proguard-rules.pro | 21 + .../helloworld/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 25 + .../br/com/fiap/helloworld/MainActivity.kt | 11 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 18 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-anydpi-v33/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../br/com/fiap/helloworld/ExampleUnitTest.kt | 17 + .../projects/HelloWorld/build.gradle | 6 + .../projects/HelloWorld/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/HelloWorld/gradlew | 185 + .../projects/HelloWorld/gradlew.bat | 89 + .../projects/HelloWorld/settings.gradle | 16 + .../trilha-android/projects/IMCApp/.gitignore | 15 + .../projects/IMCApp/.idea/.gitignore | 3 + .../projects/IMCApp/.idea/.name | 1 + .../projects/IMCApp/.idea/compiler.xml | 6 + .../IMCApp/.idea/deploymentTargetDropDown.xml | 17 + .../projects/IMCApp/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 41 + .../projects/IMCApp/.idea/misc.xml | 10 + .../projects/IMCApp/app/.gitignore | 1 + .../projects/IMCApp/app/build.gradle | 63 + .../projects/IMCApp/app/proguard-rules.pro | 21 + .../fiap/imcapp/ExampleInstrumentedTest.kt | 24 + .../IMCApp/app/src/main/AndroidManifest.xml | 27 + .../java/br/com/fiap/imcapp/CalculoIMC.kt | 21 + .../java/br/com/fiap/imcapp/MainActivity.kt | 248 + .../java/br/com/fiap/imcapp/ui/theme/Color.kt | 8 + .../java/br/com/fiap/imcapp/ui/theme/Shape.kt | 11 + .../java/br/com/fiap/imcapp/ui/theme/Theme.kt | 44 + .../java/br/com/fiap/imcapp/ui/theme/Type.kt | 28 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../IMCApp/app/src/main/res/drawable/bmi.png | Bin 0 -> 48993 bytes .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-anydpi-v33/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../IMCApp/app/src/main/res/values/colors.xml | 11 + .../app/src/main/res/values/strings.xml | 3 + .../IMCApp/app/src/main/res/values/themes.xml | 7 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../br/com/fiap/imcapp/ExampleUnitTest.kt | 17 + .../projects/IMCApp/build.gradle | 10 + .../projects/IMCApp/gradle.properties | 23 + .../IMCApp/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + fase01/trilha-android/projects/IMCApp/gradlew | 185 + .../projects/IMCApp/gradlew.bat | 89 + .../projects/IMCApp/settings.gradle | 16 + .../projects/ListasLazy/.gitignore | 15 + .../projects/ListasLazy/.idea/.gitignore | 3 + .../projects/ListasLazy/.idea/.name | 1 + .../projects/ListasLazy/.idea/compiler.xml | 6 + .../projects/ListasLazy/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 41 + .../projects/ListasLazy/.idea/kotlinc.xml | 6 + .../projects/ListasLazy/.idea/misc.xml | 9 + .../projects/ListasLazy/app/.gitignore | 1 + .../projects/ListasLazy/app/build.gradle | 67 + .../ListasLazy/app/proguard-rules.pro | 21 + .../listaslazy/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 28 + .../br/com/fiap/listaslazy/MainActivity.kt | 168 + .../java/br/com/fiap/listaslazy/model/Game.kt | 8 + .../fiap/listaslazy/repository/GamesList.kt | 24 + .../br/com/fiap/listaslazy/ui/theme/Color.kt | 11 + .../br/com/fiap/listaslazy/ui/theme/Theme.kt | 70 + .../br/com/fiap/listaslazy/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../br/com/fiap/listaslazy/ExampleUnitTest.kt | 17 + .../projects/ListasLazy/build.gradle | 6 + .../projects/ListasLazy/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/ListasLazy/gradlew | 185 + .../projects/ListasLazy/gradlew.bat | 89 + .../projects/ListasLazy/settings.gradle | 16 + .../trilha-android/projects/Login/.gitignore | 15 + .../projects/Login/.idea/.gitignore | 3 + .../projects/Login/.idea/compiler.xml | 6 + .../projects/Login/.idea/gradle.xml | 18 + .../projects/Login/.idea/kotlinc.xml | 6 + .../projects/Login/.idea/misc.xml | 10 + .../projects/Login/app/.gitignore | 1 + .../projects/Login/app/build.gradle | 67 + .../projects/Login/app/proguard-rules.pro | 21 + .../com/fiap/login/ExampleInstrumentedTest.kt | 24 + .../Login/app/src/main/AndroidManifest.xml | 28 + .../java/br/com/fiap/login/MainActivity.kt | 141 + .../java/br/com/fiap/login/ui/theme/Color.kt | 11 + .../java/br/com/fiap/login/ui/theme/Theme.kt | 70 + .../java/br/com/fiap/login/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-pt/strings.xml | 14 + .../Login/app/src/main/res/values/colors.xml | 10 + .../Login/app/src/main/res/values/strings.xml | 11 + .../Login/app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../java/br/com/fiap/login/ExampleUnitTest.kt | 17 + .../projects/Login/build.gradle | 6 + .../projects/Login/gradle.properties | 23 + .../Login/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + fase01/trilha-android/projects/Login/gradlew | 185 + .../trilha-android/projects/Login/gradlew.bat | 89 + .../projects/Login/settings.gradle | 16 + .../projects/MeusContatos/.gitignore | 15 + .../projects/MeusContatos/.idea/.gitignore | 3 + .../projects/MeusContatos/.idea/.name | 1 + .../projects/MeusContatos/.idea/compiler.xml | 6 + .../projects/MeusContatos/.idea/gradle.xml | 19 + .../projects/MeusContatos/.idea/kotlinc.xml | 6 + .../projects/MeusContatos/.idea/misc.xml | 9 + .../projects/MeusContatos/app/.gitignore | 1 + .../projects/MeusContatos/app/build.gradle | 74 + .../MeusContatos/app/proguard-rules.pro | 21 + .../meuscontatos/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 28 + .../br/com/fiap/meuscontatos/MainActivity.kt | 252 + .../meuscontatos/database/dao/ContatoDAO.kt | 28 + .../meuscontatos/database/dao/ContatoDb.kt | 33 + .../database/repository/ContatoRepository.kt | 31 + .../br/com/fiap/meuscontatos/model/Contato.kt | 13 + .../com/fiap/meuscontatos/ui/theme/Color.kt | 11 + .../com/fiap/meuscontatos/ui/theme/Theme.kt | 70 + .../br/com/fiap/meuscontatos/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/fiap/meuscontatos/ExampleUnitTest.kt | 17 + .../projects/MeusContatos/build.gradle | 6 + .../projects/MeusContatos/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/MeusContatos/gradlew | 185 + .../projects/MeusContatos/gradlew.bat | 89 + .../projects/MeusContatos/settings.gradle | 16 + .../projects/Minhaidade/.gitignore | 15 + .../projects/Minhaidade/.idea/.gitignore | 3 + .../projects/Minhaidade/.idea/.name | 1 + .../projects/Minhaidade/.idea/compiler.xml | 6 + .../projects/Minhaidade/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 41 + .../projects/Minhaidade/.idea/misc.xml | 10 + .../projects/Minhaidade/app/.gitignore | 1 + .../projects/Minhaidade/app/build.gradle | 63 + .../Minhaidade/app/proguard-rules.pro | 21 + .../minhaidade/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 27 + .../br/com/fiap/minhaidade/MainActivity.kt | 114 + .../br/com/fiap/minhaidade/ui/theme/Color.kt | 8 + .../br/com/fiap/minhaidade/ui/theme/Shape.kt | 11 + .../br/com/fiap/minhaidade/ui/theme/Theme.kt | 44 + .../br/com/fiap/minhaidade/ui/theme/Type.kt | 28 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-anydpi-v33/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 7 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../br/com/fiap/minhaidade/ExampleUnitTest.kt | 17 + .../projects/Minhaidade/build.gradle | 10 + .../projects/Minhaidade/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/Minhaidade/gradlew | 185 + .../projects/Minhaidade/gradlew.bat | 89 + .../projects/Minhaidade/settings.gradle | 16 + .../projects/Navegandoentretelas/.gitignore | 15 + .../Navegandoentretelas/.idea/.gitignore | 3 + .../projects/Navegandoentretelas/.idea/.name | 1 + .../Navegandoentretelas/.idea/compiler.xml | 6 + .../Navegandoentretelas/.idea/gradle.xml | 19 + .../inspectionProfiles/Project_Default.xml | 41 + .../Navegandoentretelas/.idea/kotlinc.xml | 6 + .../Navegandoentretelas/.idea/misc.xml | 9 + .../Navegandoentretelas/app/.gitignore | 1 + .../Navegandoentretelas/app/build.gradle | 70 + .../app/proguard-rules.pro | 21 + .../ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 28 + .../fiap/navegandoentretelas/MainActivity.kt | 89 + .../screens/LoginScreen.kt | 41 + .../navegandoentretelas/screens/MenuScreen.kt | 68 + .../screens/PedidosScreen.kt | 40 + .../screens/PerfilScreen.kt | 44 + .../navegandoentretelas/ui/theme/Color.kt | 11 + .../navegandoentretelas/ui/theme/Theme.kt | 70 + .../fiap/navegandoentretelas/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../navegandoentretelas/ExampleUnitTest.kt | 17 + .../projects/Navegandoentretelas/build.gradle | 6 + .../Navegandoentretelas/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/Navegandoentretelas/gradlew | 185 + .../projects/Navegandoentretelas/gradlew.bat | 89 + .../Navegandoentretelas/settings.gradle | 16 + .../projects/VideoPlayer/.gitignore | 15 + .../projects/VideoPlayer/.idea/.gitignore | 3 + .../projects/VideoPlayer/.idea/.name | 1 + .../projects/VideoPlayer/.idea/compiler.xml | 6 + .../projects/VideoPlayer/.idea/gradle.xml | 18 + .../projects/VideoPlayer/.idea/kotlinc.xml | 6 + .../projects/VideoPlayer/.idea/misc.xml | 10 + .../projects/VideoPlayer/app/.gitignore | 1 + .../projects/VideoPlayer/app/build.gradle | 70 + .../VideoPlayer/app/proguard-rules.pro | 21 + .../videoplayer/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 28 + .../br/com/fiap/videoplayer/MainActivity.kt | 65 + .../br/com/fiap/videoplayer/ui/theme/Color.kt | 11 + .../br/com/fiap/videoplayer/ui/theme/Theme.kt | 70 + .../br/com/fiap/videoplayer/ui/theme/Type.kt | 34 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/fiap/videoplayer/ExampleUnitTest.kt | 17 + .../projects/VideoPlayer/build.gradle | 6 + .../projects/VideoPlayer/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../projects/VideoPlayer/gradlew | 185 + .../projects/VideoPlayer/gradlew.bat | 89 + .../projects/VideoPlayer/settings.gradle | 16 + fase02/capitulo01.md | 16 + fase02/capitulo02.md | 533 + fase02/capitulo03.md | 466 + fase02/capitulo04.md | 401 + fase02/capitulo05.md | 245 + fase02/capitulo06.md | 363 + fase02/capitulo07.md | 352 + fase02/capitulo08.md | 296 + fase02/capitulo09.md | 392 + fase02/capitulo10.md | 765 ++ fase02/capitulo11.md | 103 + fase02/capitulo12.md | 406 + fase02/images/jornada-e-percepcoes.png | Bin 0 -> 44662 bytes fase02/images/touchpoints.png | Bin 0 -> 41997 bytes .../adaptacao-modelo-de-negocio-ao-bmc.png | Bin 0 -> 30180 bytes .../assets/ajustes-interface-userdetails.png | Bin 0 -> 193427 bytes fase03/assets/aliviadores-de-dores.png | Bin 0 -> 35042 bytes fase03/assets/canais.png | Bin 0 -> 16539 bytes fase03/assets/canvas-modelo-do-negocio.png | Bin 0 -> 15643 bytes fase03/assets/canvas-proposta-de-valor.png | Bin 0 -> 29152 bytes fase03/assets/ciclo-de-vida-entidade.png | Bin 0 -> 24804 bytes fase03/assets/custos.png | Bin 0 -> 16754 bytes fase03/assets/dores-do-cliente.png | Bin 0 -> 34001 bytes fase03/assets/exemplo-diagrama-logico.png | Bin 0 -> 22339 bytes fase03/assets/ganhos-e-geradores.png | Bin 0 -> 38058 bytes fase03/assets/lado-direito-canvas.png | Bin 0 -> 30486 bytes fase03/assets/lado-esquerdo-canvas.png | Bin 0 -> 25373 bytes .../logica-canvas-proposta-de-valor.png | Bin 0 -> 40759 bytes fase03/assets/mapa-de-empatia.png | Bin 0 -> 22133 bytes .../assets/metodos-interface-userdetails.png | Bin 0 -> 330473 bytes fase03/assets/parceiros-e-atividades.png | Bin 0 -> 17462 bytes .../produtos-e-servicos-gerando-valor.png | Bin 0 -> 35000 bytes fase03/assets/produtos-e-servicos.png | Bin 0 -> 36220 bytes fase03/assets/receitas.png | Bin 0 -> 16660 bytes fase03/assets/recursos-chave.png | Bin 0 -> 16911 bytes fase03/assets/relacionamento-com-clientes.png | Bin 0 -> 16301 bytes fase03/assets/tarefas-do-cliente.png | Bin 0 -> 49427 bytes fase03/capitulo01.md | 25 + fase03/capitulo02.md | 2376 ++++ fase03/capitulo03.md | 1184 ++ fase03/capitulo04.md | 1395 ++ fase03/capitulo05.md | 1340 ++ fase03/capitulo06.md | 533 + fase03/capitulo07.md | 153 + fase03/capitulo08.md | 126 + fase03/capitulo09.md | 176 + fase03/capitulo10.md | 396 + fase03/projects/calorias/.gitignore | 33 + .../.mvn/wrapper/maven-wrapper.properties | 18 + fase03/projects/calorias/mvnw | 250 + fase03/projects/calorias/mvnw.cmd | 146 + fase03/projects/calorias/pom.xml | 95 + .../fiap/calorias/CaloriasApplication.java | 13 + .../advice/ApplicationExceptionHandler.java | 45 + .../config/security/SecurityConfig.java | 60 + .../config/security/TokenService.java | 62 + .../config/security/VerificarToken.java | 54 + .../controller/AlimentoController.java | 95 + .../calorias/controller/AuthController.java | 63 + .../controller/HelloWorldController.java | 21 + .../controller/UsuarioController.java | 56 + .../calorias/dto/AlimentoCadastroDTO.java | 27 + .../calorias/dto/AlimentoExibicaoDTO.java | 27 + .../br/com/fiap/calorias/dto/LoginDTO.java | 17 + .../br/com/fiap/calorias/dto/TokenDTO.java | 4 + .../fiap/calorias/dto/UsuarioCadastroDTO.java | 21 + .../fiap/calorias/dto/UsuarioExibicaoDTO.java | 16 + .../UsuarioNaoEncontradoException.java | 9 + .../br/com/fiap/calorias/model/Alimento.java | 41 + .../br/com/fiap/calorias/model/Usuario.java | 84 + .../com/fiap/calorias/model/UsuarioRole.java | 16 + .../repository/AlimentoRepository.java | 25 + .../repository/UsuarioRepository.java | 11 + .../calorias/service/AlimentoService.java | 118 + .../service/AuthorizationService.java | 20 + .../fiap/calorias/service/UsuarioService.java | 89 + .../src/main/resources/application.properties | 19 + ...create-table-tbl_usuarios-seq-usuarios.sql | 12 + ...eate-table-tbl_alimentos-seq-alimentos.sql | 15 + ...ify-table-tbl_alimentos-add-field-role.sql | 3 + ...table-tbl_alimentos-modify-field-senha.sql | 2 + .../calorias/CaloriasApplicationTests.java | 13 + fase03/projects/games/.classpath | 57 + fase03/projects/games/.project | 34 + .../.settings/org.eclipse.jdt.apt.core.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 9 + .../.settings/org.eclipse.m2e.core.prefs | 4 + fase03/projects/games/pom.xml | 36 + .../games/src/main/java/br/com/fiap/Main.java | 283 + .../java/br/com/fiap/dao/CategoriaDao.java | 22 + .../main/java/br/com/fiap/dao/GameDao.java | 54 + .../java/br/com/fiap/dao/package-info.java | 1 + .../java/br/com/fiap/model/Categoria.java | 61 + .../src/main/java/br/com/fiap/model/Game.java | 101 + .../java/br/com/fiap/model/package-info.java | 1 + .../main/java/br/com/fiap/package-info.java | 1 + .../main/java/br/com/fiap/utils/Conexao.java | 15 + .../java/br/com/fiap/utils/package-info.java | 1 + .../main/resources/META-INF/persistence.xml | 24 + .../target/classes/META-INF/persistence.xml | 24 + .../target/classes/br/com/fiap/Main.class | Bin 0 -> 3448 bytes .../br/com/fiap/dao/CategoriaDao.class | Bin 0 -> 989 bytes .../classes/br/com/fiap/dao/GameDao.class | Bin 0 -> 2595 bytes .../br/com/fiap/dao/package-info.class | Bin 0 -> 121 bytes .../classes/br/com/fiap/model/Categoria.class | Bin 0 -> 2539 bytes .../classes/br/com/fiap/model/Game.class | Bin 0 -> 3574 bytes .../br/com/fiap/model/package-info.class | Bin 0 -> 123 bytes .../classes/br/com/fiap/package-info.class | Bin 0 -> 117 bytes .../classes/br/com/fiap/utils/Conexao.class | Bin 0 -> 761 bytes .../br/com/fiap/utils/package-info.class | Bin 0 -> 123 bytes fase04/capitulo01.md | 16 + fase04/capitulo02.md | 182 + fase04/capitulo03.md | 774 ++ fase04/capitulo04.md | 1423 ++ fase04/capitulo05.md | 1461 ++ fase04/capitulo06.md | 200 + fase04/capitulo07.md | 20 + fase04/capitulo08.md | 220 + fase04/images/estado-entidades-ef.png | Bin 0 -> 60217 bytes .../Fiap.Web.Alunos/.dockerignore | 30 + .../DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 145997 bytes ...030607f5-a89d-437d-a284-4b860e897e7d.vsidx | Bin 0 -> 6656 bytes ...053dfb04-8fa6-442a-9b53-8e50eec992d5.vsidx | Bin 0 -> 8596 bytes ...4bbf8d62-a726-4f85-b25f-d47d282a67bb.vsidx | Bin 0 -> 10845 bytes ...876d79bf-b9ed-4c8b-bda4-692dd75671e4.vsidx | Bin 0 -> 6989 bytes ...abff8236-1e96-46aa-80ea-025efa9f5c8d.vsidx | Bin 0 -> 1690199 bytes ...f303639d-6374-4191-aa54-fdc19ad1dd7a.vsidx | Bin 0 -> 1689777 bytes .../.vs/Fiap.Web.Alunos/v17/.futdcache.v2 | Bin 0 -> 160 bytes .../.vs/Fiap.Web.Alunos/v17/.suo | Bin 0 -> 46080 bytes .../Fiap.Web.Alunos/v17/DocumentLayout.json | 37 + .../fiap.web.alunos.metadata.v8.bin | Bin 0 -> 1183 bytes .../fiap.web.alunos.projects.v8.bin | Bin 0 -> 70014 bytes .../fiap.web.alunos.strings.v8.bin | Bin 0 -> 157565 bytes .../Fiap.Web.Alunos/Fiap.Web.Alunos.sln | 25 + .../Controllers/ClienteController.cs | 159 + .../Controllers/HomeController.cs | 32 + .../Fiap.Web.Alunos/Dockerfile | 25 + .../Fiap.Web.Alunos/Fiap.Web.Alunos.csproj | 15 + .../Fiap.Web.Alunos.csproj.user | 10 + .../Fiap.Web.Alunos/Models/ClienteModel.cs | 14 + .../Fiap.Web.Alunos/Models/ErrorViewModel.cs | 9 + .../Models/RepresentanteModel.cs | 9 + .../Fiap.Web.Alunos/Program.cs | 27 + .../Properties/launchSettings.json | 49 + .../Views/Cliente/Create.cshtml | 59 + .../Views/Cliente/Detail.cshtml | 53 + .../Fiap.Web.Alunos/Views/Cliente/Edit.cshtml | 53 + .../Views/Cliente/Index.cshtml | 64 + .../Fiap.Web.Alunos/Views/Home/Index.cshtml | 15 + .../Fiap.Web.Alunos/Views/Home/Privacy.cshtml | 6 + .../Fiap.Web.Alunos/Views/Shared/Error.cshtml | 25 + .../Views/Shared/_Layout.cshtml | 56 + .../Views/Shared/_Layout.cshtml.css | 48 + .../Shared/_ValidationScriptsPartial.cshtml | 2 + .../Fiap.Web.Alunos/Views/_ViewImports.cshtml | 3 + .../Fiap.Web.Alunos/Views/_ViewStart.cshtml | 3 + .../appsettings.Development.json | 8 + .../Fiap.Web.Alunos/appsettings.json | 9 + .../Debug/net8.0/Fiap.Web.Alunos.deps.json | 34 + .../bin/Debug/net8.0/Fiap.Web.Alunos.dll | Bin 0 -> 143872 bytes .../bin/Debug/net8.0/Fiap.Web.Alunos.exe | Bin 0 -> 142848 bytes .../bin/Debug/net8.0/Fiap.Web.Alunos.pdb | Bin 0 -> 53016 bytes .../net8.0/Fiap.Web.Alunos.runtimeconfig.json | 19 + ...Web.Alunos.staticwebassets.runtime.CT.json | 578 + ...ap.Web.Alunos.staticwebassets.runtime.json | 1 + .../Debug/net8.0/appsettings.Development.json | 8 + .../bin/Debug/net8.0/appsettings.json | 9 + .../AbsoluteOutputAssemblyPath.cache | 1 + .../Container/AdditionalProbingPaths.cache | 1 + .../Container/ContainerCreationResult.cache | 1 + .../Container/ContainerDevelopmentMode.cache | 0 .../obj/Container/ContainerId.cache | 0 .../obj/Container/ContainerName.cache | 0 .../ContainerOperatingSystemFlavor.cache | 1 + .../obj/Container/ContainerRunContext.cache | 0 .../obj/Container/ContainerRuntimeID.cache | 1 + .../obj/Container/DebuggeeArguments.cache | 0 .../DebuggeeKillProcessCommand.cache | 0 .../obj/Container/DebuggeeProgram.cache | 0 .../Container/DebuggeeWorkingDirectory.cache | 0 .../Container/DistrolessHelperWasMapped.cache | 1 + .../FastModeProjectMountDirectory.cache | 0 .../obj/Container/ImageBuildContext.cache | 1 + .../obj/Container/ImageId.cache | 1 + .../obj/Container/LaunchedImageId.cache | 1 + .../obj/Container/OperatingSystemName.cache | 1 + .../obj/Container/TargetFramework.cache | 1 + .../obj/Container/VolumeMappings.cache | 1 + .../obj/Container/VolumeMappings2.cache | 1 + .../obj/Container/VsDbgScript.cache | 0 ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../net8.0/Fiap.Web.Alunos.AssemblyInfo.cs | 24 + .../Fiap.Web.Alunos.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 63 + .../net8.0/Fiap.Web.Alunos.GlobalUsings.g.cs | 17 + ...unos.MvcApplicationPartsAssemblyInfo.cache | 0 .../Fiap.Web.Alunos.RazorAssemblyInfo.cache | 1 + .../Fiap.Web.Alunos.RazorAssemblyInfo.cs | 18 + .../Debug/net8.0/Fiap.Web.Alunos.assets.cache | Bin 0 -> 526 bytes ...p.Web.Alunos.csproj.BuildWithSkipAnalyzers | 0 ....Web.Alunos.csproj.CoreCompileInputs.cache | 1 + ...iap.Web.Alunos.csproj.FileListAbsolute.txt | 30 + .../obj/Debug/net8.0/Fiap.Web.Alunos.dll | Bin 0 -> 143872 bytes .../Fiap.Web.Alunos.genruntimeconfig.cache | 1 + .../obj/Debug/net8.0/Fiap.Web.Alunos.pdb | Bin 0 -> 53016 bytes .../obj/Debug/net8.0/apphost.exe | Bin 0 -> 142848 bytes .../obj/Debug/net8.0/project.razor.vs.bin | Bin 0 -> 191440 bytes .../obj/Debug/net8.0/ref/Fiap.Web.Alunos.dll | Bin 0 -> 29696 bytes .../Debug/net8.0/refint/Fiap.Web.Alunos.dll | Bin 0 -> 29696 bytes .../Views/Shared/_Layout.cshtml.rz.scp.css | 48 + .../bundle/Fiap.Web.Alunos.styles.css | 49 + .../Fiap.Web.Alunos.bundle.scp.css | 49 + .../Debug/net8.0/staticwebassets.build.json | 1198 ++ .../net8.0/staticwebassets.development.json | 1 + .../Debug/net8.0/staticwebassets.pack.json | 265 + ...Microsoft.AspNetCore.StaticWebAssets.props | 980 ++ .../msbuild.build.Fiap.Web.Alunos.props | 3 + ....buildMultiTargeting.Fiap.Web.Alunos.props | 3 + ...uild.buildTransitive.Fiap.Web.Alunos.props | 3 + .../Fiap.Web.Alunos.csproj.nuget.dgspec.json | 78 + .../obj/Fiap.Web.Alunos.csproj.nuget.g.props | 21 + .../Fiap.Web.Alunos.csproj.nuget.g.targets | 6 + .../Fiap.Web.Alunos/obj/project.assets.json | 174 + .../Fiap.Web.Alunos/obj/project.nuget.cache | 10 + .../Fiap.Web.Alunos/wwwroot/css/site.css | 22 + .../Fiap.Web.Alunos/wwwroot/favicon.ico | Bin 0 -> 5430 bytes .../Fiap.Web.Alunos/wwwroot/js/site.js | 4 + .../wwwroot/lib/bootstrap/LICENSE | 22 + .../lib/bootstrap/dist/css/bootstrap-grid.css | 4997 +++++++ .../bootstrap/dist/css/bootstrap-grid.css.map | 1 + .../bootstrap/dist/css/bootstrap-grid.min.css | 7 + .../dist/css/bootstrap-grid.min.css.map | 1 + .../bootstrap/dist/css/bootstrap-grid.rtl.css | 4996 +++++++ .../dist/css/bootstrap-grid.rtl.css.map | 1 + .../dist/css/bootstrap-grid.rtl.min.css | 7 + .../dist/css/bootstrap-grid.rtl.min.css.map | 1 + .../bootstrap/dist/css/bootstrap-reboot.css | 427 + .../dist/css/bootstrap-reboot.css.map | 1 + .../dist/css/bootstrap-reboot.min.css | 8 + .../dist/css/bootstrap-reboot.min.css.map | 1 + .../dist/css/bootstrap-reboot.rtl.css | 424 + .../dist/css/bootstrap-reboot.rtl.css.map | 1 + .../dist/css/bootstrap-reboot.rtl.min.css | 8 + .../dist/css/bootstrap-reboot.rtl.min.css.map | 1 + .../dist/css/bootstrap-utilities.css | 4866 +++++++ .../dist/css/bootstrap-utilities.css.map | 1 + .../dist/css/bootstrap-utilities.min.css | 7 + .../dist/css/bootstrap-utilities.min.css.map | 1 + .../dist/css/bootstrap-utilities.rtl.css | 4857 +++++++ .../dist/css/bootstrap-utilities.rtl.css.map | 1 + .../dist/css/bootstrap-utilities.rtl.min.css | 7 + .../css/bootstrap-utilities.rtl.min.css.map | 1 + .../lib/bootstrap/dist/css/bootstrap.css | 11221 ++++++++++++++++ .../lib/bootstrap/dist/css/bootstrap.css.map | 1 + .../lib/bootstrap/dist/css/bootstrap.min.css | 7 + .../bootstrap/dist/css/bootstrap.min.css.map | 1 + .../lib/bootstrap/dist/css/bootstrap.rtl.css | 11197 +++++++++++++++ .../bootstrap/dist/css/bootstrap.rtl.css.map | 1 + .../bootstrap/dist/css/bootstrap.rtl.min.css | 7 + .../dist/css/bootstrap.rtl.min.css.map | 1 + .../lib/bootstrap/dist/js/bootstrap.bundle.js | 6780 ++++++++++ .../bootstrap/dist/js/bootstrap.bundle.js.map | 1 + .../bootstrap/dist/js/bootstrap.bundle.min.js | 7 + .../dist/js/bootstrap.bundle.min.js.map | 1 + .../lib/bootstrap/dist/js/bootstrap.esm.js | 4977 +++++++ .../bootstrap/dist/js/bootstrap.esm.js.map | 1 + .../bootstrap/dist/js/bootstrap.esm.min.js | 7 + .../dist/js/bootstrap.esm.min.js.map | 1 + .../lib/bootstrap/dist/js/bootstrap.js | 5026 +++++++ .../lib/bootstrap/dist/js/bootstrap.js.map | 1 + .../lib/bootstrap/dist/js/bootstrap.min.js | 7 + .../bootstrap/dist/js/bootstrap.min.js.map | 1 + .../jquery-validation-unobtrusive/LICENSE.txt | 23 + .../jquery.validate.unobtrusive.js | 435 + .../jquery.validate.unobtrusive.min.js | 8 + .../wwwroot/lib/jquery-validation/LICENSE.md | 22 + .../dist/additional-methods.js | 1512 +++ .../dist/additional-methods.min.js | 4 + .../jquery-validation/dist/jquery.validate.js | 1661 +++ .../dist/jquery.validate.min.js | 4 + .../wwwroot/lib/jquery/LICENSE.txt | 21 + .../wwwroot/lib/jquery/dist/jquery.js | 10881 +++++++++++++++ .../wwwroot/lib/jquery/dist/jquery.min.js | 2 + .../wwwroot/lib/jquery/dist/jquery.min.map | 1 + .../.gitattributes | 63 + .../.gitignore | 363 + .../Fiap.Console.IocSample.sln | 25 + .../Fiap.Console.IocSample.csproj | 10 + .../Fiap.Console.IocSample/Mensageiro.cs | 7 + .../Fiap.Console.IocSample/Program.cs | 8 + .../.gitattributes | 63 + .../Fiap.Console.IocSample-02-ioc/.gitignore | 363 + .../Fiap.Console.IocSample.sln | 25 + .../EnviadorMensagem.cs | 14 + .../Fiap.Console.IocSample.csproj | 10 + .../Fiap.Console.IocSample/IMensageiro.cs | 4 + .../Fiap.Console.IocSample/Mensageiro.cs | 7 + .../Fiap.Console.IocSample/Program.cs | 9 + .../HelloWorld/DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 83764 bytes ...970927dd-c6c6-4dad-9ccb-2fab54dee5c2.vsidx | Bin 0 -> 3661 bytes .../.vs/HelloWorld/v17/.futdcache.v2 | Bin 0 -> 132 bytes .../HelloWorld/.vs/HelloWorld/v17/.suo | Bin 0 -> 23040 bytes .../.vs/HelloWorld/v17/DocumentLayout.json | 37 + .../helloworld.metadata.v8.bin | Bin 0 -> 997 bytes .../helloworld.projects.v8.bin | Bin 0 -> 26420 bytes .../helloworld.strings.v8.bin | Bin 0 -> 117171 bytes fase04/projects/HelloWorld/HelloWorld.sln | 25 + .../HelloWorld/HelloWorld/HelloWorld.csproj | 10 + .../projects/HelloWorld/HelloWorld/Program.cs | 2 + .../bin/Debug/net8.0/HelloWorld.deps.json | 23 + .../bin/Debug/net8.0/HelloWorld.dll | Bin 0 -> 4608 bytes .../bin/Debug/net8.0/HelloWorld.exe | Bin 0 -> 142848 bytes .../bin/Debug/net8.0/HelloWorld.pdb | Bin 0 -> 10568 bytes .../net8.0/HelloWorld.runtimeconfig.json | 12 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../Debug/net8.0/HelloWorld.AssemblyInfo.cs | 23 + .../HelloWorld.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + .../Debug/net8.0/HelloWorld.GlobalUsings.g.cs | 8 + .../obj/Debug/net8.0/HelloWorld.assets.cache | Bin 0 -> 152 bytes .../HelloWorld.csproj.BuildWithSkipAnalyzers | 0 .../HelloWorld.csproj.CoreCompileInputs.cache | 1 + .../HelloWorld.csproj.FileListAbsolute.txt | 14 + .../obj/Debug/net8.0/HelloWorld.dll | Bin 0 -> 4608 bytes .../net8.0/HelloWorld.genruntimeconfig.cache | 1 + .../obj/Debug/net8.0/HelloWorld.pdb | Bin 0 -> 10568 bytes .../HelloWorld/obj/Debug/net8.0/apphost.exe | Bin 0 -> 142848 bytes .../obj/Debug/net8.0/ref/HelloWorld.dll | Bin 0 -> 5120 bytes .../obj/Debug/net8.0/refint/HelloWorld.dll | Bin 0 -> 5120 bytes .../obj/HelloWorld.csproj.nuget.dgspec.json | 69 + .../obj/HelloWorld.csproj.nuget.g.props | 15 + .../obj/HelloWorld.csproj.nuget.g.targets | 2 + .../HelloWorld/obj/project.assets.json | 74 + .../HelloWorld/obj/project.nuget.cache | 8 + ... Viabilidade Financeira.xlsx_RevFinal.xlsx | Bin 0 -> 53194 bytes ...e - Validando a solucao.docx_RevFinal.docx | Bin 0 -> 13727 bytes fase05/capitulo01.md | 23 + fase05/capitulo02.md | 295 + fase05/capitulo03.md | 290 + fase05/capitulo04.md | 1132 ++ fase05/capitulo05.md | 327 + fase05/capitulo06.md | 64 + fase05/capitulo07.md | 224 + fase05/capitulo08.md | 179 + fase05/capitulo09.md | 133 + fase05/capitulo10.md | 211 + fase05/images/cap02-transacao.png | Bin 0 -> 150772 bytes fase05/images/cap03-arquitetura-mongodb.png | Bin 0 -> 123177 bytes fase05/images/cap05-tipos-de-analise.png | Bin 0 -> 445164 bytes fase05/images/cap09-earlyevangelists.png | Bin 0 -> 285282 bytes fase06/assets/webapp.png | Bin 0 -> 75202 bytes fase06/capitulo01.md | 23 + fase06/capitulo02.md | 201 + fase06/capitulo03.md | 358 + .../.github/workflows/main_displaycsv.yml | 67 + fase06/projects/displaycsv-main/README.md | Bin 0 -> 78 bytes fase06/projects/displaycsv-main/app.py | 31 + .../projects/displaycsv-main/requirements.txt | 2 + .../displaycsv-main/templates/display.html | 25 + .../displaycsv-main/templates/index.html | 13 + readme.md | 198 + 1069 files changed, 129556 insertions(+) create mode 100644 assets/logo.png create mode 100644 fase01/capitulo01.md create mode 100644 fase01/capitulo02.md create mode 100644 fase01/capitulo03.md create mode 100644 fase01/images/arquitetura-mvvm.png create mode 100644 fase01/images/calc-imc-estrutura.png create mode 100644 fase01/images/calc-imc-layout.png create mode 100644 fase01/images/estrutura-hierarquica-aplicacao.png create mode 100644 fase01/images/estrutura-iu-primeiro-app.png create mode 100644 fase01/images/fluxo-navegacao.png create mode 100644 fase01/images/fluxo-startup-one.png create mode 100644 fase01/images/habilidades-seculo-xxi.png create mode 100644 fase01/trilha-android/capitulo10a.md create mode 100644 fase01/trilha-android/capitulo11a.md create mode 100644 fase01/trilha-android/capitulo12a.md create mode 100644 fase01/trilha-android/capitulo13a.md create mode 100644 fase01/trilha-android/capitulo2a.md create mode 100644 fase01/trilha-android/capitulo3a.md create mode 100644 fase01/trilha-android/capitulo4a.md create mode 100644 fase01/trilha-android/capitulo5a.md create mode 100644 fase01/trilha-android/capitulo6a.md create mode 100644 fase01/trilha-android/capitulo7a.md create mode 100644 fase01/trilha-android/capitulo8a.md create mode 100644 fase01/trilha-android/capitulo9a.md create mode 100644 fase01/trilha-android/projects/Animacao/.gitignore create mode 100644 fase01/trilha-android/projects/Animacao/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/Animacao/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/Animacao/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/Animacao/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/Animacao/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/.gitignore create mode 100644 fase01/trilha-android/projects/Animacao/app/build.gradle create mode 100644 fase01/trilha-android/projects/Animacao/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/Animacao/app/src/androidTest/java/br/com/fiap/animacao/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/MainActivity.kt create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/Animacao/app/src/test/java/br/com/fiap/animacao/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/Animacao/build.gradle create mode 100644 fase01/trilha-android/projects/Animacao/gradle.properties create mode 100644 fase01/trilha-android/projects/Animacao/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/Animacao/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/Animacao/gradlew create mode 100644 fase01/trilha-android/projects/Animacao/gradlew.bat create mode 100644 fase01/trilha-android/projects/Animacao/settings.gradle create mode 100644 fase01/trilha-android/projects/AudioPlayer/.gitignore create mode 100644 fase01/trilha-android/projects/AudioPlayer/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/AudioPlayer/.idea/.name create mode 100644 fase01/trilha-android/projects/AudioPlayer/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/.gitignore create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/build.gradle create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/androidTest/java/br/com/fiap/audioplayer/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/java/br/com/fiap/audioplayer/MainActivity.kt create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/java/br/com/fiap/audioplayer/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/java/br/com/fiap/audioplayer/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/java/br/com/fiap/audioplayer/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/drawable/pause.png create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/drawable/play.png create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/drawable/stop.png create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/raw/lofi.mpeg create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/AudioPlayer/app/src/test/java/br/com/fiap/audioplayer/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/AudioPlayer/build.gradle create mode 100644 fase01/trilha-android/projects/AudioPlayer/gradle.properties create mode 100644 fase01/trilha-android/projects/AudioPlayer/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/AudioPlayer/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/AudioPlayer/gradlew create mode 100644 fase01/trilha-android/projects/AudioPlayer/gradlew.bat create mode 100644 fase01/trilha-android/projects/AudioPlayer/settings.gradle create mode 100644 fase01/trilha-android/projects/BasicComponents/.gitignore create mode 100644 fase01/trilha-android/projects/BasicComponents/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/BasicComponents/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/.idea/deploymentTargetDropDown.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/.gitignore create mode 100644 fase01/trilha-android/projects/BasicComponents/app/build.gradle create mode 100644 fase01/trilha-android/projects/BasicComponents/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/androidTest/java/br/com/fiap/basiccomponents/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/java/br/com/fiap/basiccomponents/MainActivity.kt create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/java/br/com/fiap/basiccomponents/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/java/br/com/fiap/basiccomponents/ui/theme/Shape.kt create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/java/br/com/fiap/basiccomponents/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/java/br/com/fiap/basiccomponents/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/font/righteous_regular.ttf create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/BasicComponents/app/src/test/java/br/com/fiap/basiccomponents/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/BasicComponents/build.gradle create mode 100644 fase01/trilha-android/projects/BasicComponents/gradle.properties create mode 100644 fase01/trilha-android/projects/BasicComponents/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/BasicComponents/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/BasicComponents/gradlew create mode 100644 fase01/trilha-android/projects/BasicComponents/gradlew.bat create mode 100644 fase01/trilha-android/projects/BasicComponents/settings.gradle create mode 100644 fase01/trilha-android/projects/BoxApp/.gitignore create mode 100644 fase01/trilha-android/projects/BoxApp/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/BoxApp/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/BoxApp/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/BoxApp/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/.gitignore create mode 100644 fase01/trilha-android/projects/BoxApp/app/build.gradle create mode 100644 fase01/trilha-android/projects/BoxApp/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/androidTest/java/br/com/fiap/boxapp/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/MainActivity.kt create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Shape.kt create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/BoxApp/app/src/test/java/br/com/fiap/boxapp/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/BoxApp/build.gradle create mode 100644 fase01/trilha-android/projects/BoxApp/gradle.properties create mode 100644 fase01/trilha-android/projects/BoxApp/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/BoxApp/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/BoxApp/gradlew create mode 100644 fase01/trilha-android/projects/BoxApp/gradlew.bat create mode 100644 fase01/trilha-android/projects/BoxApp/settings.gradle create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.gitignore create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.idea/.name create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/.gitignore create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/build.gradle create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/androidTest/java/br/com/fiap/calculodejuros/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/MainActivity.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/calculos/CalcularJuros.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CaixaDeEntrada.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CardResultado.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreen.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreenViewModel.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/CalculodeJuros/app/src/test/java/br/com/fiap/calculodejuros/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/CalculodeJuros/build.gradle create mode 100644 fase01/trilha-android/projects/CalculodeJuros/gradle.properties create mode 100644 fase01/trilha-android/projects/CalculodeJuros/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/CalculodeJuros/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/CalculodeJuros/gradlew create mode 100644 fase01/trilha-android/projects/CalculodeJuros/gradlew.bat create mode 100644 fase01/trilha-android/projects/CalculodeJuros/settings.gradle create mode 100644 fase01/trilha-android/projects/ColumnRow/.gitignore create mode 100644 fase01/trilha-android/projects/ColumnRow/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/ColumnRow/.idea/.name create mode 100644 fase01/trilha-android/projects/ColumnRow/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/.idea/deploymentTargetDropDown.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/.gitignore create mode 100644 fase01/trilha-android/projects/ColumnRow/app/build.gradle create mode 100644 fase01/trilha-android/projects/ColumnRow/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/androidTest/java/br/com/fiap/columnrow/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/java/br/com/fiap/columnrow/MainActivity.kt create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/java/br/com/fiap/columnrow/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/java/br/com/fiap/columnrow/ui/theme/Shape.kt create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/java/br/com/fiap/columnrow/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/java/br/com/fiap/columnrow/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/ColumnRow/app/src/test/java/br/com/fiap/columnrow/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/ColumnRow/build.gradle create mode 100644 fase01/trilha-android/projects/ColumnRow/gradle.properties create mode 100644 fase01/trilha-android/projects/ColumnRow/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/ColumnRow/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/ColumnRow/gradlew create mode 100644 fase01/trilha-android/projects/ColumnRow/gradlew.bat create mode 100644 fase01/trilha-android/projects/ColumnRow/settings.gradle create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.gitignore create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.idea/.name create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/.gitignore create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/build.gradle create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/androidTest/java/br/com/fiap/consultacep/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/MainActivity.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/model/Cep.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/CepService.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/RetrofitFactory.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/ConsultaCEP/app/src/test/java/br/com/fiap/consultacep/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/ConsultaCEP/build.gradle create mode 100644 fase01/trilha-android/projects/ConsultaCEP/gradle.properties create mode 100644 fase01/trilha-android/projects/ConsultaCEP/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/ConsultaCEP/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/ConsultaCEP/gradlew create mode 100644 fase01/trilha-android/projects/ConsultaCEP/gradlew.bat create mode 100644 fase01/trilha-android/projects/ConsultaCEP/settings.gradle create mode 100644 fase01/trilha-android/projects/HelloWorld/.gitignore create mode 100644 fase01/trilha-android/projects/HelloWorld/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/HelloWorld/.idea/.name create mode 100644 fase01/trilha-android/projects/HelloWorld/.idea/codeStyles/Project.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/.idea/codeStyles/codeStyleConfig.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/.gitignore create mode 100644 fase01/trilha-android/projects/HelloWorld/app/build.gradle create mode 100644 fase01/trilha-android/projects/HelloWorld/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/androidTest/java/br/com/fiap/helloworld/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/java/br/com/fiap/helloworld/MainActivity.kt create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/layout/activity_main.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/values-night/themes.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/HelloWorld/app/src/test/java/br/com/fiap/helloworld/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/HelloWorld/build.gradle create mode 100644 fase01/trilha-android/projects/HelloWorld/gradle.properties create mode 100644 fase01/trilha-android/projects/HelloWorld/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/HelloWorld/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/HelloWorld/gradlew create mode 100644 fase01/trilha-android/projects/HelloWorld/gradlew.bat create mode 100644 fase01/trilha-android/projects/HelloWorld/settings.gradle create mode 100644 fase01/trilha-android/projects/IMCApp/.gitignore create mode 100644 fase01/trilha-android/projects/IMCApp/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/IMCApp/.idea/.name create mode 100644 fase01/trilha-android/projects/IMCApp/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/IMCApp/.idea/deploymentTargetDropDown.xml create mode 100644 fase01/trilha-android/projects/IMCApp/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/IMCApp/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/IMCApp/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/.gitignore create mode 100644 fase01/trilha-android/projects/IMCApp/app/build.gradle create mode 100644 fase01/trilha-android/projects/IMCApp/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/androidTest/java/br/com/fiap/imcapp/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/CalculoIMC.kt create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/MainActivity.kt create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Shape.kt create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable/bmi.png create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/IMCApp/app/src/test/java/br/com/fiap/imcapp/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/IMCApp/build.gradle create mode 100644 fase01/trilha-android/projects/IMCApp/gradle.properties create mode 100644 fase01/trilha-android/projects/IMCApp/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/IMCApp/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/IMCApp/gradlew create mode 100644 fase01/trilha-android/projects/IMCApp/gradlew.bat create mode 100644 fase01/trilha-android/projects/IMCApp/settings.gradle create mode 100644 fase01/trilha-android/projects/ListasLazy/.gitignore create mode 100644 fase01/trilha-android/projects/ListasLazy/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/ListasLazy/.idea/.name create mode 100644 fase01/trilha-android/projects/ListasLazy/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/.gitignore create mode 100644 fase01/trilha-android/projects/ListasLazy/app/build.gradle create mode 100644 fase01/trilha-android/projects/ListasLazy/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/androidTest/java/br/com/fiap/listaslazy/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/MainActivity.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/model/Game.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/repository/GamesList.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/ListasLazy/app/src/test/java/br/com/fiap/listaslazy/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/ListasLazy/build.gradle create mode 100644 fase01/trilha-android/projects/ListasLazy/gradle.properties create mode 100644 fase01/trilha-android/projects/ListasLazy/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/ListasLazy/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/ListasLazy/gradlew create mode 100644 fase01/trilha-android/projects/ListasLazy/gradlew.bat create mode 100644 fase01/trilha-android/projects/ListasLazy/settings.gradle create mode 100644 fase01/trilha-android/projects/Login/.gitignore create mode 100644 fase01/trilha-android/projects/Login/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/Login/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/Login/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/Login/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/Login/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/Login/app/.gitignore create mode 100644 fase01/trilha-android/projects/Login/app/build.gradle create mode 100644 fase01/trilha-android/projects/Login/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/Login/app/src/androidTest/java/br/com/fiap/login/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/Login/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/java/br/com/fiap/login/MainActivity.kt create mode 100644 fase01/trilha-android/projects/Login/app/src/main/java/br/com/fiap/login/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/Login/app/src/main/java/br/com/fiap/login/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/Login/app/src/main/java/br/com/fiap/login/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/values-pt/strings.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/Login/app/src/test/java/br/com/fiap/login/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/Login/build.gradle create mode 100644 fase01/trilha-android/projects/Login/gradle.properties create mode 100644 fase01/trilha-android/projects/Login/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/Login/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/Login/gradlew create mode 100644 fase01/trilha-android/projects/Login/gradlew.bat create mode 100644 fase01/trilha-android/projects/Login/settings.gradle create mode 100644 fase01/trilha-android/projects/MeusContatos/.gitignore create mode 100644 fase01/trilha-android/projects/MeusContatos/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/MeusContatos/.idea/.name create mode 100644 fase01/trilha-android/projects/MeusContatos/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/.gitignore create mode 100644 fase01/trilha-android/projects/MeusContatos/app/build.gradle create mode 100644 fase01/trilha-android/projects/MeusContatos/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/androidTest/java/br/com/fiap/meuscontatos/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/MainActivity.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/database/dao/ContatoDAO.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/database/dao/ContatoDb.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/database/repository/ContatoRepository.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/model/Contato.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/MeusContatos/app/src/test/java/br/com/fiap/meuscontatos/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/MeusContatos/build.gradle create mode 100644 fase01/trilha-android/projects/MeusContatos/gradle.properties create mode 100644 fase01/trilha-android/projects/MeusContatos/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/MeusContatos/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/MeusContatos/gradlew create mode 100644 fase01/trilha-android/projects/MeusContatos/gradlew.bat create mode 100644 fase01/trilha-android/projects/MeusContatos/settings.gradle create mode 100644 fase01/trilha-android/projects/Minhaidade/.gitignore create mode 100644 fase01/trilha-android/projects/Minhaidade/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/Minhaidade/.idea/.name create mode 100644 fase01/trilha-android/projects/Minhaidade/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/.gitignore create mode 100644 fase01/trilha-android/projects/Minhaidade/app/build.gradle create mode 100644 fase01/trilha-android/projects/Minhaidade/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/androidTest/java/br/com/fiap/minhaidade/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/java/br/com/fiap/minhaidade/MainActivity.kt create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/java/br/com/fiap/minhaidade/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/java/br/com/fiap/minhaidade/ui/theme/Shape.kt create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/java/br/com/fiap/minhaidade/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/java/br/com/fiap/minhaidade/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/Minhaidade/app/src/test/java/br/com/fiap/minhaidade/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/Minhaidade/build.gradle create mode 100644 fase01/trilha-android/projects/Minhaidade/gradle.properties create mode 100644 fase01/trilha-android/projects/Minhaidade/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/Minhaidade/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/Minhaidade/gradlew create mode 100644 fase01/trilha-android/projects/Minhaidade/gradlew.bat create mode 100644 fase01/trilha-android/projects/Minhaidade/settings.gradle create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.gitignore create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.idea/.name create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.idea/inspectionProfiles/Project_Default.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/.gitignore create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/build.gradle create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/androidTest/java/br/com/fiap/navegandoentretelas/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/MainActivity.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/LoginScreen.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/MenuScreen.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PedidosScreen.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PerfilScreen.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/app/src/test/java/br/com/fiap/navegandoentretelas/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/build.gradle create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/gradle.properties create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/gradlew create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/gradlew.bat create mode 100644 fase01/trilha-android/projects/Navegandoentretelas/settings.gradle create mode 100644 fase01/trilha-android/projects/VideoPlayer/.gitignore create mode 100644 fase01/trilha-android/projects/VideoPlayer/.idea/.gitignore create mode 100644 fase01/trilha-android/projects/VideoPlayer/.idea/.name create mode 100644 fase01/trilha-android/projects/VideoPlayer/.idea/compiler.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/.idea/gradle.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/.idea/kotlinc.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/.idea/misc.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/.gitignore create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/build.gradle create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/proguard-rules.pro create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/androidTest/java/br/com/fiap/videoplayer/ExampleInstrumentedTest.kt create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/AndroidManifest.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/java/br/com/fiap/videoplayer/MainActivity.kt create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/java/br/com/fiap/videoplayer/ui/theme/Color.kt create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/java/br/com/fiap/videoplayer/ui/theme/Theme.kt create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/java/br/com/fiap/videoplayer/ui/theme/Type.kt create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/values/colors.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/values/strings.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/values/themes.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/xml/backup_rules.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 fase01/trilha-android/projects/VideoPlayer/app/src/test/java/br/com/fiap/videoplayer/ExampleUnitTest.kt create mode 100644 fase01/trilha-android/projects/VideoPlayer/build.gradle create mode 100644 fase01/trilha-android/projects/VideoPlayer/gradle.properties create mode 100644 fase01/trilha-android/projects/VideoPlayer/gradle/wrapper/gradle-wrapper.jar create mode 100644 fase01/trilha-android/projects/VideoPlayer/gradle/wrapper/gradle-wrapper.properties create mode 100644 fase01/trilha-android/projects/VideoPlayer/gradlew create mode 100644 fase01/trilha-android/projects/VideoPlayer/gradlew.bat create mode 100644 fase01/trilha-android/projects/VideoPlayer/settings.gradle create mode 100644 fase02/capitulo01.md create mode 100644 fase02/capitulo02.md create mode 100644 fase02/capitulo03.md create mode 100644 fase02/capitulo04.md create mode 100644 fase02/capitulo05.md create mode 100644 fase02/capitulo06.md create mode 100644 fase02/capitulo07.md create mode 100644 fase02/capitulo08.md create mode 100644 fase02/capitulo09.md create mode 100644 fase02/capitulo10.md create mode 100644 fase02/capitulo11.md create mode 100644 fase02/capitulo12.md create mode 100644 fase02/images/jornada-e-percepcoes.png create mode 100644 fase02/images/touchpoints.png create mode 100644 fase03/assets/adaptacao-modelo-de-negocio-ao-bmc.png create mode 100644 fase03/assets/ajustes-interface-userdetails.png create mode 100644 fase03/assets/aliviadores-de-dores.png create mode 100644 fase03/assets/canais.png create mode 100644 fase03/assets/canvas-modelo-do-negocio.png create mode 100644 fase03/assets/canvas-proposta-de-valor.png create mode 100644 fase03/assets/ciclo-de-vida-entidade.png create mode 100644 fase03/assets/custos.png create mode 100644 fase03/assets/dores-do-cliente.png create mode 100644 fase03/assets/exemplo-diagrama-logico.png create mode 100644 fase03/assets/ganhos-e-geradores.png create mode 100644 fase03/assets/lado-direito-canvas.png create mode 100644 fase03/assets/lado-esquerdo-canvas.png create mode 100644 fase03/assets/logica-canvas-proposta-de-valor.png create mode 100644 fase03/assets/mapa-de-empatia.png create mode 100644 fase03/assets/metodos-interface-userdetails.png create mode 100644 fase03/assets/parceiros-e-atividades.png create mode 100644 fase03/assets/produtos-e-servicos-gerando-valor.png create mode 100644 fase03/assets/produtos-e-servicos.png create mode 100644 fase03/assets/receitas.png create mode 100644 fase03/assets/recursos-chave.png create mode 100644 fase03/assets/relacionamento-com-clientes.png create mode 100644 fase03/assets/tarefas-do-cliente.png create mode 100644 fase03/capitulo01.md create mode 100644 fase03/capitulo02.md create mode 100644 fase03/capitulo03.md create mode 100644 fase03/capitulo04.md create mode 100644 fase03/capitulo05.md create mode 100644 fase03/capitulo06.md create mode 100644 fase03/capitulo07.md create mode 100644 fase03/capitulo08.md create mode 100644 fase03/capitulo09.md create mode 100644 fase03/capitulo10.md create mode 100644 fase03/projects/calorias/.gitignore create mode 100644 fase03/projects/calorias/.mvn/wrapper/maven-wrapper.properties create mode 100644 fase03/projects/calorias/mvnw create mode 100644 fase03/projects/calorias/mvnw.cmd create mode 100644 fase03/projects/calorias/pom.xml create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/CaloriasApplication.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/advice/ApplicationExceptionHandler.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/config/security/SecurityConfig.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/config/security/TokenService.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/config/security/VerificarToken.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/controller/AlimentoController.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/controller/AuthController.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/controller/HelloWorldController.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/controller/UsuarioController.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/dto/AlimentoCadastroDTO.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/dto/AlimentoExibicaoDTO.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/dto/LoginDTO.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/dto/TokenDTO.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/dto/UsuarioCadastroDTO.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/dto/UsuarioExibicaoDTO.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/exceptions/UsuarioNaoEncontradoException.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/model/Alimento.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/model/Usuario.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/model/UsuarioRole.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/repository/AlimentoRepository.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/repository/UsuarioRepository.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/service/AlimentoService.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/service/AuthorizationService.java create mode 100644 fase03/projects/calorias/src/main/java/br/com/fiap/calorias/service/UsuarioService.java create mode 100644 fase03/projects/calorias/src/main/resources/application.properties create mode 100644 fase03/projects/calorias/src/main/resources/db/migration/V1__create-table-tbl_usuarios-seq-usuarios.sql create mode 100644 fase03/projects/calorias/src/main/resources/db/migration/V2__create-table-tbl_alimentos-seq-alimentos.sql create mode 100644 fase03/projects/calorias/src/main/resources/db/migration/V3__modify-table-tbl_alimentos-add-field-role.sql create mode 100644 fase03/projects/calorias/src/main/resources/db/migration/V4__modify-table-tbl_alimentos-modify-field-senha.sql create mode 100644 fase03/projects/calorias/src/test/java/br/com/fiap/calorias/CaloriasApplicationTests.java create mode 100644 fase03/projects/games/.classpath create mode 100644 fase03/projects/games/.project create mode 100644 fase03/projects/games/.settings/org.eclipse.jdt.apt.core.prefs create mode 100644 fase03/projects/games/.settings/org.eclipse.jdt.core.prefs create mode 100644 fase03/projects/games/.settings/org.eclipse.m2e.core.prefs create mode 100644 fase03/projects/games/pom.xml create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/Main.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/dao/CategoriaDao.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/dao/GameDao.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/dao/package-info.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/model/Categoria.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/model/Game.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/model/package-info.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/package-info.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/utils/Conexao.java create mode 100644 fase03/projects/games/src/main/java/br/com/fiap/utils/package-info.java create mode 100644 fase03/projects/games/src/main/resources/META-INF/persistence.xml create mode 100644 fase03/projects/games/target/classes/META-INF/persistence.xml create mode 100644 fase03/projects/games/target/classes/br/com/fiap/Main.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/dao/CategoriaDao.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/dao/GameDao.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/dao/package-info.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/model/Categoria.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/model/Game.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/model/package-info.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/package-info.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/utils/Conexao.class create mode 100644 fase03/projects/games/target/classes/br/com/fiap/utils/package-info.class create mode 100644 fase04/capitulo01.md create mode 100644 fase04/capitulo02.md create mode 100644 fase04/capitulo03.md create mode 100644 fase04/capitulo04.md create mode 100644 fase04/capitulo05.md create mode 100644 fase04/capitulo06.md create mode 100644 fase04/capitulo07.md create mode 100644 fase04/capitulo08.md create mode 100644 fase04/images/estado-entidades-ef.png create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.dockerignore create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/DesignTimeBuild/.dtbcache.v2 create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/FileContentIndex/030607f5-a89d-437d-a284-4b860e897e7d.vsidx create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/FileContentIndex/053dfb04-8fa6-442a-9b53-8e50eec992d5.vsidx create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/FileContentIndex/4bbf8d62-a726-4f85-b25f-d47d282a67bb.vsidx create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/FileContentIndex/876d79bf-b9ed-4c8b-bda4-692dd75671e4.vsidx create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/FileContentIndex/abff8236-1e96-46aa-80ea-025efa9f5c8d.vsidx create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/FileContentIndex/f303639d-6374-4191-aa54-fdc19ad1dd7a.vsidx create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/v17/.futdcache.v2 create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/v17/.suo create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/Fiap.Web.Alunos/v17/DocumentLayout.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/ProjectEvaluation/fiap.web.alunos.metadata.v8.bin create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/ProjectEvaluation/fiap.web.alunos.projects.v8.bin create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/.vs/ProjectEvaluation/fiap.web.alunos.strings.v8.bin create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos.sln create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Controllers/ClienteController.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Controllers/HomeController.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Dockerfile create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Fiap.Web.Alunos.csproj create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Fiap.Web.Alunos.csproj.user create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Models/ClienteModel.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Models/ErrorViewModel.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Models/RepresentanteModel.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Program.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Properties/launchSettings.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Cliente/Create.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Cliente/Detail.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Cliente/Edit.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Cliente/Index.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Home/Index.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Home/Privacy.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Shared/Error.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Shared/_Layout.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Shared/_Layout.cshtml.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/Shared/_ValidationScriptsPartial.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/_ViewImports.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/Views/_ViewStart.cshtml create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/appsettings.Development.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/appsettings.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/Fiap.Web.Alunos.deps.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/Fiap.Web.Alunos.dll create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/Fiap.Web.Alunos.exe create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/Fiap.Web.Alunos.pdb create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/Fiap.Web.Alunos.runtimeconfig.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/Fiap.Web.Alunos.staticwebassets.runtime.CT.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/Fiap.Web.Alunos.staticwebassets.runtime.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/appsettings.Development.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/bin/Debug/net8.0/appsettings.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/AbsoluteOutputAssemblyPath.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/AdditionalProbingPaths.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ContainerCreationResult.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ContainerDevelopmentMode.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ContainerId.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ContainerName.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ContainerOperatingSystemFlavor.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ContainerRunContext.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ContainerRuntimeID.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/DebuggeeArguments.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/DebuggeeKillProcessCommand.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/DebuggeeProgram.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/DebuggeeWorkingDirectory.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/DistrolessHelperWasMapped.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/FastModeProjectMountDirectory.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ImageBuildContext.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/ImageId.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/LaunchedImageId.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/OperatingSystemName.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/TargetFramework.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/VolumeMappings.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/VolumeMappings2.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Container/VsDbgScript.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.AssemblyInfo.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.AssemblyInfoInputs.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.GlobalUsings.g.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.MvcApplicationPartsAssemblyInfo.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.RazorAssemblyInfo.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.RazorAssemblyInfo.cs create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.assets.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.csproj.BuildWithSkipAnalyzers create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.csproj.CoreCompileInputs.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.csproj.FileListAbsolute.txt create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.dll create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.genruntimeconfig.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/Fiap.Web.Alunos.pdb create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/apphost.exe create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/project.razor.vs.bin create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/ref/Fiap.Web.Alunos.dll create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/refint/Fiap.Web.Alunos.dll create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/scopedcss/Views/Shared/_Layout.cshtml.rz.scp.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/scopedcss/bundle/Fiap.Web.Alunos.styles.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/scopedcss/projectbundle/Fiap.Web.Alunos.bundle.scp.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/staticwebassets.build.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/staticwebassets.development.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/staticwebassets.pack.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/staticwebassets/msbuild.Fiap.Web.Alunos.Microsoft.AspNetCore.StaticWebAssets.props create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/staticwebassets/msbuild.build.Fiap.Web.Alunos.props create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.Fiap.Web.Alunos.props create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.Fiap.Web.Alunos.props create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Fiap.Web.Alunos.csproj.nuget.dgspec.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Fiap.Web.Alunos.csproj.nuget.g.props create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/Fiap.Web.Alunos.csproj.nuget.g.targets create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/project.assets.json create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/obj/project.nuget.cache create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/css/site.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/favicon.ico create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/js/site.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/LICENSE create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation/LICENSE.md create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation/dist/additional-methods.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation/dist/additional-methods.min.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation/dist/jquery.validate.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery/LICENSE.txt create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery/dist/jquery.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery/dist/jquery.min.js create mode 100644 fase04/projects/ExemploCap04/Fiap.Web.Alunos/Fiap.Web.Alunos/wwwroot/lib/jquery/dist/jquery.min.map create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-01-tradicional/.gitattributes create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-01-tradicional/.gitignore create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-01-tradicional/Fiap.Console.IocSample.sln create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-01-tradicional/Fiap.Console.IocSample/Fiap.Console.IocSample.csproj create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-01-tradicional/Fiap.Console.IocSample/Mensageiro.cs create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-01-tradicional/Fiap.Console.IocSample/Program.cs create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/.gitattributes create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/.gitignore create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/Fiap.Console.IocSample.sln create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/Fiap.Console.IocSample/EnviadorMensagem.cs create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/Fiap.Console.IocSample/Fiap.Console.IocSample.csproj create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/Fiap.Console.IocSample/IMensageiro.cs create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/Fiap.Console.IocSample/Mensageiro.cs create mode 100644 fase04/projects/ExemplosCap06/Fiap.Console.IocSample-02-ioc/Fiap.Console.IocSample/Program.cs create mode 100644 fase04/projects/HelloWorld/.vs/HelloWorld/DesignTimeBuild/.dtbcache.v2 create mode 100644 fase04/projects/HelloWorld/.vs/HelloWorld/FileContentIndex/970927dd-c6c6-4dad-9ccb-2fab54dee5c2.vsidx create mode 100644 fase04/projects/HelloWorld/.vs/HelloWorld/v17/.futdcache.v2 create mode 100644 fase04/projects/HelloWorld/.vs/HelloWorld/v17/.suo create mode 100644 fase04/projects/HelloWorld/.vs/HelloWorld/v17/DocumentLayout.json create mode 100644 fase04/projects/HelloWorld/.vs/ProjectEvaluation/helloworld.metadata.v8.bin create mode 100644 fase04/projects/HelloWorld/.vs/ProjectEvaluation/helloworld.projects.v8.bin create mode 100644 fase04/projects/HelloWorld/.vs/ProjectEvaluation/helloworld.strings.v8.bin create mode 100644 fase04/projects/HelloWorld/HelloWorld.sln create mode 100644 fase04/projects/HelloWorld/HelloWorld/HelloWorld.csproj create mode 100644 fase04/projects/HelloWorld/HelloWorld/Program.cs create mode 100644 fase04/projects/HelloWorld/HelloWorld/bin/Debug/net8.0/HelloWorld.deps.json create mode 100644 fase04/projects/HelloWorld/HelloWorld/bin/Debug/net8.0/HelloWorld.dll create mode 100644 fase04/projects/HelloWorld/HelloWorld/bin/Debug/net8.0/HelloWorld.exe create mode 100644 fase04/projects/HelloWorld/HelloWorld/bin/Debug/net8.0/HelloWorld.pdb create mode 100644 fase04/projects/HelloWorld/HelloWorld/bin/Debug/net8.0/HelloWorld.runtimeconfig.json create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.AssemblyInfo.cs create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.AssemblyInfoInputs.cache create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.GlobalUsings.g.cs create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.assets.cache create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.csproj.BuildWithSkipAnalyzers create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.csproj.CoreCompileInputs.cache create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.csproj.FileListAbsolute.txt create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.dll create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.genruntimeconfig.cache create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/HelloWorld.pdb create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/apphost.exe create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/ref/HelloWorld.dll create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/Debug/net8.0/refint/HelloWorld.dll create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/HelloWorld.csproj.nuget.dgspec.json create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/HelloWorld.csproj.nuget.g.props create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/HelloWorld.csproj.nuget.g.targets create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/project.assets.json create mode 100644 fase04/projects/HelloWorld/HelloWorld/obj/project.nuget.cache create mode 100644 fase05/assets/2TDS - Template - Atividade - Viabilidade Financeira.xlsx_RevFinal.xlsx create mode 100644 fase05/assets/Plataforma_2TDS - Fase 05 - Template - Atividade - Validando a solucao.docx_RevFinal.docx create mode 100644 fase05/capitulo01.md create mode 100644 fase05/capitulo02.md create mode 100644 fase05/capitulo03.md create mode 100644 fase05/capitulo04.md create mode 100644 fase05/capitulo05.md create mode 100644 fase05/capitulo06.md create mode 100644 fase05/capitulo07.md create mode 100644 fase05/capitulo08.md create mode 100644 fase05/capitulo09.md create mode 100644 fase05/capitulo10.md create mode 100644 fase05/images/cap02-transacao.png create mode 100644 fase05/images/cap03-arquitetura-mongodb.png create mode 100644 fase05/images/cap05-tipos-de-analise.png create mode 100644 fase05/images/cap09-earlyevangelists.png create mode 100644 fase06/assets/webapp.png create mode 100644 fase06/capitulo01.md create mode 100644 fase06/capitulo02.md create mode 100644 fase06/capitulo03.md create mode 100644 fase06/projects/displaycsv-main/.github/workflows/main_displaycsv.yml create mode 100644 fase06/projects/displaycsv-main/README.md create mode 100644 fase06/projects/displaycsv-main/app.py create mode 100644 fase06/projects/displaycsv-main/requirements.txt create mode 100644 fase06/projects/displaycsv-main/templates/display.html create mode 100644 fase06/projects/displaycsv-main/templates/index.html create mode 100644 readme.md diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8b043869b224392fc8dcb88e05f926a157a98aac GIT binary patch literal 143660 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

lHe#gb?+8VMvMV{r*O8E}k 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 fazp{s;m%WMArrE@9klK|2Af`4P3o; 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 + +

FASE 1 - APP WORLD

+

Capítulo 01: O show tem que continuar!

+ + +
+

1. O SHOW TEM QUE CONTINUAR

+
+ +- neste semestre serão abordados: desenvolvimento de aplicativos, Inteligência Artificial, Internet das Coisas, Business Inteligence, Big Data e muito mais! +- neste segundo ano, haverá mais liberdade para definir a área de atuação e o que, de fato, o projeto trata, pois o objetivo é desenvolver as habilidades ligadas ao empreendedorismo. + +## 1.1 As sete fases do ano 2 + +- haverá liberdade para criar o projeto, mas dois requisitos deverão ser cumpridos: + - problema e solução deverão estar alinhados aos conceitos de Smart Cities (cidades inteligentes). + - empregar as tecnologias abordadas neste segundo ano de curso. + +- fases: + +### 1) "App World": +- será abordado o desenvolvimento nativo na plataforma mais utilizada no mundo, o Android, e seu concorrente, o iOS. +- como são 'mundos de desenvolvimento' muito diferentes, haverá a oportunidade de criar aplicativos para Android utilizando a linguagem Kotlin e aplicativos para iOS com o Swift, linguagem lançada pela Apple em 2014. +- será possível escolher, no projeto, qualquer um destes dois caminhos. + +### 2) "Database Programming": +- há diversos dados estruturados que podem e devem ser utilizados para melhorar o processo de tomada de decisão. +- saber interpretar os dados de maneira inteligente, identificando padrões, cenários e tendências. + +### 3) "Frameworks Java": +- tecnologias essenciais do framework Java, Spring Boot e JPA Hibernate. +- adicionalmente, serão abordadas características distintivas e benefícios oferecidos por essas tecnologias no desenvolvimento de aplicações robustas. + +### 4) "Plataformas Microsoft .NET": +- falaremos de uma das formas mais empregadas na comunicação entre cliente e servidor (seja este cliente um sistema web, seja um app de smartphone): os webservices! + +### 5) "Garantia de Qualidade (QA) & Teste": +- princípios fundamentais da QA, definindo padrões e procedimentos para assegurar a qualidade em cada estágio do desenvolvimento. +- explorar conceitos, desde testes unitários até os de aceitação do usuário, capacitando-se a criar sistemas robustos. +- automação de testes, habilidade crítica para eficiência e detecção rápida de possíveis problemas. + +### 6) "DevOps Tools & Cloud Computing": +- compreender ferramentas DevOps que impulsionam a colaboração eficaz entre desenvolvimento e operações. +-integração contínua, entrega contínua e automação, buscando criar pipelines eficientes. +- adentraremos o universo da Cloud Computing, explorando plataformas como AWS, Azure ou Google Cloud. +- benefícios da escalabilidade, flexibilidade e confiabilidade oferecidos pela nuvem. + +### 7) "Internet das Coisas e Inteligência Artificial". + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/capitulo02.md b/fase01/capitulo02.md new file mode 100644 index 0000000..7968d3e --- /dev/null +++ b/fase01/capitulo02.md @@ -0,0 +1,233 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 02: Cidades inteligentes. 🏙️

+
+ +
+

1. CIDADES INTELIGENTES

+
+ +- `conceito` de Cidade Inteligente: + - funciona como um processo para se repensar, moldar e estabelecer trajetos por onde vivemos e circulamos nos espaços urbanos. + - a Cidade Inteligente vem para questionar onde queremos viver neste século XXI e permitir que ainda haja recursos para as próximas gerações. + - viver em um ambiente Smart é muito mais do que ter acesso à tecnologia, é ter consciência da sua participação na cidade. + +> o que pode ser feito, e o que já está sendo feito em várias metrópoles ao redor do mundo? Como a tecnologia pode nos ajudar a viver melhor em cidades superpopulosas e cheias dos problemas que isso acarreta? + +## 1.1 DIMENSÕES NORTEADORAS DAS CIDADES INTELIGENTES + +- todas as cidades têm uma inteligência que lhes é pertinente: podem ser reconhecidas por seu caráter artístico, científico, econômico, tecnológico ou ambiental. + - São Paulo é famosa por sua intensa programação cultural, São Francisco por ser um polo tecnológico e Bangcoc por sua culinária exótica. + +> Chamar uma cidade de "Inteligente" (Smart City) pode ser um pleonasmo, pois "inteligência" é uma condição humana, então todo espaço urbano que tenha pessoas que morem ali já é um local inteligente. + +- a tecnologia, aliada ao espaço urbano, amplifica a experiência urbana e liga as diversas camadas de vivências na cidade. +- essa multiplicidade da cidade permite que diversos níveis de conhecimento sejam explorados. +- portanto, verificaremos, neste capítulo, de que maneira a cidade, aliada às novas possibilidades tecnológicas permitidas pela ubiquidade, à Web 3.0 e à portabilidade dos dispositivos móveis, proporcionou o desenvolvimento da Cidade Inteligente. + +## 1.2 HISTÓRICO DO CONCEITO SMART CITY + +### 1.2.1 Origem do termo Smart City e etimologia da palavra Smart: +- a palavra Smart tem origem no inglês antigo smeart: doloroso, severo, o que causa uma dor profunda, executado com força e vigor. Apenas em 1972 é adicionado o significado para comportar-se como pensado e guiado pela inteligência. +- a palavra "inteligência" ***não*** é considerada sinônimo direto de Smart! Para a tradução em português, Smart está mais próximo de esperto (aquele que está desperto, é perspicaz e sagaz). +- sobre a utilização da palavra Smart pela indústria da Tecnologia da Informação e Comunicação (TIC), o dicionário The American Heritage (2011) denota que indica “a capacidade de fazer ajustes que mostram ser resultados de decisões humanas, principalmente mediados por sensores eletrônicos e computadores”. +- exemplos de utilização dessa palavra: smart machines, smartphones e smartTV. + +### 1.2.2 Menções ao termo "Smart City": +- desde o começo da década de 1990, o termo Smart City já era utilizado, mas foi apenas no começo dos anos 2000 que a consultoria americana O’Reilly Media, em seu manifesto sobre a Web 2.0, menciona o desenvolvimento de cidades com a ajuda de sensores espalhados pelo espaço urbano. +- a primeira menção oficial de Smart City associada à forma como trabalhamos o conceito atualmente ocorreu em 2007 e consta ser do professor austríaco Rudolf Giffinger, da Vienna University of Technology, no primeiro relatório sobre Smart Cities relacionado às cidades de médio porte na União Europeia. + - o professor Giffinger desenvolvia um projeto para medir o impacto do desenvolvimento sustentável e competitivo nas cidades europeias que buscavam integrar soluções tecnológicas ao seu planejamento urbano. + +> dessa forma, o adjetivo Smart não se refere apenas aos pequenos dispositivos que interagem com o cidadão e seu cotidiano, mas passa a ser utilizado em uma escala maior, no caso, para identificar cidades que relacionem a tecnologia à sua estrutura! + +- Giffinger menciona que o termo Smart City, além de especificar a responsabilidade administrativa de um governo municipal com seus cidadãos, tem um papel maior na discussão sobre a tecnologia no cotidiano urbano. + - por exemplo, a logística de uma cidade com novos sistemas de transporte, que, por meio da utilização das TICs, forneçam uma mobilidade que integre segurança, eficiência, sustentabilidade, preocupação em conservar o meio ambiente, redução de energia etc. + +### 1.2.3 Fundamentos para o desenvolvimento de uma Cidade Inteligente, segundo empresas ligadas à Smart Industry, pesquisadores e governantes: + +1. Conexão banda larga à internet. +2. Dispositivos móveis pessoais de baixo custo. +3. Extensos bancos de dados. +4. Sistema robusto de computação em nuvem. + +> Dessa maneira, descreve-se que muito da Cidade Inteligente depende do seu meio para propagar sua inteligência. Ou seja, a inteligência de uma cidade está no seu planejamento e na sua criatividade, enquanto seu lado Smart, ou esperto, seria a forma como se utiliza dessa tecnologia. + +## 1.3 DIMENSÕES NORTEADORAS DAS CIDADES INTELIGENTES + +- para qualificar uma cidade como Smart City, muitas áreas do desenvolvimento urbano devem progredir, como meio ambiente, saúde, trânsito, educação, emprego e tecnologia. +- não há uma comissão que regularize o conceito de Smart City para o mundo; no entanto, os governos que escolhem organizar uma cidade de acordo com esse parâmetro recorrem aos padrões institucionalizados pela União Europeia, pois a Europa é o continente onde surgiram as primeiras cidades que colocaram em pauta esse conceito. +- de acordo com os parâmetros definidos pela União Europeia, seis características são necessárias para uma cidade ser reconhecida como uma Smart City: Smart People, Smart Governance, Smart Environment, Smart Living, Smart Mobility e Smart Economy. + +> Esses parâmetros levam a uma Cidade Inteligente. Isso não significa que será uma cidade perfeita, e sim uma área urbana que, por meio de projetos tecnológicos interligados a políticas públicas, consegue sobreviver a tragédias e amparar seus habitantes. + +> Apesar de as seis áreas que constituem uma Smart City serem horizontais, nenhuma é mais importante que a outra. + +## 1.4 SMART PEOPLE + +- esse parâmetro instiga as lideranças da cidade a incentivar seus cidadãos por meio da educação e do acesso a condições que permitam a qualidade de vida e a criação de ideias que tornem o espaço urbano sustentável e resiliente. +- todos passam a ser agentes do local onde vivem! +- de acordo com a União Europeia, Smart People são pessoas criativas e inovadoras que possibilitam uma sociedade inclusiva, engajada em uma educação de qualidade, que atrai incentivos em Pesquisa e Desenvolvimento (R&D) e centros de inovação. Essas pessoas também possuem um sistema de saúde acessível e de qualidade que, por consequência, possibilita uma alta expectativa de vida com infraestrutura, permitindo aos cidadãos terem uma aposentadoria e uma velhice com segurança e tranquilidade. +- pode-se afirmar que Smart People tem as seguintes características: + - engajada em educação. + - sociedade inclusiva e participativa. + - criatividade que gera oportunidade. + - alta expectativa de vida. + +### 1.4.1 EXEMPLO DE PROJETO PARA SMART PEOPLE: [COMUNIDADE PYLADIES](http://brasil.pyladies.com/) +- para incentivar mulheres e pessoas que são marginalizadas dentro da cultura tech, como indivíduos transgênerose transexuais, muitos grupos estão sendo organizados para conversar e fazer com que a inclusão e a diversidade aconteçam no mercado de trabalho de tecnologia. +- PyLadies foi criado por sete mulheres, para incentivar e ensinar mais mulheres a programar em Python, linguagem de programação de código aberto. +- por meio da educação, incentivo e um grupo seguro para mulheres participarem e aprenderem, PyLadies contribui para que mais pessoas trabalhem com tecnologia. +- é uma referência de como a tecnologia pode integrar as pessoas na sociedade, não apenas no mercado de tecnologia, mas também nas cidades onde a tecnologia é importante para sua estrutura. +- nesse exemplo, as quatro características trabalham juntas: Engajamento em educação; Sociedade inclusiva e participativa; Criatividade que gera oportunidade; impulsionando a Alta expectativa de vida. + +## 2. SMART ECONOMY + +- não é apenas uma cidade com potencial financeiro, mas também com outras características que fomentam essa qualidade. +- a economia para uma Smart City é entendida por meio da presença da inovação, do caráter empreendedor e produtivo da sua mão de obra, assim como por possuir uma força financeira com identidade da cidade que permite ao local uma integração internacional. +- itens que definem uma Smart Economy: + - Espírito de inovação. + - Empreendedorismo. + - Produtividade. + - Flexibilidade no mercado de trabalho. + - Integração internacional. + - Habilidade para transformar. +- quanto mais há uma pluralidade cultural e respeito entre as características individuais, mais a economia é impulsionada. E, por consequência, o espaço urbano se torna mais sustentável e mais resiliente. Quando há uma pluralidade movida pela criatividade na economia, mesmo em momentos de crise, a cidade tem uma estruturapara se renovar e manter o bem-estar dos seus cidadãos. +- exemplos: Singapura e Nova York. + +### 2.1 EXEMPLO DE PROJETO PARA SMART ECONOMY: BANCO COLOMBIANO [NEQUI](https://www.youtube.com/watch?v=UJBR2TVwQy4) +- é um banco criado a partir de uma estrutura digital: todos os serviços foram pensados para serem acessados via celular. +- lançado em 2016, o suporte de infraestrutura é do Bancolombia, mas funciona de forma independente. +- o objetivo é aproximar pessoas que nunca tiveram acesso a um banco e que pensam que o mercado financeiro não faz parte de seu dia a dia. +- todos os processos funcionam pela plataforma do aplicativo, desde a criação da conta, sem a parte burocrática tradicional dos bancos, até o saque de dinheiro, sem a utilização de um cartão. O usuário recebe um código via celular, que ele usa nos caixas eletrônicos para liberar o saque do dinheiro. +- é um forte exemplo de Smart Economy, pois, além de demonstrar as características para ser uma Economia Inteligente, também mostra a ligação entre as Dimensões Norteadoras para uma Smart City, como: Smart People, Smart Economy e Smart Environment. + +## 2.2 SMART ENVIRONMENT + +- preocupação para questões ambientais e sustentáveis dascidades. +- um Smart Environment tem como ponto principal da sua agenda a qualidade do ar, a preservação ecológica e a sustentabilidade na administração dos recursos. +- características: + - Proteção ambiental. + - Administração dos recursos sustentáveis. + - Tornar as condições naturais também uma atração econômica. + - Qualidade do ar. + +### 2.2.1 EXEMPLO DE PROJETO PARA SMART ENVIRONMENT: SONGDO E A COLETA DE LIXO +- Songdo é considerada uma Cidade Ubíqua; pode ser vista como Smart City,por possuir diversas funções realizadas por meio da tecnologia.Entretanto, por ser uma cidade recém-construída, há pontos a serem estudados/melhorados. +- o governo coreano, junto a empresas que investiram US$ 40 bilhões,ajudou a construir essa cidade, que promete ser o polo de tecnologia e finanças da Ásia. +- a partir do investimento do governo em preservar o meio ambiente do local, como o mega projeto de limpeza dos rios da capital Seul, Songdo também tem a preocupação de preservar 40% de sua área verde e todos os prédios construídos devem ter certificação de sustentabilidade. +- todas as construções em Songdo têm lixeiras conectadas à central de coleta de lixo via vácuo. +- a cidade também possui um programa de pontuação para cidadãos que depositam seu lixo de maneira correta nas lixeiras de reciclagem. + +## 2.3 SMART GOVERNANCE + +- definido como uma administração transparente e idônea, que disponibiliza serviços públicos e sociais à população por meio do exercício da política. +- Smart Governance entende que é necessária uma ação integrada entre a participação pública e a privada para o desenvolvimento de projetos urbanos que beneficiem a população. +- características: + - Eficiência e transparência na administração. + - Serviços públicos e com preocupação social. + - Perspectiva e estratégia políticas. + +### 2.3.1 EXEMPLO DE PROJETO PARA SMART GOVERNANCE: A ORGANIZAÇÃO POLÍTICA DE HONG KONG +- para organizar Hong Kong de acordo com a política de governo para uma Smart City, dois fatores foram fundamentais: + 1. Engajar a iniciativa pública em Smart Governance, ou seja, aliar a prática pública com o envolvimento de tecnologias como: social, dispositivos móveis, analíticos e armazenamento em nuvem. + 2. diminuir a taxa de corrupção, fator que foi incentivado pelo ranking da transparência dos governos. +- para isso, a cidade criou sete ações dentro da área de Smart Governance que devem ser executadas a curto, médio e longo prazo (em 5, 10 e mais de 15 anos). +- para melhorar as condições de moradia e trânsito dessa megacidade, bem como organizá-la, um mapa 3D de seu domínio geográfico está em construção: + - até 2025, pretende-se que esse mapa ilustre futuras mudanças dentro das transformações do planejamento urbano, como: rotas úteis de mobilidade urbana, preservação arqueológica e novos lugares que propiciem construções e locais que viabilizem a construção de edifícios integrando cultura, entretenimento e meio ambiente. + - um mapa que forneça também suporte em casos de emergência urbanos e que, a longo prazo, após 2030, permita uma visualização interativa que seja operada e performada pela análisede dados coletados no espaço urbano. +- a instalação de e-governance diminui os processos burocráticos que impactam a liberação da permissão para a transformação do planejamento urbano, como a construção de novos imóveis e reformas em ruas e de locais públicos. +- Hong Kong decidiu implementar uma infraestrutura centralizada de Big Data para desenvolver e executar modelos de análise. + +## 2.4 SMART LIVING + +- abrange não só características habitacionais, mas também interações dos habitantes com o espaço urbano, como oportunidades de lazer e cultura, atrações turísticas, atendimento médico, segurança, educação,condições de moradia para a melhor coesão social. +- características: + - Opções de lazer e culturais. + - Acesso à saúde. + - Segurança. + - Qualidade habitacional. + - Acesso à educação de qualidade. + - Atrações turísticas. + +### 2.4.1 Exemplo de projeto para Smart Living: Portland e o pioneirismo em Comunidade Sustentável +- Portland, no estado do Oregon/EUA , é conhecida como a Floresta do Silício. + - anos antes de a economia local ser impulsionada pelas empresas de tecnologia, havia mais de mil empresas na cidade e a infraestrutura urbana já estava preocupada com a qualidade de vida de seus moradores. + - em 1902, a cidade assinou um tratado para integrar as construções urbanas à preservação das áreas verdes. + - em 2009, um bairro inteiro com 17 quarteirões foi construído para renovar uma antiga área industrial e transformá-la com o selo ambiental LEED (Leadership in Energy and Environmental Design). +- a cidade também é conhecida como “20 minutos”, pois todos os serviços de que um cidadão necessita devem estar a 20 minutos a pé de sua casa. +- até 2035, por meio do projeto “Cidade Saudável Conectada”, a prefeitura quer garantir bairros completos para, pelo menos, 80% da população (disponibilidade de comércio, empregos, educação, unidades de saúde e segurança bem como infraestrutura adequada para mobilidade). + +## 2.5 SMART MOBILITY + +- abrangetoda a questão de mobilidade dentro de uma cidade: é pensar em todos os trajetos que os cidadãos realizam para interagir dentro do espaço urbano. +- define um deslocamento pela cidade que envolva um sistema de transporte público de qualidade para a população, garantia à acessibilidade e à infraestrutura para poder circular pelo espaço urbano e sustentabilidade no sistema de transporte. +- características: + - Sistema de transporte público acessível e de qualidade. + - Acessibilidade. + - Infraestrutura baseada em Tecnologia da Informação e Comunicação. + - Sustentabilidade no sistema de transporte. + +### 2.6.1 EXEMPLO DE PROJETO PARA SMART MOBILITY: [IMPLEMENTAÇÃO DE TELEFÉRICO](https://youtu.be/AGHZLG9tMFM) +- a partir de 2004, Medellín inaugurou mais essa forma de deslocamento para a população e passou a ser um exemplo mundial de mobilidade, sustentabilidade e inclusão. + +## 3. EXEMPLOS DE CIDADES INTELIGENTES + +### a) Singapura – Sudeste Asiático +- [Singapore Sports Hub](https://www.youtube.com/watch?v=RohhBhhG6Hw). +- Gardens by the Bay. + +### b) Medellín, Colômbia – América do Sul +- organizou o planejamento urbano para uma Cidade Inteligente em quatro bairros de inovação: + - São Pedro: eficiência energética, informação e comunicação. + - Sevilla: moradia e saúde. + - Chagualo: produção científica e tecnológica, cultura e lazer. + - Jesús Nazareno: atividades educativas e biotecnológicas. +- no meio desses quatro bairros, fica uma das áreas mais pobres da cidade e é onde está instalada a Ruta N: agência da prefeitura que coordena os programas de tecnologia e inovação. + +### c) Melbourne, Austrália – Oceania +- um novo plano administrativo dos imóveis da região e um plano de mobilidade. +- projetos: + - City of Melbourne Maps. + - Urban Forest Visual (preservar área verde). + - Pedestrian Monitoring. + +## 3.1 CENÁRIO BRASILEIRO + +### 3.1.1 RIO DE JANEIRO: RENOVAÇÃO DO PORTO MARAVILHA E CENTRO DE OPERAÇÕES RIO +- projetos: + - Centro de Operações Rio (COR) e + - Renovação do Porto Maravilha. + +### 3.1.2 BELO HORIZONTE – MINAS GERAIS +- MG app: + - três pilares: serviços, informação e engajamento. + - pelo aplicativo, o governo quer se aproximar dos cidadãos por meio de consultas populares, notificá-los a respeito de serviços públicos e conhecer o perfil dos usuários. + - o governo pretende atualizar o app a cada quatro meses e fornecer serviços que atendam ao cidadão e diminuam o processo burocrático. + +### 3.1.3 PORTO ALEGRE – RIO GRANDE DO SUL +- projeto #POAdigital: + - núcleo de comunicação, criatividade e empreendedorismo ligado ao gabinete do prefeito. + - impulsiona integração de secretarias, empresas, aceleradoras, universidades e startups, o que estimulaa adoção de iniciativas inovadoras. + +## 4. LOCAIS DE PESQUISA SOBRE CIDADES INTELIGENTES: + +### a) Brasil: +- [Porto Digital em Recife](http://www.portodigital.org/home). +### b) Mundo: +- [MIT Senseable LAB](http://senseable.mit.edu/). +- [The Programmable City Lab](http://progcity.maynoothuniversity.ie/). +- [Stanford Business School – Cliff Thomas: The Rise of Smart City](https://www.youtube.com/watch?v=z4UbN_YGwaw). +- [BAU Design College em Barcelona](https://www.masterstudies.com/Master-in-Smart-Cities/Spain/Design-Bau/). + +## 5. CONCLUSÃO + +- a especulação imobiliária, o fluxo de imigrantes, a explosão das megalópoles, a escassez de recursos e outros temas colocam em pauta a situação das cidades, mas principalmente o cidadão que vive nela +- para ser inteligente, uma cidade deve ressignificar a participação da população em suas leis e em seus projetos, é aquela em que seus líderes permitem o acesso da população às informações de governo, a seus dados e a seus gastos. É a cidade onde a desigualdade social é diminuída, é menos massacrante e realmente proporciona oportunidades a todos os seus cidadãos, e não ameaças; é o local onde a sua cultura é valorizada, mas sem sufocar as culturas trazidas pelos novos fluxos de migração. +- a Cidade Inteligente coloca em destaque a educação para estimular a colaboração ea criatividade, de forma que o empreendedorismo possa propor novos caminhos para a economia. +- para ser resiliente, a Cidade Inteligente conhece suas dificuldades e problemas; é uma cidade que integra a participação popular e apoia novos projetos. +- O que caminha para ser uma Cidade Inteligente é feito por humanos, para humanos, uma humanização do espaço urbano, e a tecnologia funciona como uma ferramenta, um megafone para despertar essa discussão. + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/capitulo03.md b/fase01/capitulo03.md new file mode 100644 index 0000000..e8759a6 --- /dev/null +++ b/fase01/capitulo03.md @@ -0,0 +1,141 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 03: Um mundo de oportunidades. 🌎

+
+ +
+

1. UM MUNDO DE OPORTUNIDADES

+
+ +## 1.1 O que é o Startup One? + +- é um programa que tem como objetivo estimular a criação de um projeto inovador, ou seja, transformar um problema em uma solução, uma oportunidade de negócio em um projeto de Startup que seja de alto impacto, alto grau de transformação e crescimento exponencial. + +## 1.2 Por que Startup One? + +- neste novo mundo, novas habilidades são necessárias (chamadas `habilidades do século XXI`, indicadas pelo Fórum Econômico Mundial). +- na figura abaixo, em roxo, estão os conhecimentos-base adquiridos tradicionalmente nas escolas; em amarelo e em azul, são aqueles necessários para o século XXI. + +
+
+Habilidades do século XXI. +
+ +- o StartupOne é o programa da FIAP que o estimula a desenvolver essas habilidades na prática, por meio da criação de uma Startup e, assim,trazer uma experiência de inovação. + +## 1.3 Mindset empreendedor + +- empreender é uma atividade que te leva a enfrentar desafios complexos, riscos e incertezas. +- **empreendedorismo inovador**: universo do qual as startups fazem parte, trata-se de uma forma de pensar e agir, buscando aproveitar as oportunidades criadas pelas novas tecnologias, chamada de `mindset de startup`! + +### 1.3.1 Cultura de Startup + +- essa forma de pensar e agir está cada vez mais comum, seja para quem quer fundar um negócio inovador como uma startup, seja para intraempreendedores. +- esse será o novo padrão de excelência do mercado de trabalho. +- algumas características cada vez mais comuns, serão: + +### a) Adaptabilidade: +- para projetos, iniciativas e abordagens diferentes. +- o mercado tem se tornado imprevisível, e temos tido desafios imensos, que impactam toda a economia global. +- a habilidade de se adaptar rapidamente nunca foi tão bem-vinda, embora ela seja fruto de uma visão orgânica de gestão, que enxerga as instituições como organismos vivos. + +### b) Flexibilidade: +- seja no formato de trabalho remoto, ou as ideias sobre equilibrar vida pessoal com o trabalho, na busca da qualidade de vida. +- considerado na busca de aumento de desempenho, visto que pessoas mais satisfeitas entregam mais resultado! + +### c) Erro como aprendizado: +- é necessário ter um ambiente para realizar experimentações, o que implica em admitir que nem sempre o que foi planejado será executado conforme o esperado. +- ao realizar alguns processos, podemos aprender com os erros que aparecerão durante os experimentos e assim será possível controlá-los ou até mesmo evitá-los. + +### d) Menos hierarquia e mais autonomia: +- modelos mais horizontais e descentralizados: é um modelo que entrega resultado, seja em receita, seja em engajamento. +- pessoas com mais autonomia para tomar decisão, desenvolvem senso de pertencimento, e por consequência, maior comprometimento. +- a autonomia é uma moeda de troca para aumentar a responsabilidade de todos! + +### e) Otimização de recursos: +- funcionários das empresas de modelo tradicional não têm incentivos para tratar os recursos com a mesma atenção que um empreendedor de uma startup trata, seja pela escassez desse recurso para as startups, seja pelo que chamamos de “pensamento de dono”. +- tendo funcionários que pensam como dono e desejam avançar, os recursos são otimizados, o que favorece tanto as empresas quanto os colaboradores, já que novas formas de recompensas podem ser desenvolvidas, tornando o reconhecimento mais visível. +- assim, a empresa ganha agilidade e saúde financeira, e os profissionais ganham reconhecimento, autonomia, aprendizado e valorização no mercado como um todo. + +## 1.4 Como vai funcionar? + +- durante todo o ano, em todas as fases do curso, serão apresentados conteúdos relacionados à inovação e ao modelo Startup, de maneira progressiva, abordando inicialmente toda a análise do problema sob suas diferentes vertentes e, depois, a análise da solução, como definição e modelos de negócio e prototipação. +- em adição aos conteúdos, as atividades das fases estarão relacionadas ao tema do seu projeto Startup One +- durante o ano, o aluno vai aprender na prática: + - Identificar oportunidades. + - Validar hipóteses do problema. + - Desenhar propostas de valor e modelos de negócio com o Canvas. + - Prototipar. + - Validar hipóteses da sua solução. + - Analisar a viabilidade financeira do seu projeto. + - Apresentar o projeto, através do Pitch. + +
+
+Fluxo do Startup One. +
+ +## 1.5 Premiação + +- as startups que chegarem mais próximas de um negócio e tiverem maior nível de maturidade, irão participar de uma competição, fazendo um pitch para uma banca de investidores, aceleradoras e hubs de inovação de grandes empresas. +- a Startup vencedora ganhará uma extensão internacional, gratuita, na Babson College, em Boston/EUA. + +## 1.6 Conheçao seu tutor + +- foram convidados tutores de mercado para acompanhar e ajudar no projeto das Startups, trazendo experiência de mercado, no segmento de tecnologia. + +## 1.7 Perguntas frequentes + +### a) A ideia é simular a criação de uma Startup ou realmente criar uma? +- a ideia é realmente criar uma Startup. +- espera-se que o aluno chegue até a etapa de prototipação, junto com a respectiva validação, ou seja, a etapa pré-operacional da Startup. +- caso ultrapasse essa etapa, haverá ainda mais chances de se destacar na competição. + +### b) Como proteger a minha ideia? +- no mundo das Startups, não pensamos em proteger ideias, e sim compartilhá-las para validar ainda mais o escopo e a viabilidade delas. + +### c) Teremos contato com os investidores? +- caso a Startup se destaque, ela será selecionada para fazer um pitch para uma banca de investidores, aceleradoras e hubsvde inovação, ou seja,divulgar a Startup para o mercado. + +### d) Posso mudar minha ideia durante o ano? +- sim, pois com o amadurecimento das análises de negócio, é natural que ocorram algumas mudanças, tanto na ideia quanto no modelo de negócio. + +### e) Qual a quantidade máxima de membros do grupo? +- o número máximo de membros do grupo é 5, podendo fazer sozinho ou com até 5 pessoas. + +### f) Posso trabalhar com mais de uma ideia ao mesmo tempo? +- sim, mas sugere-e que tente verificar qual oportunidade de negócio é a mais promissora e tente seguir nessa direção, pois o tempo de dedicação para uma Startup é bem grande, e para mais de uma, seria ainda maior. + +### g) Posso mudar meu grupo? +- sim, a qualquer momento. + +### h) O curso naBabsonCollege, para o vencedor do Startup One, será gratuito? +- sim, não só o curso, mas também a hospedagem, as passagens aéreas e a estadia para todos os membros do grupo, durante o período do curso. + +### i) Como me destacar no Startup One? +- "validação de hipóteses" é a resposta para aumentar a maturidade da Startup e transformar um grande problema em um grande negócio. + +### j) Quais são os critérios de avaliação da competição do Startup One? +- são as premissas do modelo Startup, como: proposta de valor, diferencial competitivo, potencial de crescimento e escalabilidade, impacto e transformação. + +### k) A Startup precisa estar associada ao tema do meu curso? +- não precisa necessariamente estar associada ao tema do curso, mas caso esteja, a experiência e o aprendizado serão ainda maiores. + +### l) De quem é a propriedade intelectual da Startup desenvolvida? +- 100% do aluno. +- a FIAP não tem qualquer participação societária ou propriedade intelectual sobre a Startup e o trabalho desenvolvido. + +### m) Posso formar um grupo entre alunos do FIAP ON e da graduação presencial? +- não, pois as competições do Startup One são distintas + +### n) O Startup One é obrigatório? +- a competição do Startup One não é obrigatória, já as atividades existentes em cada fase, caso estejam relacionados ao Startup One, são. + +### o) Quais projetos são recorrentes no Startup One? Quais temas devemos evitar para nos diferenciar? +- geralmente, os temas mais recorrentes do Startup One são relacionados ao nosso cotidiano, como: casamento, pet, guincho, baladas, restaurantes, academia, estacionamento, etc. +- para que se diferencie no Startup One, busque trabalhar com temas que transcendam esse senso comum e que gerem um grau de transformação ainda maior, como as áreas e temas indicados pela [Y Combinator](https://www.ycombinator.com/rfs/), uma das maiores aceleradoras de Startups, do Vale do Silício. + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/images/arquitetura-mvvm.png b/fase01/images/arquitetura-mvvm.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ff5d29d85068781b351861e86124a61343ad19 GIT binary patch literal 81726 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 E0K26>YXATM literal 0 HcmV?d00001 diff --git a/fase01/images/calc-imc-estrutura.png b/fase01/images/calc-imc-estrutura.png new file mode 100644 index 0000000000000000000000000000000000000000..3db5b9f88b875125acd808b7f3a7e64b5771ba41 GIT binary patch literal 242340 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Ú)?^OmG?&DX#@FQ|G-~w*UK!{t73~ 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ভ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

3cz0;s{S!O-)2FTlSKpDw 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 KMNUMnLSTYtU8lYP literal 0 HcmV?d00001 diff --git a/fase01/images/calc-imc-layout.png b/fase01/images/calc-imc-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..90e8ee9eecfbb51337dedca4d27a6a27bc4f26c2 GIT binary patch literal 127012 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

y4T;eT0^_gYjWFFK zAW{*oL;?z9wy*aPANue+ItAaik$ruy5c3*iwud?%u=d#31!Hb|!|lYYR;>;5mxTHp z;x?D0>U1p0S~%_<@Dq>3^Gwskv_%VRqwF0(s1;R|)+E1m&B9p0UAD+TNWvv{B|+Ew zo`XRbr^1Rkf>aPK9dlG$|F9cu`^RYKDR}!F#EaR<%*dD{X_XJs^VBF1vNhq4)JSh<>vqN zmaJ^HUil+*P&YHvUKeK06UZ$$<4XIG#~!vkPE7Ctk8Un?JTcg-CtlWOy&-i3+}syE z{cS(;IIipny9NbY+TwOP6NgA^>f@ax>&|#N#fMm9>A8Oa@f$6qpVK2bSkd?d6O{vX2*4vw9)@J zDYIX>G9>He82jPT!9SX@LQkA>$H?^ln=HX%@UGD3xlAzZS$H1)>~@z4MT!VW>y_*8TONDclr&bhgg!)CjA&mG!!m=?h_gv}r5oYKsJ7 zpVbL5TGrC*YrYrg_UU-!XV7m7>OSPse_HA2?oRkp6=Ns^SPi#Vmo9DH2-*tCST>_40g#H-5zaLOV6_1xweMl zd}S*E5qRsv>z8!K5J#)$M;8~1r?+x}7#UVOk=7_^Wc$*=#bCy*Ro*Pat$jKOzzZtO z!0+48nn}}o>6Wq?VQDb~&uLqoLi_r<97|@lIitG9wcR*B2HXf1sMVr?*?5&`dybu% z1HjRkKK-PxZ@Ju!z+030Bfl~i!flr zCtaNrF>D^EaGM^B%aRRjvh&5j`c?ru$N71gYfO-CZd{T(1VG~=Fgwj?JHL$vdKz-r zue~2iY$t1m{~In8vfqoQTM|AG8o>b*Z<8l56KZJ!47aS!B1?(9+c)$Z5E;rZqc_{h zN}9EA}{M;?~&D|c?2T^9ca5JC9dkn+#aAwq7~`xxdFg-pN3 zjo1uo^ho(Tg5C3DM#%0)EGD*jz^n(1InHhfOLIK^=vuZTSkb;WM|At@)=hl1vU2{P zu_=?PnKr~)GJp-7KR$qWn}x)y^+JuyC*G``dk4L)xru|=QgbKc?N2c%XA;G7V*y^6 zrFRImpBZb%vO_&1ydReaph$~3{TvVpnL3~}BM!;l0ii)3Lv8#w!WVVh3K_Z{`L zN#?$^bDsX4u;g76zLu{e%`(wy@#xxcm7F}m6ZbI7Wss67=_GHCK-|h`);n%lGhQm9 zl`zVVd$|X0l#cgHKVSbVsJOCTIE9Sf!S%Jny;_K&nhYAP3!-KwNeYE>!+m50qwh7Y ze8(%{@yrd*S-z8}E3N*b4^AaOFvKCl7j`0p3uFQW8{Oyh;H>+6{eu4di{7>nBKYIU z7J+twH~H`W&PyM;ucJGHgP%XLMFnGa!)m|SpC9Ob@O)~^p@4F>(BA1YtdcRBk~3Hd z54)blUasYOSkN2A@#&|~8W>aC+F-I8P@de%VLnwozRyf7T3HCnwRoX5CxsKDSJ}VP zA|ReRwUlMaf6K~h_~7QJ?3U?zt5j%pR(>7yfCd3DWS;ocYl{r>k*pFRZti$q8qhp@ z!dYp=&wchFWfh2`;GdOI@$ws(bI7Sz7Ea1*;o}cJqSdHo^FkL*;fpz4jK&6Mc5-HV zV=?l3At=PnqMR;80(de)!vgJBzg^U;Cw3rnJwuj+fG!T&=K@3N@IT zXM07;5jXA?EzPP+Im3H~ln4%yjp|~%KdlG_WsF#tN2JL_1yBbAo+01khYY>^QC(Cx zm41Y=0Fl4U9@ma0=+9Wdia{z+r)~y${el`fNR<$`0-^@cuSOJ^39Z7*>Rgo_S_)L1 zwBYN%m}Dberr*~O$RGn`>uEHHpuV&=8qrGCEL}N4MsY{!M@f14eq6r+ERjr^73{Pe zddy*Ek{6o+aA3YbdL7CtF5Y07LcxLUxsye8x}E2V_8%Ru`!)|}jMnv<>E zdFS~o!|9=YpJjVgtT`%aG=cjA`6&dEYJA>l>kQ1~=ZDr8OKi*Q^flv(g`!oBj%=mK z08X661wQJ;@&JHY}4rPI~5*-8$JAal@c?|4@=4+wgZ5C6)kExcVBi*q^B zPOMa}cIo2k+w7c8a#k8J_)0!;_!1TvI}H96I5JqaU;TUcFJ(Rc3i=B3B%Vkye>k6% zf16%!;OtlTduh!N{69${D|q9~@Fd5N>U=4pIS=d=BX~>fbS9m$`Bfq{#c)|m%yt$X z&9{o($q932Dl+z%qqyo7m&}e!rG#>r(TE(+$L3mWSOJ zEm^h1VkdBJogHn8fI_P5cNMy285QKXr|E07#6+y>x~6bnibxB2J`mCSoWV}V^A?Je z;XMOV;`QN!z!{y1l^bq(g?_UfamrLCo7JsyCjADV4+Qb$Mj;?3;6>pbx8uEMrRdr2 zBiaO&uXqq=jGI{5W7a>y4o`krF-nMsxwY0Kdx5S2p!7V2OL~9OL4(;}nm8e~H0+x-qC>|chkn4$!owQx#n$jFn{%JA?M4HB{>vwx=x@hlC+_7DY(P~1 z#-P-WUM`Kzy;jKr-~K$1d#!{Bq}s#~$E2NLS>@EXVk~=L{H!y6U`Z+3xO%16Im~^o z`KVl*KRf$SD`WvVMgYh)rW%)vT~JksJZgWYiu-@7ZGe8urIc!&9cO*6wP86YVI+s< z)P9mHeU09XJpi;tc?hw_l!@kHQWUec{I6J-P>M&kfkzVm@lLYMjZSXD=z1E{)Q6ft z&=ZF;hM+I;$_cUXs1XNiXvX9RnR>bTRh+kGnt0(-f3(cP<-9`xIO}C0YdaV$(6!pl z0{qI2gcMC;fYW(wjf{vG3Hfn3bfX2{ucnw+>&TI6nHnXi4x8%4T!^lK9xd4t0w zEn7WHx5C898CC{SW-vi|Fy`A5ud|rW4YF=dGa#c@O_g*~M@AJ>PD8g8$3MW9xEz6Ny+fZ!@@eL$!-I=%uCO zU*z>F!ee(bmR71(HcFo@A?I^3uE*tci{pO2_<2GmcdyY-fxxe4PMtt=u*&C&>tQyU zy6t|v^&u(Xja%SllXP@~v2$dfiHk3YK&pAk%A~l)dPYj;{;Yds;~gv0^PJj{N+CKu z12KPSO0x9egco_R_J+!(i79>1P$n^N{rC?@$4{D_MEYIkDm#J<5xn2}X&KsS(BoXp z=&LdzN-Dxa7BKWBOY%2~qz9rIxMUfxV-iomOWrp68>l%k)Ri3cic z`FypT0FUf3P?m5{bv_Xg0bL8iaMq4nvd#Hh6Csgr?Q%t_klvXS45!3^lD&4Gy>>(* zyp1{Kfs?t;Am>Hs8~1*95-)M;@CK18q;@qgjfos1i4X!6 z+7OkaGnk!th%*$wZ|9rq<>AvQ&HU$}K3xCiTHv?eUZkBe7P?=QoX|gy8bCtntp4-x z3-WwCg-rEt_Sqvp#*nTnrG!wpsdINFt@6dxr!8Mp81*r+T(gtSdZ1k6v{0J1uZb0I zhW8hf;2tjbU8;Uy|Dg|Bx%+XI9uoFP za|)1kE66)HR6RHF8!r)r39_2~S6SH1DkMV|yV&^KnJdkAJFwL~+X12Mf|$5zW$v|1 zX++-G05p+F?SCKsMkS1%b){apQ7jgtTIO>7Ux$)LffZ91w3I-SA;xG5P}^Rk z;_zNoK418iFTCh%+(kC%$MaLKe!4)vXUGb6?sN*q*+O+y)sNqMLEn_gNN5@Ad=9=x|lMa`FKwe45Jb)g7FNi~+cGnT(@Z-UKYkemfh6SfvYd)^W^cTcUr!^bZK8 zu4>r`FZr9*)sibLj5}Ge?tFuAMPuqEZ)(y7jM#Xhg$_Pd0FIXrezI}KC-EZ?stN1A zwS_e9oTk?*7oVIQ>hPsQ^fj&v1>)Xn)pSN|YCGBEnvCi!WbgknO)Grh&JIY2KZ zQ*>y=@O@klhvv7P>Ew~?)bID%eRgruxP|e*B#$=-jGNsdk%x*SM1*)Q!{7tXuulIZU4c_hb2thu=asMx z7LmKxx?VT%%qzWoY-!>4u138=m91RAGQAKNJ6}&l3{v);?BP&-RN{I~(X+zF$u9~g zE$|}{@a3PJ74s}X_v_VucC%dmsEm>;M_E7{P(=$-hF@uP7+7!jk?IyLqGvF1x~9OY z*yvoXKS{7jCcV=94RzPPy?zyTAE0z+ZxH28n#uv zgVbrtcd}Fz>|*Rl@&u`dW%ZmT>t$EPTqR)XQs?vw)Nwrx1x5eWwhZIPFJC!$Q_E)` z{2uC(%w}+gF@GuKSG)N_De&JT>A!W|JD%1jG5KEqCq2O*czP4|%lrI0ivm&a;0)05 zWrcAkzvJPX{ND$H&;f}vTw$FNo>p&xsoG-P*cNoFJNx3i0_(gXo3%E!kJl$S5J3!T zgzSd9_OptV^$Ikf`7r@!$K7 z7nFuzllbME)iEu!OEmbnRDmUVn-MiFG_rFMhDhSL2Et$8e#7PA=)A_yGoYOXt-dPk$v4yPyTlGOJk%C&mBf}iao_Un@jx&rxqHmg}DuL;vQ z3k6GZ+w})VSE4D@v6GktdBF(02!4$7>f@7{1<4U-7!;DH+Vs1>uZw1BAI2E{K`3uK z3QU(%$Zd*@+s%P?1c0h9#w%6kU7uzJrd2P*FG)O7bnxNH`*%PI5?OQ`Z!WkgS0Z=9 z2Q)q^pENai)rrtK01s9k@bwpjU99gA;Nts7A`cjP$h35Da`)Xn2GwLnco=!2d)VUl zFX&N&@){`>cF6{ci5wZu$(U8)AeR_U?$hkoiLQ0p&sDnY%Hng(;+jT%Qo}` z*!cat9Vb7ulHZ99##BG@Osbc}SK)cu6$+UrX>5t-2|LS&5boP)p}N7J3|EalcGv>bL zhgJys-*NdbC8F6@ci@IlYC^(~YzK+`xvYWu(#Nt)wWw=h^3D$*)m$>P&lvT~mpvgH zMyFXx>W`e6()Ci5)g{SCxcFTHV<-)+!X@G?NiX`7-rYV}-V?qAYvOR%yyObtdJz|L8YP_S`A^TjA1~ zbz@|Ke)E43kpZIEb&RVxgv2zqZGXUp>`{auv;zHeOA-+D@$809;uO0or^loFG;&C(dw9(kvlavm_=T|4Qk{4&Ev{L z@JZw0;(ZK!Rr&r*w8gvehV{**SCI~L>UcW9OEeBrUy*U_rbElhO8r3QljY=4y>rPf zq6jyA&ZHfczrAdnzO+@8G=(PR2D@zEv~Ib0D_=MzLUFVdC;hGDY=W>RZgcI8okOnY zA#!sqOw9NXxLWHU?z#Yl+G6Mu!guCgj2pQt<*YUB5KETjK&hCaC#L2Q9-7+rH=gEC z0;J3=On}{}WBl8X-lhEJ0^{AnL`rKInNVPC`)J)aeX*>OyjXebqX-_*Hy{km>2f__ z08G?XJHa1)VBiU>K(HFD%p7K38t7dch{5itbDb=sQaeFnFuH;ft^Sq(3#XVpUoppf zXO2E+%^t2Y1FRf>P&>AqKQ7|%%!6f|c2Ku2nqVaDdiE-)7y9Fo+FD>~iz(+xkJAOG zWrjxDZ~iYafbzAAu3a*-F6wh0^W=?UhCwe&y;p~Jqa6y{`x-H#`=I}j>vVy`bb@lV zVb=Uic(w$KUU8YRlNbEW%?+f#Bzz&!N?Ik6Vq&sI&w8$$hvvinXlaS$H;ABBthhtV zjEra&Skg$LxaP|#Y_x%niqkaH(*{U@*qnuhO#HmTkNM(d^EL&=Cq0z7jL{-Ak%6Y) zdJ?)+W0rY<6i0Pdr^_gR+jWH<{4x8i@xPpoA^`eji0L93;*`pQHf}UeUYb2LRp0e7LWOQe=!C#KfyKCQOzpw=_V6BUa!QJDy>hkJgKx~**Pe=sifx`V zdHMCKMh(PMsv5Fe1m5ro!Dj-O+FFjRtlU?L@`wq6R}2e*XAJC#jGo^z*iMhz=?+-ui8#fP}(sW_wYxD~GZR+R|Dz0D>FIdY|O1 zl)lq3t69nE=>!#A#`Lsrb^21RYoX>R8YQJ%?|oh`#|s_Z9c@>zZIS7{o418TJ4qd$0E_X=erq#a`VNrILgjX2$1C!>&%NGilQ(j? z^lwrS9+rdb)^=gmPP@VThbw##&~>r?fVu8{~22eQScNslnbg{BR@S z)XP6CEKz~xPv}ZSt1EZ%I7$#^aV|>14WD;WIEGZ!a=Q|(()3c)oUD%~t;V$ssn~kF zgx}qhTY3SOAU{9Aa&mSZ8yov-3rMupgCfv5I`*LnT=HQN9Na`)Zpj@&co7&E3`0p(IC|C`Ej}`tPdz z-~4E864ctFl@fW_t#$Pxx!MEMW4Ls>Eit3Y0Q5Da{$Ike&{^shox5Cd_fqE#0es>a zVdu@LRWC>^bP`d|!E^Z^(xHE*ymxyvY)aV%zYV!etFy0h7I{5lu`d;S(dlONUaz*v zp;!a>anYY_v(-y1adSB^RLsg3Y&7Sm#Zrm5{gK{}fdOG1&kKV6E))C~?gEdyCc15& zQw8>HZhzqZrrL7{yzz}IjR#!8@P@N;`9YBOvG(ahz0O_*xWdtIFL*24Lz6NCKDTZw!g>Sdy_KTIuO6a@>He!7rVOK7vg-_H7pjw-jC3~4~7LbPCtM38pN`a}GF89iLy zq{Z|pY#X#hV~mNVF-DJ$1QVM;lq<0fK!izfsH%=HR&7-#-|6ny?PWWuqd(wvD4+)} z%a=rF@K^R7F&Il+2LXJx6tXt(&17P#XR*cydswuGtLorW48Ri#uHn4b)BaN*1E^iD z(bSrMbIv+@&KpKQ6d+v~a)RB_Y2nZj+()~>oJwoV6fc^X5m@J+=0Mp>Idr-VtL4B< zLrAz&OpRxj1gW!9{)1xtfs7G-AY&#f#QM{s5A+Xnt`F3-y|tE&XC zVX)Mq5GFMh?&CalpS-ly4O1N81(+WSjeU&%E_T`;zc%-peN4j7Feuh~s$NCek1J!~jn7rmkY(b^RE9A! z14QCHf;^hp5rvrLA2WPRlfr0a;5Dt=7_O~dn@Ev5FC)A*z&3On@3B4r7vKqZppexy zyv+hTJlim0mdC2)^X)q>9m=0{+LULp+-T>5A5($C7-H*WTM4S>aUQAeZWVT*yCET5 zPM)qvS{msb`|?so|4_-bkUQ$V59D_UL@RL3~`I05)(0ACwm1jVq7>t~nmkig5@*=_dg zp4|ncVwKz$#v@-HFWaE(h%g1e4Jn;W;N)GG5u^Z#K-Ox$M?#7rVG#* z+(nrAdr@*r1r~97#2jn60pFWcP`&;VuXnSF8<~O5gaw}g`3#jV67o|m3GwDb= zmb=Gh3^s3hi432X^Q>lzW$~g3+09Y?6J<;54~sEiVPP*vRSGW!-%;Mt-yGgY-Xl7m z-cW3_Qq#P1tjzn>w+?g4C7|+^;VBh9kZJz|pNCeWH+KJrWshn%*HL%yY>ixddC3H% zc`vg#0g_KyJ<~oROCY8r{Dfvb)K<&eS>=DJfZ({RLYz`mWz-8c$D+!J6dFr>(~avtrs{j zVcl2G7z)?c&PP&?etXqny$k!J=4Wq-TZeUn*1SrLLs#~`N=(fk#%|X3i4;`EK|g|R zdq3o!wohhj$Dgf$WPP%Q1!|kJG`2NGQULG<9%OpsJvUs4QKvP!om+px^`qoCGct0+ zjdx*9uB^yjx5=F@+36p}sL<;O4QcjzHuMlt;hv*mzhrQhHfRSm%V=C}O$0=Te5kTX zYdAO-(ZviJQiF@d23WmjBMLS)iX8O4i10Q+y&e;fHVJ9PGyp_4(Zv>ft4jTHHP-<4jP6QTWJDF3 z=n3AM`whaZmw8>jx7R@}%IT>4>taxiUe8kBPrvC>(U`|;7|5_|_ z`zNvmpH?1_PGZlNLa&X6$=f_zu29`Wrh(I*`wvq}S6lwqQD5hPqa zw^5eRh8d}2k@*Y08U>|%A(Shb|L#o6jW*hWJu!1gS9QCalHXMCI3P|SE$>J%Sf{=b zekySQ?O2cXa2YVNwFPIPiB~;SNu@q!YGj4s%LK9MJ-o z9-nudmlhlacK#`h86oPZ1g)#ku5>Ee2}aF36LobuVK~e?n0Vd2%en97J%^CLvD}gh znqVsH-XLh;rNy6fo4zZJO9c1!?_6Ep(qe8jPoPgXQAgJ5j(bs;*ANFVAqFlUCF#Ei52?N=^_FHp6wSD zB5(LMmmHmVu01Pd!E|5pKrQ(r`Zr%wRy*6p6GAD_4Gp6%hpN4Gd8D=`@tqq3o?$wa z2Bbhvh0WrMfSjzKp8M#%^-`~CF98XuWThTJ^mmRi`OQ1x1kf|XByi=6L?4iv^=+BH zUL>{=ZGuK<^-MVTJJp%FG8u*PY}fO_J5DNdGf6~cv;72yU1f;6)5SGm`%6;p_BPCh zIexWRQ>FRGMNF`!Ewle?a5jP<+UjIzc0@y-5&`FIM)hr;d0ufxIb_N2sfm0y2D;)F zJ&1R~`X5~p{%h_55tpl^S|QWpYTP|ebOUoLZ$a@=-7=oGdw=!Mf;dK4`!|x)lxnx> z!JEJBahPw1ZtZWAU4I_#fTHI19OrB)CSeIk23q-Z0xZ_&ogK!E((kbjkCKADbv5!a zqmG%>Rv5oji)R}+v{;k2x&Ilv6zau#Pt$!I`u9(YT-x~pn|}!J>vq7vA+LYfPRvJ= zugHpf1JzBLy;@v>qDdbnUnOEDQol3C7^A8_o~T*mwXFZ9$7Aiv|6ft;VI+X9Wt3V# z!thze=rwvt`%V4T?NBqO#6>9)aeD@9{zvDzMgu%4Z1b!?6rsOuv|i7JfNu{D7qBX0z`e$)1IUU6FjScYAnC_8tY%=!?bZl_PN)#L~#Zt6X1S zlVCxYK$oX_M53YA226!PG2R!H6YWp$fse~<7n=bO_)G z%?@4Mo>JKEf+?YxiDt>*?YAfOBf{S#ax=hyQ$i0j^{X_ zUPtter+-5(>{gYTag~O4?I!erbUrdqLt%~hO5?MQh(QDBcJtcSw=>trHv)V13fqtP z_)gnU{B-^RLS7MpsEu(6G&RAclN3i=Gh%mhg!uBtO?BO&#@0r+Z>{S!tq{x~(#b&K zU?n0N6z#*sTclRHe2>iL#$*o9d#>evGQ{lVwgxu8@E7nz`HPJZdyFy~nPZ zc47Nve`8B-g#LV6lx;gjj$MvJ-T^56#Pv?bh&|!H2>)+0@sx z((braWfI~V1SN{${mYL&@EUB?gn6>Z_KAfub2rwcqjGXu;0!Ty`}e~s2$3-ul3?WM z1SgLol%>=;3sZhH_C|xSn%{d4#J@u@HMzUa8tLQTu)qC{Q}^bU-zEFQm?v9x{LBml zEF`M%qI|lZNzZ(ZxVZmMk&0thYt-=SgBv!1GfOG~bKq3HDH+v`PX}z9|Va7)Xx-(wM%lDV{xnH{JZvLf`Cd^w(DsEV< zNKse5?5Xd^w0kMeD#W(WYkXM850rCd^=bW$8DjNh0=k^Y(I9RSin{RpfB&4(l8#ep zeX4Z!z`R7HPRveAyjY#5mCa7;uIMF_B=`^&+odi_PnLX2K_}bhk=kY2hSuC?WiC;F zwb{0Gwa>aKWIo5?II_VZ21r%n<>75M${^gKF6UnC(5>_MGYsy9^>-b?l!v8ij-AY} z{f}Pq7xgPpvz0~%`P4hL-{!?wfm8By%2YC_{O*$2MPhc}`qq(V^Mt1Sc`U*d=7Ari z&e6$Yb`CWRC!DE*3F63MKy>*_e|QZ@N&VR7G*7%Hwf=keFPe)k;7_|q$r9wDGRD?o z$=afPNPFp`_3eO7pg82=;+sfBpboz2&4=6DOFl5!fRh7(VzK18t2fT%ZsWg)9*y?& z)kyr>&z`JQ%RN4(p0vEN_>sC7z93YEJxM1%<$+U-29I0T-s`6C*bA(QD_$xL)1w;R zQ5skG-b$lGLF*sePJuTh7OFrhos%S9L$%(UbK5u_UPCN`B}(?FLaLq}g{R^EPCw z^}0E71^7-YfVe&Au4M1bd0;W%*hrfA=a-;4;yN%2L!$9$UU(nkk~W$Opv&H3om$pa z@7H?P(0Xx{^uq0@1{;?%?Bl`(nJ{5bbv;lC-$5sIIA{!je@520B0Mm@x8%k01U_<| zRj#d?_}aID$>vA|gT<*T$+&$-kX6 z3=v$vg{j=Ej}+>SGsG2B;E-R?%vo?IDJq**BfzKv4YAD8C8rSw*%dcb?a^4Ks{aWG zgDCdzyVGP~=~1jO6&-f1K&>Sg=on1pk$_!s-n*IiVNW+jllr(ldNdcIx^1uy0+pJBD{hbtgt*a_-|q>C?jD zil;AOzWqXL+iFKuWJ$oZrwCN5YD0W>%goNJ4N$2GoIVyD_O_?tAOrSMzx}9gi@N?T*+6={eBSY!Lw_i#qh&0nIm7Vr5j@Of# z+a1GKbQKp?T8Q%>Iy6jt{laBl-<#SMy|yy7P%$IoFD#PU*KbOhvn*`r5?2YrzNdM7 zDxcDq)L59_7I12FvOc`N{yZy8cNbMvM+VDadkx$imA)B0{mYggqcW}{wfJ6KFmU`Q z>Y0L)w_tW`MAV=Tuc2m+>q>W6M}cuA`rR>eTotO#ES3a7cp4zp|HYfNqG5k$^i#vE z2fl%zZC@^dAt}eO2t_l>X}CG0`6)A|VHO*20?ghO>xjFs!jRr3pCDva5hHaiz=$ch z5LHJV8MEfmtm>yV={L7-r)4_%u$(5{;c>%0un0q0$v>SgQBW?0lZJ^{^Bsp%h>*5O zZjPyzCP!4~kQ=J+1gI@Mo)LKnWQXp1;e}ZVEv~GV*y6CRH5dy9C7{Fe@Bi{$(IHAYl*Sh_kx!s14tX3R*wm24dT%;Hvw_vX)ZP_Dyr7h`2P$s$x zW{DD^5NGnM$Ex67wXKlK!r+`0##*!JEgF=WWA;AX+7IWEZM1$?_`GIIpCyRZE(k;k zA5h;nq-E`LJ6#jsMB+W7WwcqB!s_VK$oH?<=lS1h;0=E&O?6&9bek@|&pTKxphc>5 zGpxmPKHjkpKN3~uT`6x*lg-~(o?)OUz|^fZMHelQ81%|8b+B9t$@d!r=5AB$gT&{ zY^9qhRZ0Q$_Sly9Q%h8(($NT;Ai`^F>nT*u*Uur%BC=pjSBv&8@si*!GJWUl-D1f{ z>60J7H%pGeduw!BMIFW1zjCn-J%n`=yw|T7J%*Qa(RhAwNMrU*~%_Ia8k4Av#_>vsuF2 z{!3xYY&Ph}(T{5xAX&0x2-O=6Uhx+Gh@BJiIMl^^vqk(<&F?T-=~%R1TsopId~thU z5wf$SdMtkzTt|cx_|IYP$Nf4lFtPW<(Ifc@vyelV(+WhVTmFqGVarR+v4xfBix!9tu&{!ir?LihtIGKP7My|+g-TlpjJc;aH<877_D zre1ptbBcoG5^#LLb$NeTtqmE(EBjpq^Gw=A-z1E$ zQu4&fAsW3`*X*gFPw(%^W`~8WT)iZ^>`+3Srg_z6hBZ>l*ktCZ3;+b~EaSdg4V^7u zyD8SIilm$BL@Qm(q;=uI>0X}%B61GwJ2u5U|2-5U-u(ni-&PiK;gD~bE{A|^aX4c# z*F&kettJ?N#YA9O9uQsCgMkDNDTw{%7Qg2`v_fmVD%C8*ei9TG2;UaJ+(sG!=}j%3 z7=zo}5RTb+Mp2RXTjjoo8c7f{GhFJx&ma-GFMoa7Sm3}AEmVe3(Wxr#y8OaFr9LSlFEqjSL47v#qgA237i`XU6a z-NC%i)s0)0X+JnN%T3CyKoj($veg5Ww^GpkjQQhFKxP%JE+~{MIBsM z3TPeE+)c|h{mskqLnFs6HoLB8@}By>^y7|~+J5;w7;7wDDlj)?z}s0q-dc;`t=du)Q}gxdV2NSoz}JST3j+i%>;#D* zC9cI%b#J_67|ek#SZ_k7@gwis-{&tsw~CvO#f4_rkiZuJ3h(v32BLDJs@amCI9&R; zox|U)EYcOlygXN>IDB2n5n@lI5>)v7-}U$UC@t{^_VlsW2Gcz8xrW8$$%(pn(O^%9 zm8A?GiDRRQeV|L!L@b|Ni`bcUB}OZi5s1zTmnM&xP>lZNdx=!5C=xhV<0pNx)PqqJ z`Ur)4PAN-}SSYZVywu2OGwvWN9>BFjAIHTnRxT`3kO!S6coOitm@1p=B|m=6G|m2U zNWTGENCF5eJ>QJa5?vK?>4=}6+oN@Q!j;ltQa0G($hb$7V*6&BG3ColXFoTN*aPXL zU87OA^Dd`wR71^*bZZ-CwuRuWTe;4%S||xM!)N@)>=mpb zFI^u?^2Li8CIsN6PTM5x$aGTLv5j3B5&g_g7)i-5*s{EpP9LGe;!KhcGP68Ry0?;Y zsypP^MIT=s6JgR_Hh(Rl`kolg4d#r|@?zqO9O={C@4K{*ca+%MOYTzPtjAH_r3}*a z@}V+MhWS@+cRml1uZ8r`BmdAU(|i}39Ew@@D*W&PWe|g+$$^d&UIL)YGDnO~<+hu) zmB$YLu9)e@JNl?C;D+?D{iI}+k#cJ*=3f$htMah};W!T|=i;dP^Z7uSl0|dT_EUoC z%S2u0ejHT7|4m`X-Ts^XC=w^hHyN*LZvzMImO31SY>(SPmu4mijwrX4K2Dl`6kM04%<(Rrrg#h^}Vq&B1zcE`}gFnOs-&qGl zgs5M$D&)EO;T__wbAEa-T&#y*r)S}DR(r|+J42E*r#GJg(9%N3ixj{Ijn(5NQm?Z+ zrzoIu@0BBMEFMIFeKn}xpd5u5CvcL|LPQK%U6DsIgo*7AD_uxU1 zVj$bAYC36Tpjb-uO=z!1Jdi=2d(SrNC)AF#d#bc|sQnU$GwhZ^e!N4w^xxhZAQAd* zAO{%Ad2IAJ41a!WTQs0ATCUEE-lkoCcdVUeJdaKNunC8dEAXR-S3z0kpVj#gnVCoQ zDpGG3PcWWWUbpi>_3RjwKA_BXD!5pe)V4bz=_i`Zbv8)O0}Fi zIaB6xJ%YhKj-d^Tk^%lxj_^0DLR>ahh^<7|pqo$qFv^ZSrM)_8aR$RhP zPx(V&xRxtjDmKLzIC&hxv^UbUd0o@6LEKksf58^zxF&8v zlKI#nIfC|=NU~N+hVhtM)sk6-5O=)KKs;1r=2-KZ>W*-UkxNgqhHsCPU)o}bmJS{N zC}L37IntlH{G1{9_kv9fDOQqJAWe)xs!gXz;2d<-XYeXX=Ca}>19#5A^Nsrz^xe}d zTvL5}Qz4rj*pSQ41PCYi6eUaA<^P)cj@O$X!U zwO=(`ff`A6T;-hTERWL`{!IiqW2tp>1B3yNYVYMucS{sQv$@}bF+xK+ldVnpClPp( zQJJ<~irZ>X6C{57wG^ zt4g`U(UnpNwZzrp^GOEWDNra|c(LoHfJ~l{B7bA#Kd&%&{^kGJ?u+ATjp_X~IK2)G z-BV4j!lJJ!J^aZV6;gMZ5M_f0N1ccSxUbgi%DMq zKiL2@Cm`#RjK}a)enLw`Jzyez-r^t<*QbGzE#s+{ZIw5`0SKF#%PCB;zGqC7QR*Fb zAhg`z6xrAKkzsD#K&r+arb~&HXjJ>uWO{I5fKwC^gPz~-ctmJ@VmtN`j1Jw1Ts!|E zkIU?s&U%$lKmsH$#1qMax%L`?9Y0d!c&GF><1=qpsAC_$hOVsh39XD)f3vu?m+&5C zSFs(Vti+STW0D*FE)=2mp;v)X%z4O`SOVnuM_O4&Kk9JSRf6a63$K=>^%K1cbtcIP z2*tceW<23T;s!^MF^_X}k{KuzRrMgNC3azlWTnEz?NZ$|Us~RWSe7J&+9QTiu4}F) zkP34gSC_;i_KPq_wD=ca`{^C&l4&F|v!p52w!wI+!<3w*5VVs=>f<6IWZS2Ap`{sn zd^2#|FQ+?bW#sg9bBuTwA$5}D; zO(kPZ`RxvEZU^$QpPqH#^ZUu@(7L#hN;sZZIZpnG0>%HjK!Ue{P=919b(4-b0p`4>)3 zpRw^ACYI{cR^n}RYiP;S%R4eiiTY-_Gb5yTm?wVL_RbW#a3S^WP4lBI3ague66Ex) z-AOtzTn=>nA8@b{mkylg3ah^7zb?>edB2d3b-l8t{)O>mqqEZLx^taHAl0@-;&gC+ zM%AA#=g(KDQ6({Z%D#J_M*adro;{Y+J8y8XtAHVMPS&DxV>5`2`F}QDUj-+7eL_~| zI`!wS6SXRtyV(jk%31>4F$fCYqAl;Pahd&{aBpOBg{`NwF^W9=w?WY}FXtXPy`PAo z@mmuEy0lpPGPl2q4Qy0qKL^&iOwY~!Gi(o^;mwh_y*J)T?zHF?h{ZsrpB%^%@sGdo z!+0R?j9%lCN*Fa$hSY3-soA}??>!&xrRErrxmrxK&wpH|VOB^a;Nv{Uu$Ox1FCch4 z8V*5N048SVImw zG7~ivu+1>5!(EkSO1H2M6yI74W#*RQPCR`^0h8;C`gl(l_tmdR^>uEu8T3yzzDn6hjPt$VK*eQQMv#l;t@KG z{ATy4>n0!=L_&bWV%1RBx4NTK_m@BV)0UMXE3q^kA0-eNx1`9cUIwG(!w zUGG!q5&};7)~j>kr&cXl3m#YFs;|p2Io`@Krvw6e$*kxyEA~ksfdz!}MWC8*KHg;I zvo5xpB;6ds3ytCFJEVpKv)qQndV8n>*W8|Dq^^dTlYqX(HHbLoNc~8j^huRtIQ4fH zyt&%y_MrJ$eD=3C#p?TGOy#E&x{{YYRW<*IFB<+2K#hQx_e5t|lDl;-w&JMLDol+H zCnWj!3Q&pHlTQj~y2A&C=cj@_QpGdBl$uN1_d8_uAt9HD z$*YU`Jmlu>WdJ+zOHF<0ClLS+1*2SX_$|9T_H?6F~-_Kg^YipFF(5&1rRsJ$LE6;M%BO8UKUDqNFvk@}!I z)ai+q@%xTz9boEj>ibSUc8zFkpH*-$IcM1M7e!52&4?m{j`i}^F2>n$3o19KMHS-* zZrsTn(&f*Ju|#ScyV+`ZB_}qxaX1ZYOP?Zr2y>8ty^-R)d#V0q$Om3xwaH?}PXs7X zzUY59(LYySX4-ypybU~Qd2Nf$1-uZZ23&lxc-ti%d)^|gcs>=Y7ZHlt2w^&4W!2WZ zf;abu42Z|Upg=WTleLd!9=3OZ#R^V0N*^3l`N4nCeUw4hc0AaSJ68MYYq+pVG23f> zY;ZCBgn`8FGk1N}WOrs2rPz3>2MFQjZo+u?=C1lO2}X}xHC10f#qp1IDmb6!x7#p< zF8_0xBoj^S-OpJ_sgrV8%aZi5pWfPu!T8b;)dw`#Qp)-+Ca=vTFn8br-d<24xnxiW zq6mJ8od9&?KTN?Pd;j>5I~Tkh@#R{&Gy8bfirqI??2xRXoCh6(8%>@E8mo zl2#ArYw@3x$2?*8-Uw3#Z$#5eqY~79QIqc^28E=AL9MFprM(x!-#fPoeQ})54fvw~ zf>k7f$z!UB2`d67*=j!C@7FU?=S+^F050m3gnumqpSTIJEB3Y;cyzB8__0CXFeyrf zgR@htWW072$Mc({?YI-Vrw;gPL$IS_KS<_(R|13WXW+-yx9PhaqgS5lq~oW$W6^H} zyvNdRQy5$|`QaGr^f1rFFKMhdV2#%>MY(y^Tt$XLKQgQpheEm9n!1VcwK*{b{Hw7g zG5ePDEcn1O;oqb9U9Gw6E%wsSq5@gFr$3cs>yjqsjveO|i>jTa2Y^6benDs2`qe0m zaGKd_#hh{6A-fl9qoya|8;V0!hCGc8CXOz`LFfkLpay>0CDuN}i=IZ}Vk=y7rR{PE z&f>SR&8p1(g9%nh4VKveTo9s^V?bcTK}-NQUD3|Ai(1 ziV(eR7p-^$Gq29+_NVl)OuqfSvR_{GJ(0lUJn!KVw-D_7Q9JD zoVV0~3%GXu5{Et9=Bb7`Cml+u+V$~m4Ofk?&)|M}RqJK_H;Hv!-E_%ucYkQRzg z+k2g*ZV=+WE!;~jO}MM~-X4*!=zKudC_&fozvCdnugqVJ7b{ZtM`Tj0KcZ<12Gh(Y zYqUzMX?XJPDfzuIr>0kpl5ot6@P&~HYS+(APx&Qff4(YYfNNB+K$PNET!METmuS*V zoqpaSVXW$kD$4DO89}t1Hqet)#I%n)6HP1#NeFIBU`tAlaF^;xwMGg7sSK{bB&ern z8o;D}p~d>ZP^=w+pgYo1`NI`Ss~ql}bZiv!Y=~iJ)DhzE=@x#QJ`gEo3L@!EB6gd; z*%Chp(l#X6|I8ai7ZmKzaMWHntXeXVkhJ(tgK8#jAgY80*h17|e7$)5zV}jFd zdEJB2K*y5%IpHuyB|+zxwQ4yHgPRSy^#~MaPFluQBGGtw^w(Dw!M3#@9xj9tHc&Ka z+1HseH)>=z9564&B0lfF2K&_nXzkZPz%9Aqpyk`Wi{8ub*`{H0G#PP03Vj13Xr{3f z{9)YwXN-CWdK{E*?jDr}WZWwqH|3DPVdqBsyXJhuvib2!Yu! zyWAYa%C)aK6G?L)xQV84qCoR=qMv6}GRW6yBN9Q7S}toYhiIr(T$648_qJtGT{Z!k za<#5xqkS@C#g?J#%xHTqDyB)*wI zBnojf{Gs^#W-EOV3)P#sZXTC8z==>Z;E8PFZP9RRE#QHM_4SgpV#d$IxO=bcbAg0= zx^BD?(CS7>6=adIdM%l~<9R~+>>;vCf3n#8Sk9}Qsr!RhNnED@E7leuYo*r`OBnl) z^?A0+X;0*pB=;?CvF34;Fsdu&&-KsT8_AaWF!gofR3|FVx>VgL(E(ttH~*fDxMp=*1^g=j~mux}Iu#nz<#os*&FtLdoCob7zb( zF^byC*qAxFU7Bx`d-0LX=;dHJ>~PW@d|B3%Art!+I_nct5fU`aRq{6c63Y>5q& zi<0)|h=CQ&YR^OOsRP{i*ixA%m9moOGVVI1_TXPziUGK>Cb|S9UqQ*@1;n`6=R0sK z`1X`u{zOHnS3{ivAIsmaF^XRetF{N;p4`UXc3AGo4aB`lBi?&m89v=vSl6`ga-XX& z@j60TOL8-(U^sBo1eCN4Txk|S!a}|Rj6Tc8adZuY!flx>bv&TxkQ+*7Ua-#ifm$O| zCfQ7LW?F&c%}F}|Y~_t8I(`&6jOuNsYE?TIakXQkL#TR%KkSvBJd#Tt`m`2EKs4wAdw3O~l(|{AU0zFN z>VA^$PmW z0syxut@hJ)mK)lx1_YlemgF!o&%?Xhl1AoyY|y&9=KPf_)3c~Xwr#<7eo>OI=~Z5^ z2uNBOE(ex8o7w`?cR3b%*BP@IODP1w-c#PUje9KG%k%eYUa+~M!w2x5SY||b{&=8A zX@-rCanX98Nn4zjp=QN6G7163uB_u)#2tx-EAfW>Y#Z7o_WPRZLfszO36d}cvqA%+vy=NMHGg=U; z?gA;1hH+6JXR>m9d!y5;THqyF4lH_L2)`W)%-H(1UL&(XTrNvsypH60?046`+n{qzM8Y}D@+e? zH&oSzKC3r^Yp1XW`czUtwguzYpdyt_P!j_-O*|sQCyhmdMI1rSvd@xGHC*O4xLWhI zhDeE>$)}Z^KV);4sW6FxeCd6utqp!wD&F{I_VGOVLxCQmJVIwobk?aGim-YHsKUavJo6X zg~;CNfgdU-6IX}bhX-NZ_`hu_PWzwyn+dEeugl9NtJq~oh&TWZ z&Y`3W&J5;E(%@cxcWaV~D6NVsm`MA_13l3~X+%(9op3KfTCYbsudGY5S~3!wd* z^?ZK?Bu55^b0|fQekBs^aWr6gHnaNH1RHs(IB2Y6MuKy0RA#q5q1u2taUfUiHNq&v z0)m<*$ti|>ldrd+%=9?-#mgpM=CWOmX|Qxz{(`IXC!8m?hkA?oK~^}HV_;7bgv zcpUR9xsZOr$S1#3p=c+3BE>jxvkY`8sf8dOWo>e zwn_e#BIk`sIb1tKA1_do(DEA1yqv(On0$+Yi_(F`?BSin?I|gW#fM#*-4;90Ksa0C zBG_cI>N2P-(D-*F^rSkt%%BB1z&>Q9E196x7&zMCuM4)&G23q`#6q9#X~uVtUM=@X6}MNxqrpM=S@WBb6SU6Ppb7$_$TJ)?K?a@vmo==6>TyBTmd*U2&j zY{3uFjLka_-j9E2bD(_aO-t~)kXcnMlIOIq{<54LG?X4Az4|3u$fwT$Th>~JV%XzH zOdY#`D0*^V(LAN?k1c1A*9+twjwK-@F7>+(&cFFxoqJ{yC@byOCP*8V9MpHw1#J#+ zrJsGEECVcWN1016u*60EfGZZyr=~oKEzrRi$X3z!FUH=knHyYz8#x?mO)1lBTyO!4 zNUh$>;X77DwA=ajR&`wHf9-(ap9qh?6(k%=SQ|^GImf{UQ*}Wf1XBRBrTF!~(i#XP z5C32!V?xpPPGZ7$c@I-oYCvl%@p9B<2~$fHoQNLzuD;~8VeagPgUU-yq%_u$oMJcW zWMTJ0Qh6Kp0BdyYMHCr`q@Df;p*{@rNuJP_&!AMz#D@a>B$T#Bglx>K=0&StGWo}9 z{BT=C^2dwv$LbnadIdSmOjAaQ)I%n7p?1S4Qr_GH%A`bsY$wJ5M_0C5DfhfamronW z3kkh~@oPYmiaF(gp64U$zf# zq5`aAqQfSi=jIk#Ktn#9_XX{A-B^{kj6M61W{ypfaCtS@@AxZqG)jcF!|{T}zH+XK zupvZC`+%mSCMk?#VEXIkkbQj<+OH-boQ%&t%8vu81oxSm36E_K@BjL|AO4KU-)c_S zhxXPG)Q@Y*QcZqmnhk*$pdEuZwwmv!&j3I4x`n=AR^oNpI zS-@0~F1Gy|C$tnx-uF%$`gn@EbUVX9jS2mto#b zpjnE}mSm*4j~@&|S&_j^gAJ}l8vTy7qXUjXwl51@?gsv^rADXv-03=n?oK4KX7OfO z-n`N}qtTfL>{Ntw3c`WN#h^u)N}4Tn)L)fgnM{J~19*K36H7$B;;kVsU+&j)Kk+GnDa>>#1q zg*+49#^yy>GuG(q#C28*6I9AJ(=qng*7!K`sw=&#nJy&;t;X)$-WMeqm|f>M?r*!i z)n^W!5e091Y>xM5olzYD4~&uqJ_w$B$VP(4;(^Al%hNSti}e|YB(0mp)cw|)ASpMS0^54ri z>X4GkUoRBCMy{n^iK@HY7dS45fFBRD_)}m5aXGn}2?H^YNVAH0^f{rMpy{D5Z^GSx zEBVI@%0xCYWHfh>KqARSV5I}u4)s+s(U3($#31E!YZKz95%nWq<$Xdg*NzR zj_}o^!UsH1()vHkTL-aGJ&ZX0&}oQ)OV&tKPqpQlR-ocll?ZuIZ}S{C_!_)$c}6CA zv`a;BznaEzxxENw(F5Io+ZPMkk!CvCQEi4$h6N~Iq9W}}usK}ak(N8U8Js=_SKGr7ac_EVau}T55aAQXdpYlDMbP7fA zbmU{PQ>xRP+K>?z!->-4OIpp%pva$pQNQ_COgo00>wAo*3gxCcMyq#7M6dPyp*#76b;3)y{4YF1f)KYWZRNTUM`Cbz4mhrJs;>w z*Fv$`$V~Zd(FrV%Xo+Ax)Lq3%qus}3H@wF82pTa+wpnmTTZ zJNEf5>-)KoYGbM-jVd2)Yl~ZUjZtLXxgdbyaAS(u#?oraTv@%Myr|FURjZ~$zF^&t zy^v!q|9!5pb`K(8*c74l@JgAcu~|t9BgyJMZLU}%Y3QC4ZZPZm@%ub!6-DyTa}!6` zHk(mQ^mWq;(4~-PyhIaVoOlTOQJq|guM;{83tJ%`jgBwOj|oO_*lX3O~;|{@_}P))-_2lqsK?(!(^Ap!O~)1tE5+gj5~ECz>V_ z`A3S|V4C5Vwy1tS%AwQtbxtsI!jmJ<<;}nF6!|;LDW3QqnMDS|@$GVYlw&5pex}&R zg^a~Im~s$fy)bP#&#Gm8Uc25(W1C%vtuQ({G~Rg7lx?AU^KR*fuBLr{M@gFA(s`lZ z^jZC$xy%4EsOs8~t=^SYA^+wAzoh+&9}g&m>JZphz<^lXFsLwowc1GMnLlz5S(w%@ zalGyheO~su=9^QTiKFJ$!%{mFlH%E~)LKE1rtOE5;+Z+WF^bbMI$LvlB9P$KGd9U4 z;eIIuEbk&nq02$hiqjjJ8tLTXbOKa-Am687T8Pg@EL-_%tvI@_O_IoddQ%VAL)B!O zuW(%}$Cm(L1A4j2YGw_h1%|CHfM6HXZEVoqLc@ElDityCL;MaB7S;SMR~NMiA4x}6i$Tu)ZWp&Q;_&dN8ht4A;=-!wICQy3LX47CAK9Q?4`(g#@?Be zn$Gx_aB$;>(ET1tpye;Tmpgc`t8ctUw9nex1+;nUJTT{N5Q?F_5uzWQpc5(FEr1ea zgdw|Uom?$WH}|-YPWb=QlGI^p5FcZHd;E=GT_!(p08AUs+et_!l+puB?)Rcv)y~e9 z6{@sE&zx7skX4U4&++tDh`kD3$rs4&r4*mFM&ZUqqJr3jATu_v{FbF;pTvvgp69Zok^e zSFJ5t?o|W2ejo^bU>TnsrC#|w0sw_(GvmiE^8{7g{`%X}4?JEpfc)ZU`?1gyDenPG z5f7dF$39#Yv;vFBZgcOwWg*{a`+S(a-KZleC(xFg^i`TVrU=)^i%G&x?l1@Muk%hdCGS+1g%I$G7Rf5a@04Zp!lC{{^ z(2Xr+2`8R~e%<3cGTzv$KMLDPS|H9kT9V!vU#5ZWI5HPX@OCnGMykusQS*@uS>d=_ zHwsnDKcGGI62Et1=8TEAKq_Pgi2tlX*-R%Z{3>01Esl$7{J0qY*HQ5#`q22e4nSi=yI7 zP049e0+rMyX+z?h8^(LP*I}*ljeeVw_0Ewv!=-oR)AU#(|gV& zr**33i#FX8$^6#8p?xbMuIF%Q$KOMVnv22TM~%E)4sFkW#N0Wr*lftH)&l*WRLNO} zd0HitgTI&au+75j_#G5Xj7^h0=*XxjHAkyvlNO9f$f3b4Z_& zGvDb=xA!Gvg!3njr)xBhEb*d{ z*}L0x^UTg&?n=51{Z9PV6k1oI`VqTcm%OU#M@q&7NpJn+ZH<35*2)Nld6Pk_t~tNW zjatGcZaNz{aW+axMZorfX|-fwyj;|;K*?x_&_S}ipyjr{XFAH-&$Z}e% z)Jn%B%CP-nWK%T$4_R*+)<)NcYgcjCBEj7Y!L7KvyAvQtafcRncXxMpiWPVF;%>n$ zd_3>Bf9?G%bL7aZ+-uFuntRE4T@*BsdOp=&2Kt0hX}imL>Tzd!yIV!Y(8VEIk?DM+ zflbNZv1$Mn0lK$$(Ld>E9*VR_ZRMfWkvh6hBNCi)ypG)AQbGEdS^CZbpZANcHRVaHLQo*oROAJblAcPg4PO+gw+E#qQDe zMjrnRFYIzhC|pfG_)peITG-CEQ085TU4hAFqRT&X#I}H_LTr;+@5{!m(GkkzxV(ji zV4amQ3=e$tRwEO3cL^_Ob71;ZGC{)}W2upxk`H-SqSqCL42}o)AR6x~Km&ZrKj9Wb zaWO*s7hjVS`Fb3}!?li

v?GIFOXmgcGLbf+Mf0N+SQX6-3R-#u!c{Row&u{U?a3fG{)VFnS6tT?5&OMdIfh>M#5kbRo;iv!3j2Wi)RS7*=+^g=?Q>@-&b4q z3@n83Jue-!(G(uHX0~RGp|k6m6xu{C80Y{lG`7$n`a?taqn8=?-IbB_CS8FxF7a!K zx(_Tgb#V(m^7(-0i@WQnFZJ}psNAOByQ=NT#W&OsQC?lL9AUR>Rn+N`x4kXI%QOp) z&n&~@wOOmTy9$A~+jUviSSPJ|3jYU0GwKWjjJ|J_GvfEGUCZuwtND*k>*2qCVEymR z_AG0T1;ia6(|pazv)3W|KGPQ{0G_F$#7rP?Y5U- zol?cYU3plahjuBOV_nws?f(MsfE4$7*lQ`Ae`R9M581z3@%+y5Ebb7f$tiov&X0SC?m!{}qyH%D9kL38MbH|IXwFBb}h%dSKXy zy2jtGZAAZ9SrdMDG);n{4d6P>LR)A2e~smh_Fp_M{935svo#rk!4}v4R)YT*Jq$r7 z|7#NQPMr3KpznMaf9J-H`$Mk2k-t-m??-MC|9Ks}AMyQlvzFAaR$05C$DW9OnE&rP zi^T4D3B2g9!{G_H*w|7DInM@}q=fF(ofoG|8rn2ZqFLTobSxZPyh?Az^-HoL<3#UX z?}q&44$RXacuHFD^{7G5t9v7nnNB=f(M@4b)tnRpq2S$${C@~C+owy-+LT+~_gWl6 zUp8-k!4#&(3GRov+yLalqH_DqYqhNJSkk{nYInP0H@UkqamgS0vdeA~F2rK&g-IZj zQVOgnZrlr!;|PDv8x2uXOqs}#z|QcFVgO=3k$=+8vG4x$O<3l=6smr6)N-w#R6D$( z|0GxS5Y79E0f6GA*0FpXVp2XFifT~{$-)hd&EtmLq%loarMhOvFml)DsL}v_m!LRg zG5+TA4|Kb~ZtMUi^-ByKo^IoWx}L6@tI+4o3}mqw&vCd1!f~*w!QxO>9^S915%OS( ztX;JtI+ECi{ty8M;5r+8HRZH$BX|Y36twzd12!yyZ_-R5s=GpX;D5FJnJPt?dwsLO zJ+RV=)gHn%pm@Kx04IPvN0TV~Q};RJT&b5_0pf=s5m?9#BnSB=d)q7i<{e7gzo-mW zFZ}1ci5iv@HhVvqIrzWg6w{9$wX-kX*9B3l0TDMxe?qbsqmcHJU(jmP57YJ?-e`IY zPh!QoU86$KywOgg=(qrle&Ql5$OCgS@A_=U7dD;FnlYjJ82r+lJ^2Azdr|L=h?CCW zZ=S#r+Cz=kK+`qR2c`zJ!DY1tc97N;r??PLz;V@1cXRbv3wkK75xZ;d*ORE4E+De0 zO=oGEw^4s;CK3cL*2vOZie8fWtYf-)=p5AQOJJnGH^6eA<$lW_cy}JfOJV!8HeSww zs67AoSlf>bLdEY{IVXvPD0njEncGYq&LG3@_Pl$DiAK^5H z&W*yhEk+9|%FqMWcxT>W-M{%C8$pe$Op{KwyO-!N7e)*CLs^X+MS|KA6M{hRyx zhtIX}lFscPQ3LtNt5rH`S}t{s@ZMsgc_Va#iySjy1kRXp@7BrP_BWw$&)I^ZkRdbx z)kWLsYb>?9&{vAs&7xfT9W2sbggAR8FJ0Y)+B(qHL1U1~f@ib;JbN7|Q}o;7e@`P% zOxA)q`GV4!#@W)J{IR^Xc(_&>n~m{F30x4IGTZ=m6eh=K)VSTmE(xL}QX^8$BBfpk ze1jWK77rnT$Ca+5?VTw9m?B6abqitfJTR{}n&|((eYwVEd+#dpR~l5dZB_1Q_}IH* zlr4IL?~)sfoWX zKAEMCb#$AwGUaL*w^KH35kh)NJx!VI?2#*+0$1ej-YrEIFaAbj1&Kx;cExMjpN=uE zyJ> z*rc^T{C)3M(LX)@v1^VcC6=_8S@6EGk}J^BGsUEJ1LE4pKUk~U&9=936u(fyEyYKqB7wBp6GL|XWD8oDqXai!MF6k1np7F1q^y9+g?w5aIw`}ml9a@lf z*$&-D3jSmhNqiW?MA?~n_50t=`q^G4EG)gj4c*Jt61#HQ>;^}DTC0j|*@9f5j@h)X z2npe@%)*A$(=L)wMiNDF2xg(EEtPRxH!RERogt;jBz6*l90fAUaEC5Tc_x)Q4;@lWRt0vC=dT zLx*f=kKK7B24vD79G}Hi?ED^So$nuO4NtowRl6R3pP}KQB(1v#^lF!&RKDkY*Vfwn zEDFI%a!bvFt-9mTp$ep8zYny z{~BA#!(*;kT#`uXuf151 zk0A+8BdhlxT5=aooP;?&^?Z_kb~Sw1HQLSQ4(q=&x(RYP+{HMJX`|BPH#IYIN$msh z+g~)L)&ibna*1o-UCqfUteR)~OJ5(YH+_;uK)=sCJAU2NuG0v5e%af3o=*SvgDt+{ z)duK>+e4rRk)WXeltcz5NLY@Pz`U1*OgH#gwh{mMTchjOJ2fMTQ&A9mnite$gPVp& zESySV@IIZtB<_dXTFf&=CFYRte4UyA%KuPVp%e|^Q{x2u$*LH9cd3sK`hw3GJ=f)J zH5yqJZ5|zWGd&SAMm=(gVl4q3BHF#P79vjuM(WuOtq^B|J;Zmba0^OyVd;O4tZ3Z}*^ZG-Z+|5iR;P1%^}uH(hcNlkK|@mjy`W z&`iqxfBdH6()W+q`EK^VfzGtyJYoNA%0z8N(3OJ3?;{)eo}B$Nvrk@asT(7= z9qa3++T3K(@Ja)|oY;;m`l2KK$ybiV2H|hMLH#8uoA60xQ&EnNoX<)n{%x)m$iEg1 z5P0B%gbC_>s^KuIg2}P;z~1FRXXdY_rF$wsg<|O#LyA)=o_4Sl3uAsTuGC+~9$`-A z_dM__L^!N0LF4_J@dAgVHh!tCf_C;ph-Z$kEp>j9=2vZ0k{T@O`V6Ufz?G?adOY9i zOFHL2NJ9hHoS1DdGI#s>>86z`I=e7AEY8Y>vZ~?#M0_){anEtC_A^7Xt2sPn{wX3y z!cw#*gY#eSXyo5`f)Y_G`@UF8*sm zQnW>nb}0HURYiw|mn6Iy zJr}CHY?+xaiht3on?E1u|4)GfHtN<*0)c;c!xnEDcB)}~M^xor6e2#;Q@Ujv(8Xl@ zzdrQy4<~tjxRT&*apMkxFiS{}ps(aP4?NS&wWgs6#pYy{^NjbTDDifATljxk9?W0i z_a_MR(?1TwhG4Ajh@7L`7Y<9l|28;tL+8R%zT$U1&hXH!cnVX*F%3ivr$=ji^OZ)jAKJnEfXRn$bxhQdXZ4~~ z-`v;3Modsssxk4?zv*paQTmpJ&_a++1+l#7=s%-`V8F@1qfy-d`G^#@$wqlP;E|yy zogLvbq-t1Q`OU$y*u~klco0*flXcR9*PAWK8lI-JmbVZ7G5d$l0nG2IWbGxNC77hd zgWD@xgJjR?T-iOv;1++g&}gRXb{3URit-8uh}8cR-QTi&4;;#1c*alhheqLs`@4gk z9#QC@)b(l__5FI@=#*g2Pi*a7osP8+LH4dvXrJy~|MJT&2B5bhI%)92bEP-K`>wVA zi%S2Pti)71VP__)8TG#=;}y)AoyB3I}U*&(nm2OS|c27rZ zjN%r>`Ef+Qm4w>TpbaP-^y+=;9IfQtZo1?kNzwwNrCfFa{x|-@A&=pJh7j~qqJG9g zJ&Q?~wMt(5w*qxLPqF2n2siGdAdV?P6qR5@9yh~zc}4%$wTxQTc-Qq@>$UmKjb>}x*;Uyf+%qFSnqs3D{xhN{#%g)$46%cSi3;8iO zLu(?gkx<+9f5SaEQt?BTK+=CGbwh0(by|7RiECGBUU-D<9L{su0(D&9ZJ*%n(~a9v zIAkGdcFmEuv^FpW)x{5d$Bv!?ldEkD?$wUz4PCoW=fb{>9n9#6oMb?@`z`NLv}9_d z{TA!iM73xfEMIC=gpqRCSOed%27c?G?yn^alffU8Tq{JGP%8zldI4q|Th(1#bXjl@ z!UsLh*`7~pbxGM>eus#vE=0G<2Nd?+RW)|e-)C#3&_Q8#ls1s$EG7g38)5=7_p3Y) z3^QT&+Tp(p-gc$d^i2Y>IaJp! zJg5K-O_jW=#- zWFrEysTX1ErvuXP43ztmw-?+U%1uf8xGuFb*_)XBlEi;K3cpU{rE%ai+4VY_PGv4X8v$~L$+W$6=US01_?B`$T_I7JBUf2| zP%A%*o_i^JK1Yf)5|1Ocg?FSvxEnCf0%vgVrpi+gNgIJRARtugRh*)-fjY!veXb~*H~*!?-417_Prw#1mzlUe^ZTBf=iT1`jJ;m+C!h~6>D z&W|urs$hvw^BTR>WI~-nQT|13m{yLY(-B1ETuX757{5~PGS&)1tEcmBJ zoW{pSFfxN)+i%V{;y1y9eYz!O!v3T!B`j90f*DIEZR^;rd(2xbP1`Y8u{3Jw0KKZv zU*Hes3b4=?q!thxd@vtb1CxxJNT&8=aJGVp#RUoy(Nf^r1mh3dVEyLtAapeChN;tU zgh;v5BCrEWi7eP0M0@`Ibj~3bJP{;)2+|-J^dNLtWHE$KgFNCf`-r}CT&5C>WOY=l zL2z1o4EK0A?IHR&x`c!b0+474F?xs5s>-dvb1&xUH=eFB(HuO%n&O9$-Lo!dg52jz zi^ZOvZCb(IVt@#n&{54zN!X?K{i-!z8}lc{;=*U~ebVnkzRU3o1%J(59?9FQFs;5T zBrw-eUt44_WaXxCBdg)yFhz&O$HLnkHN7ZOS4=F8D2IQ6YegO5MO%;al(-B__eY$R z!h#sYtUd>Juv?EBl1(YURegv%Ms+W6ZfOHVB*o+`+)=>oM7N zh3Q)7A~H9k%AbeX-gGRobtpWpW~99L*5=7TmM;_+InTc(zvu5yaLgE*?&D+Yre%v$ zBJ#aEnf&{sGN?pEU=(Od*)p0J$4u$oz47N|Uh3ui?S*z^7zyQc#b1xtl~gWH!OiM% z3|>r8xQ^32n#==_-!-%?apK<^ATToR=+GgGOxVJCNvFPn)t|E99f6=Zn7+NqwKXR= z)1*q<(Lol*V`TnPkC`QCtw@MzRQc2X+_j3wRrvGx^R22-Wn3L=Dbr<9ER4I#yPlJt zI>v$cpaA?8jhv1sv$B0;P`)@h$HCv&5D|?aQDFAh)qeKJqh$xu;uRW*z& zI^F5)oQDcZ7Tmup4tth@z8Sokv*7d-Eck*{Qp;N^Cv3iM_|t*}B|MPGkHhwQGy z$;c7I2TSxadD(U4|5x z1#ws`ngy^HjxP+$b})WKVRhW+5y#xQR2y@$ZRBJic`b2KF}a96^n7CVOcSxi=(s(X zHs}}Ba>kDX6Z*|=P@rN~#Io6Tk;#SVit?4pPvW<%M~4+rB<#oRCjLkThgkG!%CI>j zU}Ubf-9Y9VtjLq6B1I|e?nS~K@;heux%Vx9P9oX1#`6nJCs9?vP&;V}kddULY%AI7 z!D28*XGx~Uq>}Rq`4DW0^)K7+9sk?T&AE+{nGGijz9jp&7dx3HhKQ(IY?C5?4Rt~n zQ|v&XaDS|RxZ5GzPb6T6CqwPo{`QnFzj%7B@4FI=!b^r8=9~wN*Kx*wZ5Uy+)0F7B zw(v@jUuJ8c5ZIbwYCn$H)rZU6u;s)Gw&-fD3*R=Pau)&=_M+TPAXrtZm$@-G>N&5T zcBISE^)PrlAMz+OG?5msk9=-Rf(6G{JR1x|95kB|U+8Emp_@vaB~vg5npj#A6$`$8 z12O6S>FNuvxd`?D1|XK8N~}H7z`j_?39MPVKoS#A%pcL#7`I*#_L)hctDd2IGJT`Xruv4h?B zQv6i6)CNm;MFB-_OBItkHJrH=ASynZ!{8bnBUP>e4l+Q*aW88Ez@R{bp09Ivq&->J z;RG|xfL$mXMxl^*AXmtoC`~%**>fGIW6KyX($ewI7p^=m z+2$1SuoHD+L~eFf95A%XV^>IeYEf|6&;|gq&w%`NQYns8zi78o@az^bwaUzpW;+dk z&#c3w`;p$S!7rV>t)jhEOU||&iZC9NT*HDVfvuS=Ey-3vuN>t^o5suxx3cmrE(^q; zKM6B^`~{Vn5skkh4yQK@hLGcD2EjvF4JA)B!niIad+$1u5f;xF+-5-P4@*eL#EK56 zGO?&2xNaCYo5O`p=R(;-=b%dDK+}cC(f{e0%`$<5Sw4gYSV$Hrr(H`v|7(p~wNR5- zGL|5gM2!GKM~_6`jo&J{w!cEl)7*jHo8OMoc@9dJ6oy(>btzQwaej*B9Gqo{j(uaX5MGU6IJN_feO5%f-AfFBwZnuphXd7kF;m{ zZR@bd`r*^vuh9eVnyLb+rm*Is=!8XgA{)BUtAx#}&**;B*gF!IG+ANf1F^NEYEi>!e6M36JAuJXos~GE#bp!bvH(!r4GZUu@h!a!RT+h2t?GCMA*Ll2%Y9 z#MRlbvPE8(%op2kR3#Ao%PezpFo1)63vOy65f^{Fu8Zx$<}ojcP1>S}CvQ3dav3c~ zUa8}J?jyQaT9XhxcK*YyQVhAxjxD%36e)EFP>HrH8E~d$mRKw?ppWpCXtqM34DrTT zZzvsE=yA@-|I*uvUpp5Azs%w50m5GN0Mu=+EWK+=7Bywg^4suQbV{}mjHPsu3~TeF z8BPl8+;;ICTNRy~HfqQZdzZsi_^2onVsTAiDokvl=mFDf5^RS;eiuJ>m)u81u$-0i zM==$wITITcWfwUUl=T$vFm}kF7SvI4K%b-Q+1ilLoBq%8i(+!mcN3s5pQn3bb54&| z68%GG2J+dXLRv2K4+&c1r?MO`AX2vqc0Y_p7|gA#s*eZ+!WhA?%x{U^Ye6oMoke=<{KzVz9CF$QYhYMvB*L%v+ic?V^Wak zZ#tg`Oj8PSbM(FMAr-b);-WxYYhli&F#m06#IJLSZ}0;_+*s;vpepf1xFLU+n;ekSd3_Ca2z=!BQjExQw-%k3L}{3 zmskH&A4D-&a!}jZG*O1MhEGkoS-3;buP#b=l%K6}{6}H#u?6&M5?_|4uDr%+^Hfnc zMf*ENtoMOI4F(;}s!tltzA0d+#ULmb&LLlZcfrf|8?~hb{@w%sE)CuSx}~fhMop5U z`1PMx%dg4X>)TU>h2)ee8mQ-^28Hiy8|b?`jPNJ)lk9Obb6Vo%yvKmuGz7ulKz3lE znx*Q{bi+{PjIlfV3cAzevg1$N_elwH%8t!$Ty6uzz&;(J2XhFTf9za6c4A;Vj-b|> z)+RrEH3O$Gazw&7KbJB>PTMW!^C>jFN}yg0i~ zo{7ZB?;^Z;Aw1KoiKUXqP zwmC%n*!xe{X^3`6gcn~N(~vnv{bpF$D`~@V##MjSG22__)3nQC=4qPL@}g2>2_lcO zGa8ob_iqAm-EV`}vDDJ&FpeH6;{;0Yu#U?GJSVbFX=ER%h38a*qUyl*am0KYE2>e_*_JQA z<5zQdN;-~QeX#Tpt@=66dUwIclyc4M=9p)JW=>QGQ=Q+#`%hUr=3zR_(-D5-$5uAi zI%#X;m7HW?xk`yx7Sg=dkvlA2a+~a;7wEa$`AUnFuO*m)NMOM_JE9aod2O)T=_#1x#D53GkjS1y59rn{v^cUkx01e+_laTYXLK z|3x_>IzE14u~!-L{fAyDZsQqhZ$8nL*g&1&*v&Yax5m>sdHsDex;ZH zvBoY9q;e<+U>%bc=CBT-f-e&eV>VN@pocsOC4jHE=B0p4t+~zu!Az38SU@YM#zza& z!{?r7I%W+QSMn4KXbUZtUO3h*gUIzUm1*mQ@Yi`qjoOz9kS4URxFoYHqJNI8j-B{X z6hVs)IHJ(1LC7%9ql{JEIGv*;NJzkVxw4(-Ch1lc)hFJq`hzEtr%c1nc+0*bdd-dBSG^k^~(m?q*8r`+MuD3OFK<&I77H$y5adNK;p5%Gb z+xuKncNUN0fJT878*M4TWo_oySth=7M?zKA0I78RNZ_5OWY2W!G;?a@US>7je)kK~ zYvdF2*&06^3)J-Gwn7{=yzx}Sx#XZWreQm1#E<8b4mu8Pd86bjZ?8ub+O%Wtx~)m0 za!;U4atu8Vi@^8aTU+Sl^978&dETw?V&|T7NSSv`^*^#>yMHekSh%uLTqYZ8KPwhJ zT95OsC`!&^nG3eq>#-ikirl zEOnl3bcI@6>u`sVRBWzDm!$X&@KO4!CkcI_5R_IPvU+A(wwJ8klY3Jnx#aPeRIE42 zG{|yhgPcrWFcT>xLEtE>k)YfEY3$RxzLWovK}Ya_LiZ07`vLVeEULeZUbJ%f<0ZN_ zn;3sZj_!f4RB!KSE{d4aM%mhu2CQ@D5!UoH{CW(MB;1JSfY6sJNDOam+si!7T8Q4G zM174SgQv6Q7h-N6no(l$C4zx5*hX(PBua_LBA!AnFzPq{WTjLpsT8UG=;I8G;-}P{ z8b573uJ2!yp&Qkj`^Sg<^Nd-%8%Pv6z^l?@y-KaYxiR2A4lWDN_n@s>rCr3poDR$E zg+;N3j&lUFv>^Is{)C)VR;8>>jMT40GNw44F6MDicro}e{mt;@r)^f+Z|5fp`>)bR zr(z_}ZJW*4XntqF52HQ%Xza*h=;&c{5h=7}Vx9BNFALNu&`08*JJj6+yMk{-Y~5a{ zv)%5*ocg|q@q(`abLi^DyHE?SMOG&Q!{T8vz9?Brv^w{-w$YdC1Z&_a8_*#2NNLv0 zvP_Sqjo5SRu z7NVd+kHM-ibNg5Q8t;AiZY*SxN5$-dbwV4KaafPZ)Sqlb!& z#XAc*0!p50W9{QBiT}l3p>dnTPYZvejasVWVKL5CuuKaxBeI}CGU#O5mgWNwXD||Y z@oZsLAj5p4OEHeZDI@hA1-^(n*YcM+>QO7gHI&B+RF&uMjiYCEUnCZm!^j`Oy$<3k z8*)$mH}AFYEqs0F5g2@hzDG}=09&=Q*ip};=gf0glWCSxxUTC5rD0-K!Jj|+&NZME zmJa@m)5aJ1qHk1J@cz$5QwT6T6k3fCGz9)Q0ZraoVip~`O^7|CNA=A2>v z*K_}`yU+7uXWFe9BXlUkex7-UFs7x-p94$v{xa8;P? z#-lQ|pJyOsjbHm7#;ky@5Md-JosJNuPG1NQ{aE*0xEY-LAUIa@5bBi*M{bCYf@$U$ zfu-}cZso^GFERu4iJ$x~)wQ%zzwP&g6`->y`gn~Dr*wD%dTwGBcVYZ=Pn>J-jUNgV zs*o`Bmw9F+21#WUnF6G~HLf1hQ5!IKN>?{3w|h*15|^lNJL4}?EoIYwOx`&s>d_T7 z=Y?E4Po+%3Z{9jD7HzMv$V(_Rw>3Sv3vASQ%8t_sOuvaS`dtVHxXB;~4ga(p)F~mY zRsBpS_c!)lGp3H&SInADV%0O~r?Wi3-7dtmo&V@u`%qcFG2V(J z{XF&8@_*RKVGuQ?V*<33#?;`iOlj(y2~moEqF>%^QsQp7g@helt1QtO>&@mluBRSf zcVzgCV{lyOOYw)GrZ_nM`&rZk$7G}=a$&&^@Xp;w< zYT+YLq7_eO9F3sg|Bzt1+x`w5WHA(TsvKJD|4P};lPq{|QA8vcSoo>7aS{t#Ivl+o z1QP~FkS;olQ1z1%2C&Y(#kBZMP}i_OPBvNJ{7$k;8@8JE!=6o0w`H1hak7&8yYh?A zE4sG9+K;kx6GPK4n8Bzd-JW2UuPT-~&5A;m$~|OY8Ov2J1e3l?$fF^?A4Q60NuH+- z%9+gUW%Wdk_Z}4wMVo#i#bDjN@*Gns>Cs2!xPTc-`)6Fc9L7o~pH%FUNYx3EvLBtB zz1k_{e4e9ANyymvH8;8plCX+DD90~hrx3+7I(3K|SdufLgG zw^Yd$#>C%BpJYIefgQ+d2C1Luq;<^Byyd?Lbkv)9?|EJZ&a^k4FCyWAOi`*f8}E`` zE2eSmyB$W%HX6hK33%FI`=&FIz{>>f1TGa!)$jL3ny5@&J1wv$nT$5QnXErGv-v{zi*w z;^IU)h8ischKQkUYRug7Xo8*cup4u|?+;&i9EB_NFp@X2w~;+e07UGMpD zqUpB#-wGwCS{B{lbQ2G^b6Fex%+0kxopEBUCGfALRU33RAkTm4%kT~eF1~|)at!!| z%dBKJ;K!6tU!3@9=P8A3=+CHkYgfZh5iTjsm%wq6!6unc?S{nZwuQb0!CbAQpXwK_ zR`)a6R}D7n97l^!Zy;sw-gl45lcu^VZd}9VvBHo=F^F31%aNOW7C%WIeMnEO!PsYI z=}*kHt`cx@NFK7hL-@+Y^5kV@_I7*_+-8zr5pW+W={&?qP(QEyS%N=7*hhxr{_3SF-zO%DgK4%uJxvLhiuXJ~}AC`Ze*5SAZ3D&OMZ`KXW%BW+O zD#v;RMl>dkG&$}0sVP)z%Tu7jF9Bj_F9hl{eLW`6U-~XiC%RuY7JT1A&%9mw+FUsb z#+%r0H27(f6Md#-GsSgmo8PuLn{rvss?V1s0gMG2x*7N4z_sP(iC|9ai|mc&_Atkt zS!U6I8O2db=P%M4`52g_jT^5^3%-w8-nR-DE6Lr;PZz#c&tyB(3svtb0NCM_Y>%LG zpf+9sqLK(86pQqMPXVt`FIwPbhQs%6}``vD$|WRzgX;LKR${K_=aBc23+?vkz;a*|glatvfHB ztf2F_Vm7MFZ?f!otD;^l(Stbn~}d9i!D$)z-vvDzf{ra{blr%{u)p zZ(@5ky=$(9;;fb$GqQ;~Z?a@N(e0;Nd05Uf**1a8YqpO~d-v-c`xHcX-3oV78#+cy z9T#y5-8F-AP3X?fmuLeqZ72s+UD`&UOCT%Q5i`QT@zxr}OQ;w~*bdebgyZ z4>#e1>1X`dyRiU(iyK9jCG>G6?;(zL7{u@=+U%mEFy5uz2F&NSzTHzU>Ek?K=Df~p zujAB7bSmHmC5FL(1Y@x3IgLF!iGx<8UOr)L+yBLg>8Sa&vx07x(hhl~hY#Q|k}Z!DMT#OEhhPdLtq(#u>YC7LfYo7*(6H{9wp+r0Kg zTR+!N7GeX(<(ah~+ZV036nqWK1s|dknX~F6#J^MkHeW9tb)JJaSE_(kcdG)t-PXwl zzOxhES511F0yfujmZ@Ytk-lD&O+L@LA-=Q4dWTNp<56aAA?@o8!YbNr6~o`UD_FG- zr7<^8wB>hgbe@y!WLArfoeLDoca~y{+L$AoN#tIH(&}9K5GF5%H_qyN)+c^!08p3psQzTboIozwSC(nhj!+bmE=A z*_)dxb75w|O)ovB`s4u&?l#Etxo6tXoY|T?1_E^xo{NmW;8k^rubwuy5t%wMary7w zY1Mi>q_MU~8(s5v9_psw6%@YIb(z=%USCQJwl{$t%QEQ^5!KVnAK^d>_{&KlUFClf zj{;sjy&hvAtIE)3=+%AG>nN&sTSb}M#Nu3qd`0&8^N45rQhouWe!ef=rzvf!!@iMb({H}nHD$Srp~=x)_F#Puk_&J7HlM& z^x$aWSKy($H)CWI#!ig2c&Ah$)mvx^{e!Y1Z2=~aebw^RaDxVmw%UBz67Y*;sXtjh zZ3c~zqJGei`U3w&7D3MMh^*a|lxmMA=8^#(m5^v4%0%DR$lF25oC^gtw6Cu~gj3as zY9Gm6J(s~VRbrB)ptk(OOCg-@gNWxah_P8QR@`kPtU4Pvm08mj*s#uQyL`9V4dxYm zqXt9IE-IKK)3{yLBd`j;nupJP5_96WY)>clHCiQ`oz@@SPZnj^bYGo-DhM_vX1`8N zcpd08d1&KDLB zEz-yHJL{TO6J(&ZW!5#>o+F5P>G8s6kO}&zaJG%w4W_TwtIGqry_srvAJBV#xQ??h ze&?DmmJSz+1l??r}^^JUPq%^{1MO{rDp_N z(uYLOU1R0v!9rU#h*`#j=XM{v{h`{&5ZCAKvyRU}St53pC7$|~;-ECbq`x}xSIHf_ za?Def;Hqhq*2jer0*S=~=vOLiLdbj#sT;SzdNG&IG7BIWr_$~s&y+SuyJWXsAuDn9j?x zYDdT*faX)bzShki7|uP3-xE|%P+-SSg1UxDXJ4Iz;H{q@<*HvhD+q1Ud%1G8zC9~f z*VJo}6~yXmv?oapT`2k*-x$}en{3?dMjKyx_N%I;CObV==mgas-X0YyAlcA4^|wBSvoVEk zlSYk+r@xkrS)}%ieAZ`{T=t+Tv(s#^K|0?n5&DiBO6vJH;o_GN^h3kLh~(9Nl_bjP`o^!aQ^ z>;6Lqbc0#+1=3@ zUX8ITJr2*;470B1p!v-<<2^@ujtZ>2Nk}Q5_ejBfC8GL6k51F&I=IR0sAG?ga#Wgr|D)h-lx2A>Psg;+jbcL^(C)T8xw3*K6^uIu zJ;Y`MBzN66F`oEb`eB;I&I)o4mjLa9!@Z-#Ee0{bu#JBH#V(^1HwH zJ{F*AOVQf0C>@GT^=W6Pb`rFqsZd5+k&jzbQa5<-Hg0jtOBua4>;WW8uxCsDFus_m z)FgvKrx!zc0yEz~IiG0eOl7d_m~fiFcgoE$(cY74%6obdlG^us8X&(;qnSMscsU%z z7ATkvrMi3zxQ5@oa4+eAJ29z`iw(NF*(Hy)%x<;R`_)b3kDq5Nz{Uw$cHL;`?S4}! zf7yhNSiRl9#gD%l_?piPzBVN?W!@zlwQ(+-ZBz@?oL{i7b$6Pyo-Y}s4THpV!#X;< zz$d;By|yJPEw|?qE*JF#3zn{x4IQS})fvq*N7$o~AamKcifN`YM;gg;vq-*Cn%6y| zW%qrxW3QlC*bcKKUpl7R+SDNq`bgI!&}Ng0@0E9X2-0d|1y2gE%kzb=$>Q6nZ?n$Z ziEksnvvlgFZ$)fhS6{K7o?fmy4VxchY=k!{A$fEXwqjPHee*-DD;| zxx6tEb>{U_xc=PkdUp4AV0XIl_T;PieBon~&%F5JA#rTc)~4>ensQqDZRsQ!{rjSX zjuB5NV|wflze!e$k&x>+RsxOAApwEK`6up_2ha+$%NC*7AUa=003j^AFOlr>&$Rd> z?QYvJL>D)Y4^a;7sHEdDlg|`P;U-4rUkp@UMogw33#b>k2j$m7STYABh9UKzMpAJ} zUk0c{TS(GAp$}gd0P+BwD;!g3UC)mi94ku=vikVfQC2A$niVLb@W(V zM?;hMiM}jEakn3+D3QjF%C(#mNm<;P+u&q*3dpR-(X&U=R1=M)p~2w!q8C14P4jG2 zod0s7y*o)xNthmPdDGh{4Eyu99c7MJ4PkWjuV)!{1VM|T3yyriKo6@D5i32ztdPKy z5@Jgj^7_?Q@?t(OWj4o#i(AHV zzw%Y*3Ci2_G)ug+Ecld^+4@q(hy_k+Z8ur%hWfAX^*q65YkAttKCMSpC4vxl{7V%m zcPNBO;dmm7I4Nr9*$~aX$8qHoDvTLYvpq;TEK*ctQ^q(wP?;iNQtz>&dFOQIU$Web zTsnyu4ax3PrYK;Vj@K8DakU0t<02)nM@HMlvrd7uM>qu`=n+F&gPr1i_?)(@PlC`D z4(NGu({uTz&hx0wOqSSMc{zvcT?Hc})2dh3sU1IxDA&6m%ag6;o~%%fO9s~oBBINF zSLM^u@iLfl(UA`h2ZyuW)=-cRUn1GN}|%zu+W%$*T*xkR%Sj zYR);g6=LeTW&LL1bWLSRN?1TPeJF{WI}4O}t!sjjIdZ z?5sBj6MLIiGTT0hj9X_1x6gFV)j#v159B4%W0xn7K!xWFL7R)WsCJUz`I5lkv>oPi zO$F`K!;LEJLb2olT@$zr_QBh*NZb>SlH`I$^NLE8JV)2Qr|eCRXW^}j)8)f(&xOaA zB4;zy;rcI=$!(<_5C4W*w38C@4k&G$;VJ|?E)eS#u%V*>0s{>@ApneO~><#EFt>5l@x_xwyWUxY*s{8*q z`^v63x+dBrKybIJQy#o$fky&aSGoRK=EC6P2G)w0ZUzhxZMv+ zS#4a*U!DKUb~RSHdNNTY3CN%-?%+Me)X_dK!@M+(+!qiP_Ywb9Y%v&2D9)_?+;|9q zbR;PO5F}c3KL#{!b_f~~&FF-Y=fe!CpX0u-oiDA=x2@expx+=uAM77sFAwc)&o2*= z*P)knxGxu_xbAWP+NcC&XURI7jpyE-8ti0>_1a|Usbz9y1yL3)kwR5+|KT?5)UP-i zKdk4RuJu?^9XrpbWFD@d6-&hHe|rOs*<9=%hVDIS)!tU)2R#MuFVLCZZs!7w2zy(W z3Sjsg!gm$$^=m5M?ZOaeKjuKX(9%hzgyP9ji@;$l@~N1wY9X!@y}?uhCFb!7{<0&c z4U%891-&w=`q#RPJV+~VBCgGyLqf)L`d|Kb?Q9qR-FjMcuf6Qn3R(-O{m_O;fNM}Y zyr>RpPUYsCw}kXMXaFUTrL-HjO*zr9)MMze|3=I#=3QiLGjM$12RP$)Lh|bp+inD?``z-XZfn>R z>zlc81KO?H`j}_BtsVe>*CsSpcoJ&<1FfdwI0Xz^}vn3yG?xG;~TCOC=O@fZVQ)LuS=;dVKJP4-F>n5*mAiqrlWfD2M51n zj01f^cmK=cjbyJ?Z>>4cc5r3d)YM~uM^^2&_!n{peZnIST?OUxg4mP+DiVLE#Ovfs$}A> zXX2^1JKq;P)h5;J=0^&-F>23aLhmhbkN@dZI3{LPGc;%pe%MSJa69{CRGipn)6!@y zvLqmNzj_w(Sh@Cm6xHf`%UMo{yTNeAZB%n{L}BWG6}J>L5vAJS+3wuEBGy(ut+Bmc zcHP(IoUhf_)Qexg(yP_iQhN=gnpYKkxv6fu+jciSGp#?A6}>^A(=8`%g#1T^M6fB_ z=UrBvOhUZJo1Bp~h~#W%3OSZxR9UVTyOv!ZCIN=~WPa&*?!tYGV*Dlfhx{s;a0@Swt@@;)UKM~(neH< zM8s2Dt3txV*!lg$im$u%tO;Onb=bi4?pdJvGl6$(8UETC=ddLPlrkk=9nX24S1%qIqIn z&O{mRUy9v5C&LPZ+66jc=t`wRuAY78-Cnh1>br|DMYs$DS86Qk84^9Io&4CJdYn7oMz>-&ur1x#w$q5j9*P z`?#i0hwZMHS{se9-Pz3i`a5h%<9UeDv0;sYO{RodpMHyar$g&3hwsr5hwonUMpG$W z%x3A+o_t)8dhqC#DxzNB$q?xW`fPWSA6j=6ObNqk`w(B`kE+$|unnrsg>A3uEgNPs zt}?~CKZ}5^jY-?N**T~alhMCZIA)jXVZ#HVhW)phwGMxE5I3aboD0Fsq>Pk;IWT6v zwgwM|sW_f~{q`QXK6xdN!BLyfeL5F1g*auffXq?pgwW5;v|Ey@ST+unl3J>yEyR>5 zQ;@|Oa%I(;)SCjW)`dJxJMVL9%>vhsvZjn>Yz@I{J&H1ONDu_(Y|mBfJYLDjUhz9V zqvFwvKOP&H+t23uv`lImbR0KVL|~;3>T1B5OM8iMy^UH{}`U zJfQsB_;-IV(e{Txr1@jm*{`YR#VV;DJCVeSD4?6PAq~l`=~moWu4u1Wql3ckj|$Dw zFLq00^}SBxQi!&R&=+JcUYvc^d4s84M!70IvnhJtP!+ZPuf`&H5#rSsj~eZM`PR2h z;2=dCVLb9Pve@`vb+d<)>+yQ>onE$QtW&wg6nmY4SnV4hOjlagPXp(N(|sqY zzj#_rIsvlz)!t0iers&uohpYGX{D162G!K?D+_};>ff#)|xFW2a)DGGCib z__)=h$no*7uVxwSHuz|T^7usMp|9Pl_PCuZ(0S#(OT8GYu6?;urruebOG9I=PSi{g za8A`dul;u?GnFG~3txUgOz{3L3fHaXLC&IZQoDmF@RXBlQM)*8eXYBX&%{mz_Y4=@ zrd%*Fixns_?xOtA7cg~ixn>~Q7OZbjU<6^TEljehnZ~0Oe7GeKAOnO?6&Rp*yyH@_ zrOUZoPQo=vim0ETXv>|xnd!mjwQM~hEd>V5jo9zI3S0iWWnMg%Trn`!U*4vonm3|2 zb2~fe!wW|Fphy=vJDy3}xe`fA#gqP#KYc`!@~(=K_9&2JUdn*Ml3%6zmt>Fr!Pwi7 z0-Zl)X{T!%t%N6=sC@*HU&F_m=!c_{XMPXN?zE-|?v*M2Iq!R@3x-2kZ*ErHS6ZDH z@=nYNMc=SPv8Sk@vv(bh+v`8uDeP=9Nx!wLKAlb%oy99t^Y5b2xqRAFd)G}A$tPgf ze?U|%y*Qz>?K5diItZ7gg(=4JGQlNu{lD$2VW>o}0TjZYQ*`8q4BMX-Ie3`)Sh**J zDkoQ^z$pXb(); z{<41W(6ZZ;#*FW^AEhu3XCS17>qh;h12(V}-Drjf3EYrYjztP7?qki{nfHy^TCtsK z(^%+-a9N^lXV1nsnDJC|>f`y~jb$~nT(Z0Nlc!^vvM6)hCO5Hha{O1bmV8!TUj9%v z9mT#_!Q1wF_I;PlMomJuR^u&c+d{jY+(P}Vu3~XKH6#C;Un#`!t@sqdE;|vBAYDvD zz5q(3C*=VDH2u24hx}ls;IK5E#Hy*cJ3BQ<{~a{`7dJD)9=}eZ@^bd;(>Cqale1&Q zyTPD;K&rixC97oHOoG04<;(-mWciWx7@(xKEgi1F`>)iiMBQPbs=QP2g6cpWH`S>h zBi{)$8-f^{^LWJgaDbBf!Y`lRn&N09Fv4%Dr-vIzdZ~AE+Ti(NJ)T*iqAZ4)EuyZL zy*eC53WjFHgdF0sjQZ5!xE?pcAREy;k}9AQ02=AX zfB(<+Z!C81n@4r}zCC}2SM<~pTLju-TQp3IQh0BBQ=840*KG?<` z#}$>C5N39PXi(3Y>aE)*>0f>*7YJx4KyS|W)KuZ=!`Qf3Y^&cr1`BOLkCMvtF@4H4 z489JTALdC#@T{=9nAbEyU$GOxqC;Qap&s`ueCn~qLi_hG^k-*_tK`35_9y=1^{o6> zUB$&+>sceG8?T1@2O1+~j1D);S!=WEA>Cv=;m7v!W$JSmZ}3;}KL;jGM z0{Yt?n<$Kudz~%@CBiUihm(&HO+qcOkrL&W7vn~ zxz3<4tg&ENl1AKkMQA_c7E^lDj1o#OrW-P?pS=e|S=s5T0aa0k{ncj?;G@n>n*PP7 zN}(b^%jTlhtDt2oBbqMIZ3(CEQIpKrZ<>*d=ZQx{I2jqDPGUQ0a;nNP*TeN_6~@Gs z7~IZ<|Ex3EjYZ<&$=NT0HPsH!?eE(PsXoO!GtMb2yykR zq1oRXDqp|k!$eS)iBV@~*S3Fs(r0E={E18GdM~m{2-asxp@Y?LLQucby#g1tP9Fpt zM89v3_T>MpOb4cfED|TJF-l10^MayZnPIcYB7V&ZvkVrvJj5hDS#PNhgh{oiWcv`D z4803Z7ga?E7pu3ZgEUo8kMxQ6O?L^HRC7yq?el=R1wu}-__g1Xuu>xl4oT2w!aem; z*Bvk3)+MKqG+Guy=ypZk-zw)(HyVAi3@(xnHbpO0vft9PjT>j~!wX3_^7$Q%Wg9Jj zJ3G!y2A8LsbfT@xe^6xI+GU*1zwCLC^9#7-jls(hz&F}7`5Q(yC*pPDE{_cC*Fk|4 z@(aqeK_u_sfXjQPUpR;y>T>_RAEw`60Vu8<;;7zlzH$*Tw1`nMCl*9e;x24Qv4a$k z6UE&A{KD1U`ZMt+N$xGj}U z=IE^xz{*2pSNGI)?4hNj4k5HvXiv?c6A-TNQRl4va9u}QaT zCb{Iqz4XY0-ec*(tx)tveAEXM;&nSIeLE2unBL)+7RVvgc5vg`ML5T?0sA^BvtK1^ zq4cg-yHI#fvfTd$ociefcA@PrTX3|rfF!HIngVSqUq5x!f=qK6UsZm$aQQ0}RyX)@ zH`Yj^Z`ZW<$>nGu{ev_C!~3riXNwUjcxA~%Yrs zU@S<1q-Z7Q#=tHL&{bl_^L@U80^i2qhYo3pGH{)w2H}=GeT@)=LBKzPiU!wI1tS*d;zI-S>7%XpXm6cCo|YG zcTo^LR!;C*_OWX_XgrrVFwZBwO;eVd)+e--)5A`so^7@L=W>Uo=T$u&T@_lS~Q1{^y5pa1#{CDNBWv z*Pzl~D!QIStas&M08J;+!qRN5h)r(zPO7kPt&tr)1uJD(i!e@zNYqaj`FCkpRuWTp z(;|rQfAsoEuibRMpzFPpd?Lc`zi0u|GtjLQjxym(M;E*$qrM7l8jzFPn6 zb>NMS6$)uf!IDS@@M*s93o+2I;`bLSpG+OAz$o>^r8a%b{nx)6DsB&gNWu*dt`3O4 zis8;bVTP@uRH~0EY@v9H{HRcreoG)H-2j z92*?*nn(F+d%Pi|sUafK*Jli#KR8pgimo2W;vq`Qo}%mp_y@ja{_E1#csr4TP?FIg zA^z<1GF%ufr6ev%sKcLUGNurDRASvk%t&8#M*CV3o-GeNV*>P>=g)Xd^q9Cb?QRS? zET5N|cg8g^*JUa3I7i7nheBQ-qHARP#0niIWnyQ~W}{)^V+>Ni*c6yN%hBfjVS23@ zLUhuBC(07ahbe`cPQ`TSs1iTw>k6SC|waf|2@fqKAYIfgVOL;q;_N)EaR? zgacC&W|{cDG=A}MuoW~3dPIL9zr9dn)UgMm&D0QPx@ytG9eNCp&=lkfXq$rjrhw}mq;d!=POo0 zdB`jxw}h}8y*na-Rui&Kzk%t8zQsIigFTAPbhtpu83|?ZjKqO#iR1H$2me0!iyyOb z9yt){A6}>(qWtgtCyv|Kk1-Js@8C3(Pxs+SrFHF2Zzcm2Jc_p@0C^5dsL z#ulr~#pJnodzHq;5}sEc(@jIVQdp3t-Wpik=fsd6ZFy17U>r59!AH-S+5LIoq&R=T zFz)QQ=75sQV<`hB&zs1sFkU61mr64qs0Fw5Jh9g>25gf{8Cr)24s09TedKMoy7vEZJ?-pvMl zsX{!wB{Zrfr{Ou9DB%;cI?$Abr%)$KsDp(MH}U;ITmGx;(r@Sm|9)jSkp2tc?QAHZ zp*xG}1z9sKZqvb(Fvw%@K2S%bM5hSy`CF7fT5Zx6igs|7@;nwVA%$;SG3{hwU+`zVT1{P`X6iumL%X_*5vo*)fUX9eXkMt~oo&Aw zQd&oe^{(qz5%H#;@d5Wg$lrt=MED0NV`$OJiVVg|It{%Jh~hIh_AP=@6_^0Kryf< zr``=~WLgqWtW8LvJ|*%=cYDZ91B&!7Cg@~84hiY$lZLM;R*w9a+&trJc;Y{01 zi8i7`G$#!^*ismq)_Al^)Rq|0>I1)}J+K|s8A14#?^O2!M9rFT!cjfm&B*?5@?7Z0 z!(R>+UUCQGqnhLBNHx;JZ%X ze4ESaNtbEndGua<<~ZrotfNTe`2N-Oif?eIeN*PdZo;`eUbLu@uXkrpqPOv}^QWJF zl9yCqH_d17%wiPidltBoZ^zK|B34|xHk*G?P-yyg-ecl!l-A@`>Xw7U)7Dqn#-5om zypgz-`q4g{tCvs`U*g`OF;pU%@s zwx061o4WTie>So`#N%w4RC!89J{TA>nwlF5%m)?j2Ly?#LncvIyd`9|9w zdgOLgW|`dizqf(g50hah5H$LpV(pYt`2*H;>!H3u<87S6_N z9a)g9_?WDEp5vg7MrW3RUF@eKH`XoBV&~p#8t08Z`?YS<`FnUB(7kTOzndAb;2_f@ zWwxOwdRuclCvm*7-0*A7wK;P}XO$7*%#NRU-0m9W2Z48+j|-Gc2z{{&bame7DhH1u zFUIX#ZhAS7qftjB%PWEN&Ie}2VY)KK;0pa7PWpfsULm`nlcH^H@&CDLm$FL8+aVod zYSAQUuq=EAq=DK2^qaV8YpdlTNv!-xU+P->J6y#?Hy$>T z6#th<-2UZ{rtV*aMZec-^)|Nn@X5ets~OTJe5PFlw>dKAd%j zo1%i{+WG@QC~_Srkkm~rM0>~i`YtY9_H4V(Y<;Y>X{y~Xcc$t=&a}&8iHxV$snlgU zr!d%d;pK2)o=^q9%DEpQ2OI>NB84hk zvzcYJ9xKR%{DhWdyO^cJ(0A~wS%KeALUWEjl3i{Q$$bqHgaM)EARfP&mHU4j&V9Gw z)8{kBmHUe>0rxs%MU(qapI74KXf#Y|Mrv=R+I}eFZJ+(5ToLoVtLv}LPrx7maIC`a-uS%xf zlCI6c_7hc+sS^uFGdI|pt0-Vj8*w+~2qVaUoi&NxB2+lh^QSQ$57TB{oQwvY9~y#K zoUeD8#ek<(`Oot!Z5?06%7cCTyR4lHE!ulqf&D*PznCvospiuf%N>%Fwz-K^e-kYU znm)P~8D}3mTQ2}+K%D9vs_T2*_Up}?BWKH>!i<}j8dB@*9X+9Y`}?&OlL_{3I;R)m z1VNlNBkV)E>32ueOApGd$jG2Y!w#iG8&w@qAMiql`a5Je4QFZ=HYpG?ahSEaZM0oa z)vuhLcF()F)zUZB#q1!f!7F3~?qR~#B74gUGsxO9Q8bPx$WlsPIm(66UD+-cjxjq5 z4I+d=XyFC9?eMXx46XboB6-PoCV_q%l(}N_u70bQmHJJeOI?O#We&+|_3KP(MeVVV zY~JrS0l%0#3zVEX@5rF*F=%1O8=6}fcEoWz+B~^U8C{T!lX56Gb%yWreA%RSyx0;R zMaqeg@lM>Jgeeqt^FsPl%DZTB4;+{vfnB$wIXJk_uyJ`H4|pH!d=lehs=oLjAL zJ~+`3r&wZ6ifL3Wz)|J>sy8@tW3drQnyXKO@+$yd3Q!y;KL=`UwC3 zAHh6iHK>(YaXJK!7dEwQ8a;gt{{?iCjsd(%(J#;0+!LRIsc=3iR)!Qos;KkNPgj&_ z6cm{(zdKb7Qb1jQH>2+|sH{`-pC|F+7m|ctyjMZS;MwRLn>a>7;>>u>{8fFY=hRf2 zJc_0H=ekhuvC?-yyj99y^L4fPFB`N+FG%_ zx;(~?&U+l^&U6^-+WDo+eV+O)C*$DH6UPVJz$@v`^$CJ)C0Wj6F)UX>x!!} zh5S#}$O&cj3A{6}e+luuXL^>#%R8J>siaO1V+|^CM#R7~nux3kmECiFOF6$p8vG$~ z=FphksNrZJb=OG%(AM~IYkn_kz@Ag@w`reAqgO9?dk^l-Z7t(O_rf`QSR>Ei@A%a# zj`&RTysLJD2fu~Wd8I;=z`zBk(ztw4@8vHuNJR%s?Fc6>F1`oP*SEHJBLyaPA!Lrd z+mxYI%hu1hbgoow8znbo8R?kkrE{6=LQk}@vU-W$t$s{WWiYNbPWP{CevS>m5n5_8 z*M#Vqp$If)5|gH(eKo$w)gcux>?WZxUrB=QKR?dXa+uPWd%04pZV&erdE-yqqn)rp zk~~O#dtdNT)`C|^Na%FUZ=+R95;3$M^5EL-dz$mVB)iwxt&Tr~3avMNQN&K?4+3#~ zdAjuW2W46|yw4Fk`J2o&FL)kBSwr(W^2p zhlJ_=Fzab4g57MF%xj`c8(U>Ggp_%#exW?lj~hfz!<1& z_OT|WkpHe%gQqLRQG7EHKml6`gH^f&{{=YgwS8!9vfbkltc%|q2do!~?S|2+ zY&HSM29Bp%FaT_#lRnJ+Y*v*rt@mer6`QtDqey_}_>8ucwqC(DFu5&FTl$M*vSw!T zK=d!;7c)a$@-iJXt3mw<`FQ*{+15NCF!ukqWf4qCeI%5Q*CHZ|CXleB@06r$;Y0`6 z?(Hf8hO8Kz8PktB^{9#*W3{|1glH3@<|*)N1kOwc@8{?FeEZ@?NaNXL4tjY~>Dcfv z0?+=%)fR}jVykfgynt^5z>SYd4{_b&7yy&?11jzxp5r8g91%@)4Q=K$xOy@(^V7f0 zlVNR~$cQm$nQ$#E2p&eJmi&7c-Q^o+w51K^T{l21ea2DE)zs>v7}Qc7UL=;HZd#>jxr)y%Cg93dVx# zo1GpUeaNVAs>ca9CA^UXzK;l7WfoEiU`v;%U3EtLxpr>{L7e0a5sjx>uZ30GA`jt$`4a%G>si5aa9 z3>SjosQ^B!XW{}}y#mLeUjzh%Kg_?q zyl(cD!U#Nw4*utfJTwl^DyhQtl)ci3eS=PR$kgZsHo6rC@DeE;VKt*+W&y9qqFW?u z5@`*H@ITP2kMnBq)8Yhk{CDHJFY`xQGAeGh)$^k>=FX9x;7kVvJ1_9V=Vwb<)^O>6 zHEQRvC6^H__<08u?4$Y9sLnh2HPAv)ickkU=y)GCm;)~q?|YJ!ygf;|RLM5rMHFw) z=Q+9wV^`Mr&!y)X(SzFmMyH?($N#D&@}FWk@nKV*I)6N>3Ezl3HpZCdzv8eHC-<&IQfJhAsn90k35<1ybF z(qjd2sy#TbdzjMj1JduU$wg7L^lZj8h-yt`1YP1&Y-3rNIA^X~=5$DyB&)RV33-$l z--;%{eimsFy$@kOmOolhdOq-9{KTo=O5#s&9CA4H*OC2Yh$F+I$QfV+(u&byN7LEg zVkBJJPM!qZ56oL#Ij-p7{ETN5?U};MCcRNvk-$&oEKbWLVf|kKe?^+~25Xi`#`OAW z#`BM-jETF>kZC&YiM#{}pK3LCOa+6hMdsLE-0$vhf4$I{CToZ!7&1~uK#F=4j6pkbUIJ9HU~tL4w6gR_Xm ztSG%p=`7-yU23p0Nj=!rjFwi?*Ii~7e9tJc%g~8ZsUIo;I#v`v=9lCr-&rW?^bVHbu-(2|UiD-icKM@dDg2$3CKIK5`;{ekl}lJdgOwL!F4qyh@g@dZ<4 zpf4QlrlypvdBVh0x+~noAG|91sG0v}cdSzrwI?5au*>AnIvNy8(2-R{nRBK6r?zv# z(G%p@kfTgM!p-CuEspgqJfVysc?y4u%3{$K_igmL|Aes&r5ju{&7)L&QmAfJ`vmV- zv8@bTp9P~pqq9PJvHON$;J2Ed;=|4I!3r@>kaL(!cd;C}WXA5aQ|X&sL{xv3f9RLkAD;!~+Ko{>m#%6{TPI8%8`_(nO@S_Rbe zU)c&J1_RILkcvgYG5~SWC3)j8*lDGYF|!SwHAY)OQ2Qa-AtErw=yO=QbjndA@ESe;*Csm zUJ5&9VLW-mwv`>YHM$p^m_y_2>auiSo9pWyiYzkSfrC(z6tbk*4U)_iP992loIqXh zN+>D-_Oj!h-40%~jPa-#PBA5|OeV8Qbz!#n(9S12D^MB535I@|%S5VZXW&I2Z^PP! zltW719Nv6+9=WLr$K1{EQEl@R(o0RoVhr$HM3zdx&+ca7vA?MZJGnf}>EXOGY}v{O zt{}H1;g~Ura76MBY?DoLZ~; zk=8`3KrqQP1TZ6)_mdB37XHg?qu`@2N%6#9-+6wE*G)oxx7U)YH&Easm|rHH+7D*6 zE1QePCXM6@*r~#GteAN4y0fx(et~v?Cs&vJm$6Y(Gea)!F2{7iZl-=`sz2!N8oV!0 z*casC3iEw7B>nP)AT0lnNxQK)5On-OzU{!ni-fF==8%;ny_ZMIG9HjeV?NF@qiaif zTNm)SjifYio(9)-_aA%r-7+Z$_ap_?L1f~M9jO{W>n{mr1PYRpNv!~v$=%0E1pE|0 ztdHIwcl$nUPt|lH#dDD&VoyiR)dj}az3as>JA}0mON+RH0*ujfPgt&JFFR;^ezx2o zWa{2ktP+mRG5!{oQ%hs|aunrSw{}f<#ZljHhfO|te^&VySmq*2<-?dHx&zWX#|ST! z5A?fYW)8UH8pdIA_cY5|O?rd9Ea9FlxFF=Z=<;y%b$E_6H|=d|wLxic#b)nqiW2C- zBQ>?qDogeKR4(WXCv!zli%s?Z)XLac)g}KHl68K4o4Y>Qqlbyh_x5y}d2xF;#GOY% zH#L+1mP7Or#b#ik5lU5>nCNOL)yLca-&J+B9l(DNf63&VRav8y*h6D;#!nTjjAvn3 zag6?1nz5~bnqA}*i_N@5XeJ1Jh=g(%VG>MHBB83TeY*xY#gB7TBUE5nIln@^qP-ghXpxu=yryhy21zrJW|T zp?#Cj?z}_sw8x*xK~iHj-&8%XzC&SIAHT}FJKX73 z6?zxx!C>BRZ+YI=i^T39Z8XQ6GR=1uPMNkBnYfda-;$QO^?2F_akxq9ES+CJE>TjQ zPuDe}E&r8~%p0}s8iMG25mn)PJ)HCTE!#J3qY8DaU~zpqi)3hnc>{Iu{adm6lBxtr zIy$rqtO~jJR?@-+w&aIguk~F|{(NQ18_ou-kCtr7L-gH}Arrzi1I(dm66bPv4Ou z=$?Tf?`+~gl{gGS;?fTMXOE1Cjsb1Y9)Ko;I0#qs7mr<2k*7Z=VIyzO1!3f5tf>oQ zpn>l#F&7k6yeiR#Z57}DxK6!z>t@KsxV(J#6K{4ZgRx!j(@ne9veG^w z-`h)XEjdVs8jE9v0$O*9p$!YD;eFmH7ezhj0<-@YSBKVPXP^zslLsz30<1m*eo3iU zSqFrIA7rSbS9h}V<~H`{Kw(OuTFd2kc)T%?hXz4mvAwNiqIqLpoe-M)F(CM)gI?%&%w`R89*WQ<3PX+ z_o1Ij_{t6?k=rkcJBGJ$6!M~4aFk( zVy1f2q(PwEtF~u^x_t~|btr=-!AUX^Z!q-?Fz`uE+%3-|!YATj^@{uv0`q-`*GG&Hvjm6Ax4D%8HduaD}q4X4_nB zD79^wFp_Vh#8AiiPG;Prx}z;pmEtQEQz#S6-!ASI-(}Q_cFEsUpsRc6hOeKWt5Va( zqF*;Ah1}C#m!Ff@8{2N^A`hq3tGio zL$PxVsDAZZALYn)#jy$YTY3(ZQ^{I)vfb7V+(N6@C?8|uYc*EewU zw=-p48bqNCtZ3+%zWkS`Ufe@02v~|SBZU2%d!NFdFTF}Ay|IH0yC%fG9P-?x6Pmg4 z_vsCxAsWq{#=R+tu!M_YvUdBnTPGTh$M(*-X(TbilE*;&Od83#kKV3BvSvHixg&bY zaL0&1!9*snHdZ#S@LtJc@1P$7^5jei7Kb#gRHErTTjhfS0|O;L zFY0{hj;m*v9l|AIRhPRwAHzpD#xfleMGvn>;-6ulLl1nI4g6oJ7 z6BBFe?LB2dT_mZrq62xyyqf|2CQOPY2FO)2bDA=_ySi$i4lr^)$C69AB!Q@CWMe{? zCt`JP7%Waw-4?~duo6%^lKwzFXzm7a0w7G(H#>Y7o|@$<#)N*~!iyebB08Y<%DHfB zZ;4gq_`9>UZhL3vOT%eTN$AS#(D;y!k{}plO@H=hFQ_!JIfU~KQ*w#$Pi!@Kin7-_ z@cwZtWn)^{q>1%Mc;pxwjC5`~H&yTE&pVPWUm2q4=o;uO4m%l^Vf|cE)-<9q93@4S-p0I(!9tzK#Z&_soRTm^FG2?Mss#Vp8K zEno*wntnCx_&#*W%MIc~*SLQ-r03rkj6#rV2BVrr*3aZ3XJ;{HKy~UNh-P8BPW!BZ zMagBnyh{9|H&;nxIqyzHWj1(*)nevn0c?aWU~O&v^5V|*Sd^`N7=gyYjvvC+H25;G z+9NvLv+uWYRm7hvfuR50Aa&7`vY=Y&Qq56qQMN-BUXD_u|GurG!vU?7MidvLpgrdh zr;scaxTBEyUAnQwPZmamA-+`SK-^;#M&;fEca64?+~((W(EpZJ`YeuQ`9^=|5wlQE z?Jr#2POC?GuWsfjPD#@NmBM^W%D1?M?-Y}d&-jT2^@TQ6w&~tL6+kB_Q9Ts^as~4Z zMK2Ln0!usLDI}jcN#jEpvjZV`URU@GYSj}zma1L_*<#YYTDaU{W-1*Hun3{=kBmeU zVsIHH33pYSwKLF?@g?y6M+RHm9;VAjssBE^M6jSu`O)f7-f6DNkJ`JnYapQ~%`=>i zt#FKk2G#LDrAHrtnO6G7kMeQ8ojzVEcLTyEcdFW!sLh?vUK`R&D{`-jq zM)0e56t8Gs?w%V?{uuRe_Dfe7IWwVV+Of3ydMtAj&Za)^q|vUn0FXxYM|DL0e^C-! za6pM}pF_syrDXIlA7<*S`S&^eHrO(L-v0U`*b@6q{i%|EveRT)GG0Jl*f*6QnjxO5hTROlom;au*_%w z?PLzZ`IIi6Yu&_c1|1p5j6!fOGM&X_VV%q#N6JMOe#W27=@r+;lJcLZN>XuWAcD4Q zgla;e+YnbKuH)^@GS$OFs$z)@2Q3EaM5Yf5ZkXOu@lqSr1e-=av60Ho=ttbkt>n@e z0@fi_djdk2bjudcGRwS{U2-u+sswR=yjPc+0~LCse`MG#;A+%91O$AC(mi*-B#u6P z{N^WyAtH77=O8cWUPV^8&;pD+kB0aV022X6*EyC##YAOkG5E6k>(@SO8U-It&X$yI z$$&HOjkBTrs=JtDoJ`Bqn|~Fa9i6!`yU|C|koi@|?}VtQKcf?rPXwoD$(o?Jb1N9f=TFA4@n`uSQ9GbUr%7WcLL}GTM1jS!`7qvJOafdHGMxJHr0Sy? zV%zrpK=YeY##A)K=U)n(k7kKA+Zs6#;y^8gtc8}O+_HwjS(*+DY8-?hTytv>)Uc?Km14bv!0W*U4;-2 z#;GC5wN;y_Yrh+aR5hLT@(Y5kU?*5*7ZdYaQ|`yyP0hg6Emt+zdc)xMP%|DT)j)|y z3De6f)bR2FZF||?OI1<=qb50!q{2VqA$t%EoUW@?GOCIsa69>(Vg_*hUL&9jLzw?-L zu;;HU==?aw7WrTBZ?0I71n#gAmvMk5O-7xRnR85{)Rv z>BP#X)p-&oVY-{bfgdd3&y@P9(icCF=hOwzA8U{*nbW)dGuEG6MRye)v;0e@rUMq| zE|odtuQM1bzsUP28<*g++sb<|I}R<1GczN7;Qy9DiQxiu^mY`juQ6% zPIvSw(xf)kq3|n+-Edhme4$Ztl$+6s)-BenoL}wJ=05(`B7bB|*sjRUJgo6Z;rKB0 zT4$Rs)ELM%O}m$^(g)?BG0i4Sf-CkgxQfR1jpaVw3bb5!U5Qu8Z4sW;1ZIpu)mB}4 zf`x6~!VBqdd@5+h-hYc}=ZURhNtLxF$z@OdUNl5hsQI3}%oO5A`~eej*?@U@2PkKZ zbR7+;bk(N*b)BXFBq-at&EvQi3UV4C}s7jIkkqk zcEWgT6frM1iQr@J(}M)h@xwf^18zyVRR`OzGlD(hu{bok%aZ2+t36=~#vZzE!ND>A55c^QX z|Do)yqT1@-Xm465*5X#&-QC@i;_gt2yGw9)4Gsm0ySo=F?#12Rf@@FS|2XI3yZml) zkz|alwfD|mYd_EY&B^8oKyR7Z9-iEF z$H+J-k3#Ohle$kdaJ55czi;;oIsMI|n8pVr^bfi2bU~?a=$#Jb6ZUu2*H7yUV@oGE zY4!Bu)AGFhx<7T3$5lZAGAtJ8s<%Fz`q|`S0nP5($=8tEFNIa9B_imNk4pltWOouv z=m98};gjMF)7bm32h_e@HHa-2r+mHNY%5IkVv#`6B|BcUdX!TEP?PSQdmxFXd;j7uRETog$mVi&XGsSRZp)_WF6W zkdH-v7InuDpy1c)9>Rw8a7CH3Byz&HW243Qv$|Z;tj*HL z?xa`JC+T(QzsY4U#^y@6kfwzAUw=SRnb^#Dyt!@xpAc5;5icq_iR2 z9S})KJ>R#rDYb->l#4MYL)stv!||wR1z1SuVJg`t@Y&T#J+GEu57Y{nSl$0|2JjMf zQ7Sn>AAg{FKixl!x=dda3lycVn9NL%iN`PyU^njfjLW!Q3^#k`Mt^d~Gh}3k{q2Kv z58=Ae#84O_ZtLcRjWaB&=cHdL{t??JN&T#pV>U90zmnTh+WTc5=?dPB_gN8!@wfKD z>6rcC)<_)X???m8O4WQ(=*&prYs8$Y0*~%)$SG5j%wn3NE*CeTb_})inxA$*nDjcA zS3bQ@LuM71b^;=Ta9zNde%pLaf;k2Zn=#YQL7>vJ-I*HJ{UTp+2*F+c!~-GorZ6^j zG;gVn#OJb`fzL>Aq%GeNG+BUS*m2NbgIVlkN7JA#M%f*$0PpT+?Wf?hY;G<$y~Wx! zpn6Z3G7FCC6pJ>?TYS%`ZuF8qr~oQzYa4)9e0@9Ab81WN9<2$QvW|IvM=@MP@^aD3 zSSr1Bg*7ek`c6?c7tl>kj5IVp=E;nTK%!+}=ya=Xd(S=$r0j?kQi;OmRVxRQc^@qM zK8Lw1tI^^IaTsuVJU8Nu;hcVZS?cnhTJhku?cC(Ss>=dwJVPpVGmQ5lho1pX{^hT- zqsIS8TH=DA#+L@4Cgd{^hT^|&BCQlbCIGEdECN#_^2kvMElIt@@T(mQtqtZcSy}IF zK2NvwjFXE6WjT4t)QQ4&Z0JIWb~q>`jA@U2(jnuPT$u5LH&fbT*6g*r(Sj`wo6WiZ zUJu{h@;x>{L)C^|Cq|3LCBIGi;*z#|te~wSRCw5beP~&}by5jwQ6$MNrb@D3Sn9OC zEb<6hTU|#5KS>cql@~rKE;Mhx3^!k{U8nFwGmi1}l#lXjJ@C?I%(A2KciHewYCErd z#!ttwU1-{JSa~j6Hhw}!rwKvX=%MexRzl0O{|-Uu_3&B%gBv^Cr})FWA||`;!uB zxec(=4b!C|NqFh5m{qND zJ4I3A5Z8~?#Mtnk#@0G5P&5=p+9#U3&y2fkYmZ*aOw~a#S{DeVw<_;zSBNH9MD?Fj z*^A!-=~3*=rFZgg$kvbE>M=4?PRrs&i zlIUH@L5Q>TmxPy)z1^&lhWg~a%b{pV$f(TlXIdXFsM|6QB6x~a9D=pF*Yq-Vs=XJN zwNoMz`t-ZAF+ty<61j+h+CSKSXk`|#GI1nW>{A*%8HNK3npeDJlE97c6X%H=VDA#{ zP}U(T;ZqelRF=ML7btj}F$ew9)lF~EuS2&>=GAJ6k?H>%=Tw<3yQ!KgK|T4QQO+SN z-5zVcXc|PCw)cVXT)M&&x(D$C7#@%-7{d8uj|9K0^|?L$gB_sfbCgU%cf$(QYONE% z5lHtFr2utTjQ*sgivMSl2$kxy5?GR6=TRvw+11<>Prp zumY3u1d`e>5sA3fgw;QGj0z6?Sg+$^;6l8lX`{T=N;|Jgr$M0hzB#_pW& zR|VoZT5E_^8dgXLWQDFWcD)9Pf+5m9PCq|gQz)~8s)E2WVETC=# za)~d>5a&}mSM9)?pPb^XjEj`E3s(5UmlLAa;fRtGhK1#=3d?V+rBPI@5PB-VRm<9QQcbwDP_`=pg`9v z8szbPc4AHq{u!B|;V=-PhPkziDNVdu$KQ*=CM^DnY_UC{|N9lrkNCm!Vm5`7z*{vT z0_f!;uZ)pVkHl!pR`*$I>VzP!tM3~dbW2p^&RTDPsqCs8R7{OeBZRH+Cy;bSElO5a z*P0!i!lYig3j<9WYJ9qy=3WZ-)GzSxHN@dYOc8wdWfqiKNhcm)Yy{gaN3)E9Cm zxW3e>l|v?dzmNBys?EZ=cRB+@6pFoP-GLz8MU0H{-13fakt#k_La?tG**g_UlK}~y z62pcC(ti`{vxeC+MO`ir`f+Gq$45Ul6%yh`GW>YD0y2qIpgxKa`!p}Ra{}g}5x>*{$m)(}8-KG6BDmrNLT^9>ccbMEx z>LM=);ls#{Z1YWS0+mM`P%bRmFE5W6`Q_&_H4+6PAg5#af~w}hst7t@rBi{pr0QH* znJC&2=o*RzJQt?88}3wEqb4uk3g`MMTU$WRA-t=`U60iNS+>`JmK>~NgZxZYssN1ww)cZnSzxF^)fnnr|5gBA+|N4l1TBZ&RFSSKm; z&WA#K$CoX3mMBAdNKPJ~WN)3eA`FDC4)9h_A~a-r{>SvGRDJ4kQxh(J5)ursnq&zy z*OW`N@@rQ~KOsIj`+SSnRMmI?4IWaNW)wvm{@<__w2DOMCW^~deR>06i zG}QpX=3>{4rFz=M)?BtO@7Z`mbb2Sji1*#h?5! zdM)05CiYE>7SZ5yT1PBg$U0z7#_jT9Lb#Y4UW>t_yMX_VxJ1miK$*-A?mL^q*ASPr z$7WMaZZ4=>S@RsPjjL_zV*QNY*q@2GGx$`}80IN>VkhbQ6n13Ur3CoH&^&qIZBZE_ z`I}`y$K%_8k@rCpyK;O_k%Fv&^pHsh9Ejo;XU{1iY~c2>&$AnQ~-) zPRd8FzsWs0Jq9$+6hjf6?NAC(>);bLyIr7^Cc+R}P{*#4D1aTkV5)*rAn^Cqp&nvG zKpk)M0@VHY?X1|Y^IzNgp+B$sFdk&qp)uCUz^Zbr9Dyrx8S6X zJJoS4Q?9W};g3|U*~MHpJIj6{%8#Lh7R(iVE?s#;NmD6IB_!WlyKM;lTkY3bFP9%L z;!rNnwJ$GHvHa}|+19LO2ry+xw+Z-n=0d&+M=AL|Jwrm9_Dd4YTRg4SgbV9E?*9(C++DqK?&gGPcqeR_qZ` zRGMt@*C|FinwGb=WI@DhtIab9Ik7E- zJWE#E&8!o;aM_6m!W(wF&EycAHnjWIW`7%nZ3o@c1!0@@<=W~#RBp^+6mDeYpaemK z(bD<4$(7Xek<0f9?g!Cnkh#ldk%!B=0Pls)E)+Sr?mcur?TWX(tms(K5|JS=j+ueX zlTWL}2nrL@qsS1M?C1F^U2n9S*cFLx*yt4t){iTWW%6FEyyLYLpqg}8;Xe^ya#gi7 zS*)*z#nU*Sq-(bWm&vwG#*#RMkV1w@X=r1i(*|1*H$a5`Bg>%2gg)o1v;W(o|630g z_nMWR2iw=B_xEn!`(+EwGWE0D)b~IMv&}h3&pjjMM?nUHcOAnwho(p>%pem z_k(IT>B8k|u4|u}d;6N@1w132-N{Uw^#nUvrvn_>Hq9ocT&biOJ%dxIq1*l4>Ow31 z4laKSZ;Ny*iW`%`7?1bD`cmCbfyA6M_lxS)gLQ9B`sB)A<4N%<9^Y~HqqWuqvrZz& zta5)?)1kFUK|JQ4Tq`RTe@j8up|R69&nPxE4$F=`W?cquG!%E@4QAOg{m)%FIBkma zpTE%&l%+4Ch*+XLE($pt(ZHT4kfpkQiSn^o5XltFtC)oMkF1>ASRKJKOUGvq4U4vr*3fcBt9$9b8>tCzzF$I<;>HGMi7;)U5oq8zUocsJdKAxkp`D>hmA1 z*!Uj;xwRL^S10TIYY^dM^!OmB#o1X!&C2ZYTz6IPO15CL?@ekGSLKiRC)>{C886{6 zSGNt)sATVj<)wT6=NV0Kew5K)U-;&Y5|ZJnbjW?tFiUBu%LqCG-i+OpZk-! zEu%YN9Jv#rWZv#(&Pn?C!5}k6voS43&1BOI2t9h5b46>6rwgQ@wL#Kqy?%F_6}ZoJ zJEmd7qwG^PTcrO~!jarlt_>8Kv!@Y&6*($>TP zjUWG>E8p_G!Ue1oBQiXm`P%!-f^x8=nwkOam*jIl%q8}JRG9jICxvZ7$x#cPh|=Q? zZ-(2W+0MdyE|VCeCaLmvPqi1hDQbU|`t%#@W}EMj`yy}UjHR~4QVUc${~2#e+rHa+ z;!Sw<4Qh*cxzS)SI8PeAW(N+5RDXcX|1ZVo4-!9{fL*=!P|=&iX}ubY6bJmj7c&Y+pmifGM@n&m%TZmS#Ub@%N& z==cw((ql&YP1`<$_n9cGk0+_;8-@)kJSKxh{EUAY&H1URs)!&}*#>n_bBw9X*tRY< za|^r+Re}qMKdP;%ixo`G=Z%*nCjM}6VhW%yELqr4S5&d+=wv?IR~VnJ>WO@$o3GF` zOmE09Ec7uSm2ZovJp869(DEa8ZQB0Qer009ySd2GRsTjVdZU+{P{HP$+je|R`z^0# zl{IQ_tUo4&Dp`-N_&=&g*i@!qhL4HSIeNg8P_UTb|1mwj$9wMNxBEk7@`N70QKLj1oocnt{cZgnPfKM}^MxFCg^n94lar~T zL8j}$-ylE-!w%__q`ux}({;Ap=~;y1DfQUPnzzP^n@;xZk_^ShS$^NIrWU;gTy`|q zw>wS(_M>Nk)z#*T&Vxd?#V9jIjZ*@vWH)k}bAMakJKHv|bqF|5hP1=T&upSgm~rp3 zW|jJ@A708qI_LqzLFQQZl>14mL}HsQyD-jb{1&~q(mc%_daK2)PN#~SFT&VX**W3N7`}qpD(Kn<8z|)nuC|j4_CsIJ0lV zmu(xDD|W%2MO6e%BL8?<+!|0 zd)W4yuZ|`9H01x0K_^P0Db+DSH7FICo`)9IX6N%PSVLVJ7s2Vr4>$d^E~s=luu)of2&&b z>n>E6z3zfgqAN2KaamP~BOYH;f>2V+c|^D!n$;UrB1*tbhTIl!ZQ#360Tzo&t+Cbb zin=Ycr;My!staM`Ev!>|_8QxGHltc2m72AQulI}~Ld|F%I)=_LdS3zD&?(jl9mT}~ z?wEZM@HD?!If2vPZ_uDRsgjU`NfN*l59gYRPV7A260>LWlrutj?F^yofu| zU!)V-HkKg1(o__eBh`dh?0S@@@ErT8iOC(98E1OCMxJ2Oh5AD`LvT<2n&tySnfoeZ{Vc5 zIli(d$PB|C2L9%U#+J9jyY^^?$V>>ei^3`s7g61(0IdLAOW@hd zrwr+~(?_z-*CQBz?dd>tgq`fD$+xxud8i2yJ#s47I@+D5B8QS-C-h{j)eH3Pem9xGPEK7tQ_MYQvs^!s>Sd zyA%@WgcWl(fp6rHol~)vgz7Oe)c?_KRx#>lAN$jl3)1-?7a5AyLCn`@Y^;HEa7K)j zP%bA`t2bY0Nxx&q>z) zi?V&vCmo~hpAy|nGaE6bsuVrM>w8v@OlpMV%~+zWjP{_RwcvOYav}o$ovG#Gj9}eV z&qTD6J)T2iKc}kq=!=gFHsF&PHbK7>{t+qAO!seFw!0r&m7$CX`uITvW!D3L-6DQ@f^8H$vTay)y` zBm0YLHDxc4FSP`FE7S|$nxlo*CBbty1uu_e-;BE_U^8F}Yg3$;bzANT;NJ_D~7QGZBUJ9mx|V zy-o&n92?Cl@#WyK#BmIM4$*mdazZ~Dju<8GJvFlpy9rQ!D-iJ65_@rc-{z~&bi{O2 z^9fzQ9aHYS)@8cpz-ImM$Im2$FK#D}HZp<7{P|DCmfkVA6Vgjq{QifLDpxRbuMUMp zA0;KKj9@F1W81aLSA%_1Mk}b>mm~KOHs*+dzmEr88lG2N7uBj22T3hh7`D#rD-9f+M?#|#2`$De&32@8I2jiiulbYzR|!80V*#T_x$_(c z!8lT!NeoP09F?!a@Qy6``^@&c=T_PE-0*tZdgRZeUj?hZyaQcKl^qORW11MnF&#KK zoa7*xS)2fp7oAmtfRYij4}ogzYG6DlnTh~ZFr+f#3)(CD`e7j8mzA1M{xM2+Da5VN z*<+bO?3$B0AG20MX;CQoeIxB)Y60HoqNdHEOOtaYL*?D4TPVZb=j%R?2nub$?v`+d z*;$f3P=1wqH!D=f$%j~oDI1%WyE7BiWoAmGwb6Pp!(>^ZIJ}djTD6mPzQ1gT6Kl?d ziF++WerLjH_eSQu=wXU!LUwj`dXp ze+zbwwZ2+ZRj&L&Xlr|Fsd=i59)A2CSTt`@3b5A6dXS1!vc-3g5R?y>8 zSCIgyumbpWUZ{Lq55bEEY%P}xLbqGEmW1(|Dbf#(q94nAQNt;8n`SE z*vE++yU(Ti0cb}!21Ucm8;3^Af9_cA94v-f{s})o8IY<M|Y_HZ2m{5~yH6}R5%x8B^`!feE{k|Bq8ew(6I$fmKcvGO9O+XYBR z+neTr9SIgYgGx1Jpl3q=oM>PxNQ-z+#)R~v^93v82vts}wNAHaeXnM}{rk3w&Bd8+ zkzs>c`OkgMiuX^{O0is@KYh#O%t(Z?i*g?v!0$>|f3TW9IG9>vF{OSTPDcH!+hIYt zlW9jU*Y=~A#lUysq(qCE@`r^>f^8X{gMjLzBvlP;{ugtxEvl{m>^gyda^#LSZ}(xy zk{?cgpGJg~5t5SBBgi{^fAP4~vGHDv3eB(jX(Do6iSrl{=8vW^IEMV8`$Byhq%yQr z1Rfou_zQCQoF`n$?CBkGE(d}(TFBb8l&Y3aLO(-Qj7OWK8|zDreii3-%wrK>i@?ov zNL%PgF4y!I;ok%XxjJ`#pIigg>;4uu@=zP)^cei zb#sr{D|Z9mC=chInW{8Da7bp~M*l-uhTfb^os0`KnV);69_*t%OmaF--Q1x$uUw;= z+hAKnL7MNWxuxv%^o*q|r(c#)o0s{l?$;*|?FJl zgqdO|mN)aMPHU2KC4gg%KBo5fMr@HOVi*-M+Yq z?8?))p=JaIAI^E#yPgv>ho-;=i*L$)K=nWF)ms|sETEm2dG5h<WQ** z$u{OkigK5-N2#}!78lq{4NMX}LHdFmlAw`Hw$sO6t7DuNaeaHSSHFBQGg^j@*aoqo zYR5zIL1X?}LDW(S*?Wd)hCpGbJA~>P**zr+2t_Q_n1?1(=GZf@a#D)3 zE`>5TWp5nsD>`~M!UN(vo6LduW4{y4y5}(Vpj(1W1mokj&^Jk0$kc=J8+1u>AQ~01 z!V8UElUOoc0e%><0jwyzM8B?GItZY!snZhd(@I33aq4@_iXt8Y$-B^}Y&{(PpSQMz z_Figx)Dw;lU+~*d9_UpJdka>gSTjtMg}y#{B>C>eI9!x~HQSU;T_Ridu#e z{_j-iC)t_)Lh=)ypKb^al$$UUA0^2nwN^?!5=_@cYiu~vzCPtJ&pu%d)xA-b4^I?) z`IsnfXb-7Fqe2ZIxF;tn_N?v94K=$qvWOH|$ABGbuOymF{?TK(WMkiGh zA$PE@vk$}Ys@+|oxgKdy^j@-tboxX=;?b`N9(Hhyo{hgj z4>z&rTZ4U#gFiV#iuaFaMSZ~p(w&-S(5{mlRXe*l_NBtpsUkZY=t-p#%TY} z^Q;As9bcM-L#zBR+bK#x>=~k8xan02Xk2c8Zpl)gyt_rAlPFI&3?T6g1mdsSeD^vM zO29vUEYZ<8KK{-pa)q@z)Ys;~F0Z}QS2Khkk?8W|5*aW3lfUh;E#?`#4J#$5X4&HnDtUE_V%XPvaJom!S2Le1@x`yzVez3Y24_>Xc753~gTOdFv zeGq|AE8BWLZqaVD^8MKNtHqM|x>6dwS`3pHqbdZGH+#jQ&gVX0E(L>t!vs8AYWsc- z1Jr!nVx_>2P&{N8r+$+JD9W%KKQ{y}t-lR9f5$`d_jUV7pgPN}I2JxE@ZeaNi?n@w zXmx^@xDrSzx@eS)>R0f3jVjHOb>o4}*6)hH=w5pLXDHCeVujw2r0)sdRYK+yF=Xd{ zwh-l9SG0QOZ4eX<#ka1NNi;#@WuM8~wQH$!mrTG))lOjAY6atdZuXQzkSd^Sm1Pcx~~K0za`h7eO^RLTF!mP2pPH*&b`vL{=Yh z+cXWQt*t}RKrePTSPZxtK1J?>9&hyTNJv6|DY0h@cVOz+@<*?z(+?&6kY4#`r9!NZ zKNra1^jQgq(;xVrXm%sUM&pIM_!K%lMUKdR2+C8To-Q)s*InzkSQLo=BQsok%{2Q1 z^0eAh5hM0ZH{C5$CWd$H={lDxNpihT13wl7*2}ZQj(F|4>EWg)S!FHt4;b0Tzrf{* z!(p`)NJW^FY{%ufb(~o)*M=3&TkDq0HT%`jDwUsX@VUOwpoMfj%N|DP4Z($o9tigT zESUrjk(yIH-oevid2IZOeshmZSeUN7!R`T+zJMO=IeQ=N6L2%nSMix8n{;YKYeGapPL9pJayb^4+uWlu7bsgtikJjq!-w zVoiaC@4g+j2XYQ?inQP)r&Gx5?L5YIZY!lKUh5t(JVeUsR(Ffe=ngqOnl7DV2aN@eMMkjB@RjT*?L@ z^AbfXri%QI7Ga_aED@#=PbU)yWnw3H5eH%m%lbE@B*uaWN>K zE=KI^OxAf?q;F3=S0D(>SS7bctfYYDo4^r(6eYR=0~jXejVZ4%;cFq)_r(hm5%;ga?ko+GV4)kR`im znGJC}5vvfPY?5TwQ`Hn6?$c}&M5I05?~#(*#!n{1F@n&jWie+y2OZnIuSn?E$)o2E z^9M~{pW0E^^T%YQ(tm{ZN8yVZO%f2utK%O)BI<1>*Kw4H9+YX

vH8<7Y%6Ge@6N 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®yloe(78s}9QJ(q?Yu?{ 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 ZMjCv&k7_TMwtRtjDaxwK)JmC!{4XA!i#-4U literal 0 HcmV?d00001 diff --git a/fase01/images/estrutura-hierarquica-aplicacao.png b/fase01/images/estrutura-hierarquica-aplicacao.png new file mode 100644 index 0000000000000000000000000000000000000000..c986054d7b736dae1d230e32f2cb8648f8b24a30 GIT binary patch literal 158053 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�UuVw!lBIZef`Ci4_&Kov$$_CFCzC3m%Clx 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�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%0AH0@V&O8;ym5R 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�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 z

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�-{9x^d#i>>k4boaacU4uS{rHDJY?s!!?D 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 Vl!fXa4~YmLkh=cETGdC9{{b5ENDKe~ literal 0 HcmV?d00001 diff --git a/fase01/images/fluxo-navegacao.png b/fase01/images/fluxo-navegacao.png new file mode 100644 index 0000000000000000000000000000000000000000..c6298e77dcddc0c8001784cd9b0a0916b2be9a17 GIT binary patch literal 167062 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

`Njj|(q2Hv%qz)L^c#RF4bYMf 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

`uGvY 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%0DZda-u?BD8Yt|xzz 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

!s4$KFp3&mlslP#2kC%;7XDUw)2WA-f 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 bFT3r!aOu$obe`@5@O9`w*naxnpDz3_G^_3r literal 0 HcmV?d00001 diff --git a/fase01/images/fluxo-startup-one.png b/fase01/images/fluxo-startup-one.png new file mode 100644 index 0000000000000000000000000000000000000000..3bea6b230bc89ee3490f9560e82a546934946708 GIT binary patch literal 68617 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 literal 0 HcmV?d00001 diff --git a/fase01/images/habilidades-seculo-xxi.png b/fase01/images/habilidades-seculo-xxi.png new file mode 100644 index 0000000000000000000000000000000000000000..84a4a14d850091cca5f00469bbd2f1e08e934c4f GIT binary patch literal 43565 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/capitulo10a.md b/fase01/trilha-android/capitulo10a.md new file mode 100644 index 0000000..3ed7641 --- /dev/null +++ b/fase01/trilha-android/capitulo10a.md @@ -0,0 +1,432 @@ +

+ +

FASE 1 - APP WORLD

+

Capítulo 10A: Internacionalização e Validação de entrada de dados.

+
+ +
+

1. INTERNACIONALIZAÇÃO E VALIDAÇÃO DE ENTRADA DE DADOS

+
+ +## 1.1 Internacionalização da aplicação + +- quando desenvolvemos uma aplicação para Android,temos que ter em mente o seu alcance regional, ou seja, ele pode ter um alcance local para usuários de um único país ou pode ter um alcance mais globalizado, onde pessoas com diferentes idiomas poderão utilizá-lo. + +### 1.1.1 Aplicativo de testes +- criar uma aplicação com uma única tela responsável pela autenticação do usuário. +- criar um projeto no Android Studio com o nome [Login](./projects/Login/app/src/main/java/br/com/fiap/login/MainActivity.kt). +- após a criação do projeto, substituir o conteúdo do arquivo MainActivity.kt por: + +~~~kotlin +package br.com.fiap.loginprof + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.loginprof.ui.theme.LoginProfTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + LoginProfTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + Login() + } + } + } + } + } + + @OptIn(ExperimentalMaterial3Api::class) + @Composable + fun Login() { + + var email by remember() { + mutableStateOf("") + } + + var password by remember { + mutableStateOf("") + } + + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Login", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color.Blue + ) + Text(text = "Por favor entre com seus dados") + Spacer(modifier = Modifier.height(48.dp)) + Card(modifier = Modifier + .fillMaxWidth()) { + Column(modifier = Modifier + .fillMaxWidth() + .padding(32.dp)) { + OutlinedTextField( + value = email, + onValueChange = { email = it }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Digite o seu e-mail") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Email + ), + ) + Spacer(modifier = Modifier.height(16.dp)) + OutlinedTextField( + value = password, + onValueChange = { password = it }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Digite a sua senha") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Password + ), + visualTransformation = PasswordVisualTransformation() + ) + Spacer(modifier = Modifier.height(32.dp)) + Button(onClick = { /*TODO*/ }) { + Text( + text = "ENTRAR", + modifier = Modifier + .padding(8.dp) + .fillMaxWidth(), + textAlign = TextAlign.Center + ) + } + } + } + } + } +~~~ + +### 1.1.2 O arquivo strings.xml +- independentemente se deseja ou não que sua aplicação seja internacional, a verdade é que nunca devemos inserir os textos literais em nossa aplicação. +- é muito comum que haja a necessidade de alterarmos alguma expressão que está contida em diversas telas e o esquecimento da alteração de uma delas torna nossa aplicação inconsistente e estranha ao usuário. +- é necessária a centralização do conteúdo textual da aplicação em um único lugar, e qualquer alteração efetivada neste local deverá refletir em toda a aplicação. + - para essa finalidade, o Android disponibiliza um arquivo chamado strings.xml, encontrado na ***pasta res*** do projeto. +- outra função do arquivo strings.xml é permitir que anossa aplicação seja multi-idioma, ou seja, nosso aplicativo poderá manter arquivos strings.xml para os mais diversos idiomas para os quais desejamos a tradução. +- o ideal é que o arquivo strings.xml default contenha os textos em um idioma padrão, que na maioria das vezes é o inglês. + +### 1.1.3 Editando o arquivo strings.xml +- todos os textos em nossa aplicação estão inseridas de forma literal, o que não é uma boa prática. +- vamos editar o arquivo strings.xml default da aplicação adicionando os textos inicialmente em inglês. +- o arquivo strings.xml utiliza a notação XML, onde temos as tags que identificam os valores. + +~~~xml + + Login Prof + + // Strings personalizadas para o inglês + // que será o idioma padrão da aplicação + Login + Please, provide your information + Enter your e-mail + Enter your password + Enter + +~~~ + +### 1.1.4 Utilizando o arquivo strings.xml +- substituir todas as entradas de texto da aplicação para que utilize o arquivo strings.xml. +- começar pelos textos de título e subtítulo da aplicação. +- abrir o arquivo MainActivity.kt e fazer os ajustes: + +~~~kotlin +Text( + text = stringResource(id = R.string.login), + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color.Blue +) +Text(text = stringResource(id = R.string.subtitle)) +Spacer(modifier = Modifier.height(48.dp)) +~~~ + +- utilizada a `função stringResource` para fazer referência aos textos que estão inseridos no arquivo strings.xml. + - recebe como parâmetro a identificação do recurso de String que queremos utilizar. + - agora a aplicação está com o idioma em inglês, pois temos apenas o arquivo padrão que tem o texto neste idioma. +- se quisermos que a aplicação utilize o idioma português, criar outro arquivo strings.xml com o mesmo conteúdo do arquivo padrão, mas com as frases traduzidas. + +### 1.1.5 Traduzindo a aplicação para o idioma português +- para isso, precisamos de outro arquivo strings.xml que deve conter as mesmas tags do arquivo padrão, mas com o valor traduzido. +- clicar com o botão direito do mouse na pasta res, apontar para New e clicar em Android Resource File. +- na janela New Resource File, digitar o nome do arquivo, que deve ser obrigatoriamente strings. +- em Available qualifiers, selecione Locale e clique no botão >>. +- na janela New Resource File, selecionar o idioma pt: Portuguese e a região BR: Brazil, e clicar em OK. +- copiar o conteúdo do arquivo strings.xml default, abrir o arquivo strings.xml(pt-rBR) e colar o conteúdo. + +~~~xml + + + Login Prof + + // Strings personalizadas para o inglês + // que será o idioma padrão da aplicação + Login + Por favor, informe os seus dados + Digeite o seu e-mail + Digite a sua senha + Entrar + + +~~~ + +- para testar a aplicação, trocar o idioma do dispositivo para português do Brasil. + +> caso o dispositivo utilize um idioma para o qual o aplicativo não tenha tradução, será utilizado o arquivo padrão, por isso é importante que o arquivo strings.xml default tenha seu conteúdo traduzido para o inglês, que será o idioma padrão do aplicativo. + +
+

2. VALIDAÇÃO DE ENTRADA DO USUÁRIO

+
+ +- muitas vezes, é necessário que a entrada de dados obedeça a alguma regra, como uma senha que deve ter no mínimo 8 caracteres. +- também é comum o desenvolvedor somente habilitar alguma funcionalidade caso todos os campos obrigatórios tenham sido preenchidos. +- como garantir que o usuário insira os dados do modo que a aplicação espera para que não ocorram erros ou funcionamento inesperados? + +## 2.1 Limitando o tamanho da senha + +- podemos utilizar vários artifícios para garantir que o usuário preencha uma caixa de entrada com os dados corretos. +- uma forma que deve ser utilizada é abrir o teclado numérico quando o que esperamos do usuário sejam números, por exemplo. +- vamos validar a caixa de texto da senha para que permita a digitação de no máximo 8 caracteres: + - na função Login do arquivo MainActivity.kt, adicionar uma variável que irá armazenar o tamanho máximo que este campo permitirá. + +~~~kotlin +@Composable +fun Login() { + + var email by remember() { + mutableStateOf("") + } + + var password by remember { + mutableStateOf("") + } + + var tamanhoSenha = 8 +// ... +} +~~~ + +- para limitar a quantidade de texto que poderá ser digitado no campo senha, implementar uma regra no parâmetro onValueChange. + +~~~kotlin +OutlinedTextField( + value = password, + onValueChange = { if (it.length <= tamanhoSenha) password = it }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = stringResource(id = R.string.password)) + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Password + ), + visualTransformation = PasswordVisualTransformation() +) +~~~ + +- a cada tecla digitada em um campo de texto, disparamos a função onValueChange, que retorna o valor desta caixa de texto através da variável it. +- o que estamos fazendo neste exemplo é testando se o tamanho do texto retornado por it é menor ou igual à variável tamanhoSenha. + - se o teste lógico resultar em true, a variável de estado password recebe o valor da variável it, caso contrário, a variável password não é mais atualizada e consequentemente o estado deste componente, ou seja, não conseguimos digitar mais. + +## 2.2 Validando o campo e-mail + +- verificar se o campo e-mail foi preenchido ao ocorrer o clique no botão Entrar. +- caso o e-mail não tenha sido preenchido, exibir uma mensagem ao usuário logo abaixo deste campo. +- o composable OutlinedTextField e suas variações possuem um `atributo isError`, um booleano que quando recebe o valor true modifica a aparência do componente. +- adicionar este parâmetro com o valor true para observar o seu comportamento. + +~~~kotlin +OutlinedTextField( + value = email, + onValueChange = { email = it }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = stringResource(id = R.string.email)) + }, + isError = true, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Email + ), +) +~~~ + +- ao executar a aplicação em um emulador, o campo referente ao e-mail estará com as bordas na cor vermelha, indicando um problema. +- para que este comportamento ocorra de uma forma mais adequada, criar uma variável de estado do tipo booleano que manterá o estado de erro para este campo. Ao clicarmos no botão, se o campo estiver vazio, mudamos o valor da variável para “true”. + +~~~kotlin +@OptIn(ExperimentalMaterial3Api::class) + @Composable + fun Login() { + + var email by remember() { + mutableStateOf("") + } + + var password by remember { + mutableStateOf("") + } + + var emailError by remember { + mutableStateOf(false) + } + + var tamanhoSenha = 8 + + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = stringResource(id = R.string.login), + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color.Blue + ) + Text(text = stringResource(id = R.string.subtitle)) + Spacer(modifier = Modifier.height(48.dp)) + Card( + modifier = Modifier + .fillMaxWidth() + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(32.dp) + ) { + OutlinedTextField( + value = email, + onValueChange = { email = it }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = stringResource(id = R.string.email)) + }, + isError = emailError, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Email + ), + ) + Spacer(modifier = Modifier.height(16.dp)) + OutlinedTextField( + value = password, + onValueChange = { + if (it.length <= tamanhoSenha) password = it + }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = stringResource(id = R.string.password)) + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Password + ), + visualTransformation = PasswordVisualTransformation() + ) + Spacer(modifier = Modifier.height(32.dp)) + Button(onClick = { + if(email.isEmpty()){ + emailError = true + } + }) { + Text( + text = stringResource(id = R.string.enter), + modifier = Modifier + .padding(8.dp) + .fillMaxWidth(), + textAlign = TextAlign.Center + ) + } + } + } + } + } +~~~ + +- nos trechos acima, ocorreram as implementações + - criação de uma variável de estado chamada emailError, que é inicializada com o valor false. + - atribuída a variável emailError ao parâmetro isError do componente responsável pelo e-mail. + - na função onClick do botão Entrar, verificamos se a variável de estado email está vazia. Se o teste lógico resultar em “true”, alteramos o valor da variável “emailError” para “true”. + - a caixa de texto responsável pela entrada do e-mail sofrerá a recomposição, tendo agora a borda vermelha. + +- para o tratamento de erro ficar ainda mais interessante, incluir uma mensagem de texto logo abaixo da caixa de texto do e-mail, que deverá aparecer somente quando o e-mail estiver vazio. + +~~~kotlin +OutlinedTextField( + value = email, + onValueChange = { email = it }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = stringResource(id = R.string.email)) + }, + isError = emailError, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Email + ), +) +if(emailError){ + Text( + text = "E-mail é obrigatório!", + modifier = Modifier.fillMaxWidth(), + color = Color.Red, + textAlign = TextAlign.End + ) +} +Spacer(modifier = Modifier.height(16.dp)) +~~~ + +- no código acima, inserida após o e-mail uma condicional que verifica o valor da variável “emailError”. Se esta variável for “true”, o componente de texto com a mensagem de erro será exibido. +- para que a mensagem desapareça quando o usuário começar a digitar o e-mail: + +~~~kotlin +OutlinedTextField( + value = email, + onValueChange = { + email = it + if (email.length > 0) emailError = false + }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = stringResource(id = R.string.email)) + }, + isError = emailError, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Email + ), +) +~~~ + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo11a.md b/fase01/trilha-android/capitulo11a.md new file mode 100644 index 0000000..04424d2 --- /dev/null +++ b/fase01/trilha-android/capitulo11a.md @@ -0,0 +1,841 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 11A: Persistência de dados locais.

+
+ +
+

1. PERSISTÊNCIA DE DADOS LOCAIS

+
+ +## 1.1 Biblioteca Room + +- durante o desenvolvimento de aplicações Android, há situações em que devemos armazenar dados localmente, seja porque não precisamos persisti-lo em um servidor remoto, seja porque precisamos que o usuário utilize a aplicação mesmo sem conexão de rede. +- permitir o uso da aplicação offline é uma habilidade que o desenvolvedor Mobile deve possuir. +- biblioteca Room: oferece uma camada de abstração sobre o SQLite, livrando o desenvolvedor da construção de códigos extensos. + +### 1.1.1 Implementação do Room no projeto Android +- criar um projeto no Android Studio com o nome [Meus Contatos](./projects/MeusContatos/app/src/main/java/br/com/fiap/meuscontatos/). +- adicionar as dependências da biblioteca Room no projeto: abrir o arquivo build.gradle(Module: app) e adicionar às dependencies: + +~~~kotlin +dependencies { + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + // Room DEPENDENCIES + implementation 'androidx.room:room-runtime:2.5.2' + annotationProcessor 'androidx.room:room-compiler:2.5.2' + kapt 'androidx.room:room-compiler:2.5.2' +} +~~~ + +- antes de sincronizar as dependências, é necessário adicionar o plugin do processador de anotações do Kotlin (Kapt), então, no início do arquivo build.gradle (Module: app), adicionar a seguinte linha na sessão plugins: + +~~~kotlin +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' + id 'kotlin-kapt' +} +~~~ + +- esse plugin é necessário para que possamos utilizar as anotações do Room. +- com as alterações efetuadas, sincronizar o Gradle para que os downloads sejam feitos. +- em seguida, ajustar o arquivo MainActivity.kt: + +~~~kotlin +package br.com.fiap.meuscontatos + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Delete +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.Checkbox +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardCapitalization +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.meuscontatos.ui.theme.MeusContatosTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + MeusContatosTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + Column { + ContatosScreen() + } + } + } + } + } +} + +@Composable +fun ContatosScreen() { + + var nomeState = remember { + mutableStateOf("") + } + + var telefoneState = remember { + mutableStateOf("") + } + + var amigoState = remember { + mutableStateOf(false) + } + + Column { + ContatoForm( + nome = nomeState.value, + telefone = telefoneState.value, + amigo = amigoState.value, + onNomeChange = { + nomeState.value = it + }, + onTelefoneChange = { + telefoneState.value = it + }, + onAmigoChange ={ + amigoState.value = it + } + ) + ContatoList() + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ContatoForm( + nome: String, + telefone: String, + amigo: Boolean, + onNomeChange: (String) -> Unit, + onTelefoneChange: (String) -> Unit, + onAmigoChange: (Boolean) -> Unit +) { + Column( + modifier = Modifier.padding(16.dp) + ) { + Text( + text = "Cadastro de contatos", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color( + 0xFFE91E63 + ) + ) + Spacer(modifier = Modifier.height(8.dp)) + OutlinedTextField( + value = nome, + onValueChange = { onNomeChange(it) }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Nome do contato") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + capitalization = KeyboardCapitalization.Words + ) + ) + Spacer(modifier = Modifier.height(8.dp)) + OutlinedTextField( + value = telefone, + onValueChange = { onTelefoneChange(it) }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Telefone do contato") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Phone + ) + ) + Spacer(modifier = Modifier.height(8.dp)) + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxWidth() + ) { + Checkbox(checked = amigo, onCheckedChange = { + onAmigoChange(it) + }) + Text(text = "Amigo") + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { /*TODO*/ }, + modifier = Modifier.fillMaxWidth() + ) { + Text( + text = "CADASTAR", + modifier = Modifier.padding(8.dp) + ) + } + } +} + +@Composable +fun ContatoList() { + Column(modifier = Modifier + .fillMaxSize() + .padding(16.dp) + .verticalScroll(rememberScrollState()) + ) { + for (i in 0..10){ + ContatoCard() + Spacer(modifier = Modifier.height(4.dp)) + } + } +} + +@Composable +fun ContatoCard() { + Card( + modifier = Modifier.fillMaxWidth(), + colors = CardDefaults.cardColors( + containerColor = Color.LightGray + ) + ) { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Column(modifier = Modifier + .padding(8.dp) + .weight(2f)) { + Text( + text = "Nome do Contato", + fontSize = 24.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = "8888-9999", + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = "Amigo", + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + } + IconButton(onClick = { /*TODO*/ }) { + Icon( + imageVector = Icons.Default.Delete, + contentDescription = "" + ) + } + } + } +} +~~~ + +- nesse caso, o que há de diferente é o uso do `atributo verticalScroll` do composable Column, que permitirá que o conteúdo da coluna seja rolável caso a matéria seja maior do que a coluna. +- além disso, utilizaso o `composable IconButton`, que é um botão que exibe apenas um ícone. + +### 1.1.2 Estrutura do projeto +- para que o projeto fique organizado, criar os seguintes pacotes: + - model: para armazenar nossas classes de objeto. + - database: para armazenar as classes relacionados com o banco de dados.; e no pacote database, criar mais dois pacotes: + - dao: para guardar as interfaces que representam as instruções que vamos executar no banco de dados SQLite. + - repository: para guardar as classes utilizadas como fonte de dados da aplicação. + + +### 1.1.3 Criação do modelo Contato +- no pacote model, criar uma classe chamada Contato, que representará cada um dos contatos. + +~~~kotlin +package br.com.fiap.meuscontatos.model + +data class Contato( + val id: Long = 0, + val nome: String = "", + val telefone: String = "", + val amigo: Boolean = false +) +~~~ + +- a classe Contato é uma classe de dados, ou seja, possui apenas atributos que representa os dados de um objeto. +- anotar essa classe de modo que o Room saiba que deve gerenciar esta classe e criar uma entidade relacionada no SQLite. + +~~~kotlin +package br.com.fiap.meuscontatos.model + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "tbl_contato") +data class Contato( + @PrimaryKey(autoGenerate = true) val id: Long = 0, + val nome: String = "", + val telefone: String = "", + @ColumnInfo(name = "is_amigo") val amigo: Boolean = false +) +~~~ + +- alterações realizadas: + - @Entitiy: essa anotação indica ao Room que uma entidade para a classe Contato deverá ser criada no SQLite. A propriedade table_name indica que o nome da tabela no SQLite deverá ser "tbl_contato". Se table_name for omitido, será criada uma tabela com o mesmo nome da classe. + - @PrimaryKey: indica que o atributo id da classe Contato será a chave-primária da tabela. O atributo autoGenerate indica que o identificador deverá ser gerado automaticamente, ou seja, não há a necessidade de cria-lo no momento de instanciação da classe Contato. + - @ColumnInfo: essa anotação do atributo amigo permite a alteração de como o campo será criado na tabela no SQLite, neste caso estamos indicando que o campo deverá se chamar is_amigo. Se esta anotação for omitida, o campo terá o mesmo nome do atributo da classe. + +### 1.1.4 Criação da interface dao (Data Access Object) +- Interface que abstrairá os métodos CRUD da aplicação para uma entidade. +- criar a Interface ContatoDao no pacote dao. +- adicionar os métodos que indicarão ao Room quais operações de CRUD deverão ser implementadas. + +~~~kotlin +package br.com.fiap.meuscontatos.database.dao + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.Query +import androidx.room.Update +import br.com.fiap.meuscontatos.model.Contato + +@Dao +interface ContatoDao { + + @Insert + fun salvar(contato: Contato): Long + + @Update + fun atualizar(contato: Contato): Int + + @Delete + fun excluir(contato: Contato): Int + + @Query("SELECT * FROM tbl_contato WHERE id = :id") + fun buscarContatoPeloId(id: Int): Contato + + @Query("SELECT * FROM tbl_contato ORDER BY nome ASC") + fun listarContatos(): List +} +~~~ + +- anotações: + - @Dao: indica que essa interface deve ser utilizada pelo Room. + - @Insert: essa anotação indica ao Room que deve ser criado um método de inclusão de contato no banco de dados. O retorno da função "salvar" será o novo id gerado na tabela tbl_contato no banco de dados, por isso o retorno do tipo Long. A instrução INSERT do banco de dados será implementada pelo Room. + - @Update: indica ao Room que deverá ser implementado um método para a atualização do contato no bando de dados. Essa função retorna a quantidade de registros que foram atualizados, por isso o retorno do tipo Int. A instrução UPDATE no banco de dados será implementada pelo Room. + - @Query: indica ao Room que um método de consulta deverá ser implementado. Essa anotação permite a execução de qualquer estrutura da instrução SQL SELECT. Nesta anotação é necessário escrevermos a instrução SELECT que será executada no banco de dados. No código há duas funções com essa anotação: "buscarContatoPeloId", que deve resultar em apenas um contato, e a função "listarContatos", que terá como retorno uma lista de contatos, o que resultará no retorno de um objeto do tipo List de contatos. + +### 1.1.5 Criação da classe que representa o banco de dados +- essa classe deverá retornar a instância do banco de dados para que os métodos CRUD possam ser executados. +- criar uma classe com o nome "ContatoDb" no pacote dao do projeto. + +~~~kotlin +package br.com.fiap.meuscontatos.database.dao + +import android.content.Context +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase +import br.com.fiap.meuscontatos.model.Contato + +@Database(entities = [Contato::class], version = 1) +abstract class ContatoDb : RoomDatabase() { + + abstract fun contatoDao(): ContatoDao + + companion object { + + private lateinit var instance: ContatoDb + + fun getDatabase(context: Context): ContatoDb { + if (!::instance.isInitialized) { + instance = Room + .databaseBuilder( + context, + ContatoDb::class.java, + "contato_db" + ) + .allowMainThreadQueries() + .fallbackToDestructiveMigration() + .build() + } + return instance + } + } +} +~~~ + +- a classe ContatoDb herda a classe RoomDatabase, que é abstrata, então a classe ContataoDb dever ser abstrata também. +- ainda nesta classe, temos uma função abstrata chamada contatoDao que é do tipo ContatoDao. Essa função é necessária para termos acesso aos métodos CRUD nela descritos. +- a função getDatabase() e o atributo instance se encontram dentro de um bloco companion object, que as tornam estáticas. Fazemos isso para aplicar o conceito de “Singleton” no retorno da função “getDatabase”, para garantir que sempre entregaremos aos consumidores desta classe uma única instância do banco de dados, o que garante consistência e economia de recursos do dispositivo do usuário. Observe que antes de retornarmos a instância, verificamos se ela já está iniciada ou não. +- para a criação da instância do banco de dados, utilizamos a função databaseBuilder, onde fornecemos os seguintes parâmetros: + - context: representa a nossa aplicação. + - ContatoDb::class.java: é a instância da classe que representa o banco de dados. + - contato_db: é uma String com o nome do banco de dados. +- além disso, adicionamos as funções: + - allowMainThreadQueries: permitir que a persistência de dados ocorra no mesmo processo que gerencia a IU. + - fallbackToDestructiveMigration: destrói o banco de dados e o recria a cada nova implementação. + - build: cria a instancia do banco de dados. + +### 1.1.6 Criaçãodo repositório de contatos +- o repositório desempenha um papel muito importante na estrutura do projeto, já que ele será responsável por acessar os métodos CRUD da aplicação. +- criar no pacote repository uma classe com o nome ContatoRepository. + +~~~kotlin +package br.com.fiap.meuscontatos.database.repository + +import android.content.Context +import br.com.fiap.meuscontatos.database.dao.ContatoDb +import br.com.fiap.meuscontatos.model.Contato + +class ContatoRepository(context: Context) { + + private val db = ContatoDb.getDatabase(context).contatoDao() + + fun salvar(contato: Contato): Long { + return db.salvar(contato) + } + + fun atualizar(contato: Contato): Int { + return db.atualizar(contato) + } + + fun excluir(contato: Contato): Int { + return db.excluir(contato) + } + + fun listarContatos(): List { + return db.listarContatos() + } + + fun buscarContatoPeloId(id: Int): Contato { + return db.buscarContatoPeloId(id) + } +} +~~~ + +- a classe ContatoRepository recebe o parâmetro context da aplicação, o que será necessário para quando formos obter uma instância do banco de dados. +- também injetamos o banco de dados, através do atributo db, que receberá a instância do nosso banco de dados. +- os métodos da classe ContatoRepository utilizam a instância do banco de dados para efetuar o CRUD no BD, que foram declarados na Interface ContatoDao. Agora é só consumirmos tudo isso!!! + +### 1.1.7 Gravando nosso primeiro contato +- abrir o arquivo MainActivity.kt e, na função ContatoForm, acrescentear as instruções necessárias para obtermos uma instância do repositório. + +~~~kotlin +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ContatoForm( + nome: String, + telefone: String, + amigo: Boolean, + onNomeChange: (String) -> Unit, + onTelefoneChange: (String) -> Unit, + onAmigoChange: (Boolean) -> Unit +) { + // obter instância do repositório + val context = LocalContext.current + val contatoRepository = ContatoRepository(context) + Column( + modifier = Modifier.padding(16.dp) + ) { + Text( + //... +)}} +~~~ + +- para criarmos uma instância do objeto ContatoRepository”, precisamos do contexto da aplicação, que está sendo obtido através da instrução LocalContext.current. +- implementar o clique do botão. + +~~~kotlin +Button( + onClick = { + val contato = Contato( + nome = nome, + telefone = telefone, + amigo = amigo + ) + contatoRepository.salvar(contato = contato) + }, + modifier = Modifier.fillMaxWidth() +) { + Text( + text = "CADASTAR", + modifier = Modifier.padding(8.dp) + ) +} +~~~ + +- o que fizemos nesta implementação foi criar um objeto Contato referenciado pela variável contato, com os dados que estão preenchidos no formulário. +- em seguida, chamamos a função salvar do objeto contatoRepository passando o objeto "contato" como argumento. + +> O banco de dados "contato_db" será criado durante a primeira tentativa de interação com o banco. Após a primeira interação, a aplicação passará a utilizar o banco que foi criado. + +- para verificar o local onde o banco de dados fica gravado no dispositivo Android: + - com o emulador rodando, clique na aba "Device File Explorer". + - navegue no sistema de arquivos do dispositivo até a pasta de dados do aplicativo (data -> data -> br.com.fiap.meuscontatos -> databases). + +- executar a aplicação no emulador, preencher o formulário com os dados de um amigo e pressionar o botão “CADASTRAR”. Aparentemente nada aconteceu, mas se não receber uma mensagem de erro, o registro foi armazenado no banco de dados. +- em "Device File Explorer", clicar com o botão direito do mouse na pasta "br.com.fiap.meuscontatos" e clicar na opção "Synchronize". +- também é possível explorar o banco de dados que foi criado no dispositivo clicando na aba "App Inspection" na parte inferior do Android Studio. +- em seguida, dar um duplo clique no nome da tabela. À direita vemos os dados do amigo que acabamos de cadastrar. Marcar a opção Live updates, para acompanhar os registros sendo atualizados na tabela. + +### 1.1.8 Listando os contatos +- a aplicação já permite o cadastro de novos contatos, agora precisamos exibir os contatos à medida que vão sendo cadastrados. +- criar uma variável de estado que será responsável por atualizar a lista de contatos da aplicação, além de criar uma instância da classe ContatoRepository. + +~~~kotlin +@Composable +fun ContatosScreen() { + + val context = LocalContext.current + val contatoRepository = ContatoRepository(context) + + var nomeState = remember { + mutableStateOf("") + } + + var telefoneState = remember { + mutableStateOf("") + } + + var amigoState = remember { + mutableStateOf(false) + } + + var listaContatosState = remember { + mutableStateOf(contatoRepository.listarContatos()) + } + //... +} +~~~ + +- em seguida, passar a "listaContatosState" para a função ContatoList: + +~~~kotlin +@Composable +fun ContatoList(contatos: List) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + .verticalScroll(rememberScrollState()) + ) { + for (contato in contatos) { + ContatoCard(contato) + Spacer(modifier = Modifier.height(4.dp)) + } + } +} +~~~ + +- ajustar a chamada para ContatoList na função ContatosScreen, para que a lista seja passada como argumento: + +~~~kotlin +Column { + ContatoForm( + nome = nomeState.value, + telefone = telefoneState.value, + amigo = amigoState.value, + onNomeChange = { + nomeState.value = it + }, + onTelefoneChange = { + telefoneState.value = it + }, + onAmigoChange = { + amigoState.value = it + } + ) + ContatoList(listaContatosState.value) +} +~~~ + +- a função ContatoList recebe a lista de contatos como argumento. A lista é iterada pelo laço de repetição for que passa o contato para a função ContatoCard. +- ajustar a função ContatoCard: + +~~~kotlin +@Composable +fun ContatoCard(contato: Contato) { + Card( + modifier = Modifier.fillMaxWidth(), + colors = CardDefaults.cardColors( + containerColor = Color.LightGray + ) + ) { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Column( + modifier = Modifier + .padding(8.dp) + .weight(2f) + ) { + Text( + text = contato.nome, + fontSize = 24.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = contato.telefone, + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = if (contato.amigo) "Amigo" else "Contato", + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + } + IconButton(onClick = { /*TODO*/ }) { + Icon( + imageVector = Icons.Default.Delete, + contentDescription = "" + ) + } + } + } +} +~~~ + +- executar a aplicação no emulador e verificar se os contatos já cadastrados são listados, mas ao cadastrar um novo contato ele não irá aparecer na lista, pois não estamos atualizando a variável listaContatosState que está sendo observada. +- refatorar a função ContatoForm para atualizar a variável listaContatosState durante a inclusão de um novo contato. + +~~~kotlin +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ContatoForm( + nome: String, + telefone: String, + amigo: Boolean, + onNomeChange: (String) -> Unit, + onTelefoneChange: (String) -> Unit, + onAmigoChange: (Boolean) -> Unit, + atualizar: () -> Unit +) { + // obter instância do repositório + val context = LocalContext.current + val contatoRepository = ContatoRepository(context) +//... +} +~~~ + +- acrescentamos uma função lambda como parâmetro para a função ContatoForm, de modo que, ao chamarmos o formulário, possamos passar uma função para atualização da lista de contatos. +- a implementação do clique do botão deve ser alterada: + +~~~kotlin +. . . trecho de código omitido +Button( + onClick = { + val contato = Contato( + nome = nome, + telefone = telefone, + amigo = amigo + ) + contatoRepository.salvar(contato = contato) + atualizar() + }, + modifier = Modifier.fillMaxWidth() +) { + Text( + text = "CADASTAR", + modifier = Modifier.padding(8.dp) + ) +} +~~~ + +- para finalizar, precisamos passar a função de atualização durante a chamada da função de composição ContatoForm: + +~~~kotlin +. . . trecho de código omitido +Column { + ContatoForm( + nome = nomeState.value, + telefone = telefoneState.value, + amigo = amigoState.value, + onNomeChange = { + nomeState.value = it + }, + onTelefoneChange = { + telefoneState.value = it + }, + onAmigoChange = { + amigoState.value = it + }, + atualizar = { + listaContatosState.value = contatoRepository.listarContatos() + } + ) + ContatoList(listaContatosState.value) +} +~~~ + +### 1.1.9 Exclusão de contatos +- na lista de contatos há um botão para excluir o contato; implementar esta funcionalidade. +- o código da função ContatoCard deverá se parecer com: + +~~~kotlin +@Composable +fun ContatoCard( + contato: Contato, + context: Context, + atualizar: () -> Unit +) { + Card( + modifier = Modifier.fillMaxWidth(), + colors = CardDefaults.cardColors( + containerColor = Color.LightGray + ) + ) { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Column( + modifier = Modifier + .padding(8.dp) + .weight(2f) + ) { + Text( + text = contato.nome, + fontSize = 24.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = contato.telefone, + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = if (contato.amigo) "Amigo" else "Contato", + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + } + IconButton(onClick = { + val contatoRepository = ContatoRepository(context) + contatoRepository.excluir(contato) + atualizar() + }) { + Icon( + imageVector = Icons.Default.Delete, + contentDescription = "" + ) + } + } + } +} +~~~ + +- a função ContatoList também deverá ser ajustada para passar os argumentos da função ContatoCard: + +~~~kotlin +@Composable +fun ContatoList(contatos: List, atualizar: () -> Unit) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + .verticalScroll(rememberScrollState()) + ) { + for (contato in contatos) { + ContatoCard(contato, context = LocalContext.current, atualizar) + Spacer(modifier = Modifier.height(4.dp)) + } + } +} +~~~ + +- deste modo, a função ContatosScreen que chama a função ContatoList deverá fornecer a função atualizar. +- código completo da função ContatosScreen: + +~~~kotlin +@Composable +fun ContatosScreen() { + + val context = LocalContext.current + val contatoRepository = ContatoRepository(context) + + var nomeState = remember { + mutableStateOf("") + } + + var telefoneState = remember { + mutableStateOf("") + } + + var amigoState = remember { + mutableStateOf(false) + } + + var listaContatosState = remember { + mutableStateOf(contatoRepository.listarContatos()) + } + + Column { + ContatoForm( + nome = nomeState.value, + telefone = telefoneState.value, + amigo = amigoState.value, + onNomeChange = { + nomeState.value = it + }, + onTelefoneChange = { + telefoneState.value = it + }, + onAmigoChange = { + amigoState.value = it + }, + atualizar = { + listaContatosState.value = contatoRepository.listarContatos() + } + ) + ContatoList(listaContatosState.value){ + listaContatosState.value = contatoRepository.listarContatos() + } + } +} +~~~ + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo12a.md b/fase01/trilha-android/capitulo12a.md new file mode 100644 index 0000000..83eccc4 --- /dev/null +++ b/fase01/trilha-android/capitulo12a.md @@ -0,0 +1,822 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 12A: Listas e Consumo de API externa.

+
+ +
+

1. LISTAS E CONSUMO DE API EXTERNA

+
+ +## 1.1 Lazy Column + +- uma das tarefas mais comuns quando desenvolvemos aplicações Android é exibir informações na forma de lista, como uma lista de produtos, de contatos, de mensagens etc. +- anteriormente ao Jetpack Compose utilizávamos um componente chamado `RecyclerView`, bastante trabalhoso. +- hoje, a construção desses componentes se tornou simples com a utilização dos `composables LazyColumn e LazyRow`. +- exploraremos a utilização do LazyColumn. +- criar um projeto no Android Studio chamado [Listas Lazy](./projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/) e apagar as funções Greeting e GreetingPreview. + - criar 2 pacotes: model e repository. + - no pacote model, criar uma classe de dados chamada "Game". + +~~~kotlin +package br.com.fiap.listaslazy.model + +data class Game( + val id: Long = 0, + val title: String = "", + val studio: String = "", + val releaseYear: Int = 0 +) +~~~ + +- no pacote repository, criar um arquivo "GamesList.kt". + +~~~kotlin +package br.com.fiap.listaslazy.repository + +import br.com.fiap.listaslazy.model.Game + +fun getAllGames(): List { + return listOf( + Game(id = 1, title = "Double Dragon", studio = "Technos", releaseYear = 1987), + Game(id = 2, title = "Batletoads", studio = "Tradewest", releaseYear = 1991), + Game(id = 3, title = "Enduro", studio = "Activision", releaseYear = 1983), + Game(id = 4, title = "Ikari Warriors", studio = "SNK", releaseYear = 1986), + Game(id = 5, title = "Captain Commando", studio = "Capcom", releaseYear = 1991), + Game(id = 6, title = "Mario Bros", studio = "Nintendo", releaseYear = 1983), + Game(id = 7, title = "Tiger Heli", studio = "Taito", releaseYear = 1985), + Game(id = 8, title = "Mega Man", studio = "Capcom", releaseYear = 1987), + Game(id = 9, title = "Gradius", studio = "Konami", releaseYear = 1985), + Game(id = 10, title = "Gun Fight", studio = "Taito", releaseYear = 1975) + ) +} + +fun getGamesByStudio(studio: String): List{ + return getAllGames().filter { + it.studio.startsWith(prefix = studio, ignoreCase = true) + } +} +~~~ + +- o arquivo GamesList.kt implementa a função getAllGames(), que retorna uma lista com dez games e a função getGamesByStudio(), que retorna uma lista de games cujo nome do estúdio começa com o valor do argumento studio, ignorando maiúsculas e minúsculas. +- criar a interface do usuário (arquivo MainActivity.kt): + +~~~kotlin +package br.com.fiap.listaslazy + +import android.os.Bundle +import android.util.Log +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Search +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.listaslazy.repository.getGamesByStudio +import br.com.fiap.listaslazy.ui.theme.ListasLazyTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + Log.i("aaa", getGamesByStudio("Capcom").toString()) + setContent { + ListasLazyTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + GamesScreen() + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun GamesScreen() { + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Meus jogos favoritos", + fontSize = 24.sp, + fontWeight = FontWeight.Bold + ) + Spacer(modifier = Modifier.height(16.dp)) + OutlinedTextField( + value = "", + onValueChange = {}, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Nome do estúdio") + }, + trailingIcon = { + IconButton(onClick = { /*TODO*/ }) { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "" + ) + } + } + ) + Spacer(modifier = Modifier.height(16.dp)) + } +} +~~~ + +### 1.1.1 Implementando a LazyColumn + +- podemos criar listas utilizando Column em conjunto com algum laço de repetição, mas isso deve ser feito para exibir listas pequenas, para evitar problemas de performance. +- quando trabalhamos com listas muito grandes, a melhor opção é a utilização da LazyColumn, que posiciona na lista apenas os itens visíveis, e o restante da lista vai sendo inserido de acordo com a rolagem da lista, garantindo uma performance superior. +- implementar a função GamesScreen no arquivo MainActivity.kt: + +~~~kotlin +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun GamesScreen() { + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Meus jogos favoritos", + fontSize = 24.sp, + fontWeight = FontWeight.Bold + ) + Spacer(modifier = Modifier.height(16.dp)) + OutlinedTextField( + value = "", + onValueChange = {}, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Nome do estúdio") + }, + trailingIcon = { + IconButton(onClick = { /*TODO*/ }) { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "" + ) + } + } + ) + Spacer(modifier = Modifier.height(16.dp)) + LazyColumn(){ + items(getAllGames()){ + Column() { + Text(text = it.title) + } + } + } + } +} +~~~ + +- melhorar a exibição dos games utilizando um Card e adicionando as outras informações. +- criar uma função chamada GameCard no MainActivity.kt, que será responsável por renderizar cada item da lista. + +~~~kotlin +@Composable +fun GameCard(game: Game) { + Card(modifier = Modifier.padding(bottom = 8.dp)) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier + .fillMaxWidth() + ) { + Column(modifier = Modifier + .fillMaxWidth() + .padding(16.dp).weight(3f)) { + Text( + text = game.title, + fontSize = 20.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = game.studio, + fontSize = 14.sp, + fontWeight = FontWeight.Normal + ) + } + Text( + text = game.releaseYear.toString(), + modifier = Modifier.weight(1f).fillMaxWidth(), + fontSize = 20.sp, + fontWeight = FontWeight.Bold, + color = Color.Blue + ) + } + } +} +~~~ + +- ajustar a função GamesScreen para que utilize a função GameCard: + +~~~kotlin +Spacer(modifier = Modifier.height(16.dp)) +LazyColumn(){ + items(getAllGames()){ + GameCard(game = it) + } +} +~~~ + +### 1.1.2 Implementação da funcionalidade de busca + +- para implementar a funcionalidade de busca, é necessário controlar o estado da aplicação, tanto para a digitação no campo de busca quanto para a lista de games. +- criar as variáveis de estado no início da função GameScreen. + +~~~kotlin +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun GamesScreen() { + + var searchTextState by remember { + mutableStateOf("") + } + + var gamesListState by remember { + mutableStateOf(getAllGames()) + } +} +~~~ + +- outro ajuste que deve ser feito é passar o estado para a função "items" da LazyColumn: + +~~~kotlin +Spacer(modifier = Modifier.height(16.dp)) +LazyColumn(){ + items(gamesListState){ + GameCard(game = it) + } +} +~~~ + +- configurar o campo de busca para capturar a digitação do usuário: + +~~~kotlin +OutlinedTextField( + value = searchTextState, + onValueChange = { + searchTextState = it + }, + modifier = Modifier.fillMaxWidth(), + trailingIcon = { + IconButton(onClick = {}) { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "" + ) + } + } +) +~~~ + +- implementar a função onClick no IconButton: + +~~~kotlin +OutlinedTextField( + value = searchTextState, + onValueChange = { + searchTextState = it + }, + modifier = Modifier.fillMaxWidth(), + trailingIcon = { + IconButton(onClick = { + gamesListState = getGamesByStudio(searchTextState) + }) { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "" + ) + } + } +) +~~~ + +- colocar na função onValueChange do campo de busca a instrução para buscar o game pelo estúdio, e agora a busca ocorrerá enquanto o usuário digita! + +## 1.2 LazyRow + +- a implementação da LazyRow é tão simples quanto a LazyColumn. +- a única diferença é que a lista será apresentada na horizontal. + +### 1.2.1 Implementação da LazyRow +- construir uma lista horizontal com os estúdios da lista de games. +- criar uma função chamada StudioCard no arquivo MainActivity.kt. + +~~~kotlin +@Composable +fun StudioCard(game: Game) { + Card(modifier = Modifier.size(100.dp).padding(end = 4.dp)) { + Column( + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.fillMaxSize() + ) { + Text(text = game.studio) + } + } +} +~~~ + +- a lista de estúdios ficará acima da lista de games; ajustar a função GamesScreen. + +~~~kotlin +Spacer(modifier = Modifier.height(16.dp)) +LazyRow(){ + items(gamesListState){ + StudioCard(game = it) + } +} +Spacer(modifier = Modifier.height(16.dp)) +LazyColumn() { + items(gamesListState) { + GameCard(game = it) + } +} +~~~ + +
+

2. CONSUMINDO API EXTERNA

+
+ +## 2.1 API REST + +- uma API REST funciona seguindo o modelo cliente-servidor, ou seja, temos um cliente que faz uma requisição solicitando algum recurso e o servidor atende essa requisição fornecendo o recurso requisitado. +- os recursos podem ser imagens, arquivos HTML ou simplesmente texto. +- geralmente os recursos envolvidos tanto na requisição quanto na resposta em um webservice HTTP usando o padrão REST são textos em formato JSON ou XML. + +## 2.2 A biblioteca Retrofit + +- é uma das bibliotecas mais populares para consumo de APIs REST no Android, fornecendo uma forma rápida, eficiente e segura de executar requisições HTTP e fácil gerenciamento das respostas. +- essa biblioteca nos permite trabalhar com os formatos de dados mais utilizados como o JSON e XML, sendo o JSON o formato dominante. +- a conversão de objetos para JSON e vice e versa é feito de maneira transparente ao desenvolvedor através da utilização de diversos conversores disponíveis, como Gson, Jackson, Moshi etc. + +## 2.3 Projeto Consulta CEP + +- o projeto realizará a consulta em uma API pública responsável por devolver os dados de um endereço a partir de um CEP ou através de uma parte do endereço conhecido, como nome da rua, cidade, estado etc.U +- utilizaremos a [API do ViaCep](https://viacep.com.br/). +- criar um projeto com o nome [Consulta CEP](./projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/) e apagar os métodos Greeting e GreetingPreview. + +~~~kotlin +package br.com.fiap.consultacep + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Search +import androidx.compose.material3.Card +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardCapitalization +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.consultacep.ui.theme.ConsultaCEPTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + ConsultaCEPTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + CepScreen() + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun CepScreen() { + + var cepState by remember { mutableStateOf("") } + var ufState by remember { mutableStateOf("") } + var cidadeState by remember { mutableStateOf("") } + var ruaState by remember { mutableStateOf("") } + + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Card(modifier = Modifier.fillMaxWidth()) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Text(text = "CONSULTA CEP", fontSize = 24.sp) + Text( + text = "Encontre o seu endereço", + fontSize = 20.sp + ) + Spacer(modifier = Modifier.height(32.dp)) + OutlinedTextField( + value = cepState, + onValueChange = { + cepState = it + }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Qual o CEP procurado?") + }, + trailingIcon = { + IconButton(onClick = { /*TODO*/ }) { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "" + ) + } + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Number + ) + ) + Spacer(modifier = Modifier.height(32.dp)) + Text( + text = "Não sabe o CEP?", + fontWeight = FontWeight.Bold + ) + Spacer(modifier = Modifier.height(8.dp)) + Row() { + OutlinedTextField( + value = ufState, + onValueChange = { + ufState = it + }, + modifier = Modifier + .weight(1f) + .padding(end = 4.dp), + label = { + Text(text = "UF?") + }, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Characters, + keyboardType = KeyboardType.Text + ) + ) + Spacer(modifier = Modifier.height(8.dp)) + OutlinedTextField( + value = cidadeState, + onValueChange = { + cidadeState = it + }, + modifier = Modifier.weight(2f), + label = { + Text(text = "Qual a cidade?") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + capitalization = KeyboardCapitalization.Words + ) + ) + } + Spacer(modifier = Modifier.height(8.dp)) + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + value = ruaState, + onValueChange = { + ruaState = it + }, + modifier = Modifier.weight(2f), + label = { + Text(text = "O que lembra do nome da rua?") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + capitalization = KeyboardCapitalization.Words + ) + ) + IconButton(onClick = { /*TODO*/ }) { + Icon(imageVector = Icons.Default.Search, contentDescription = "") + } + } + } + } + Spacer(modifier = Modifier.height(8.dp)) + LazyColumn() { + items(120) { + CardEndereco() + } + } + } +} + +@Composable +fun CardEndereco() { + Card(modifier = Modifier + .fillMaxWidth() + .padding(bottom = 4.dp)) { + Column(modifier = Modifier + .fillMaxWidth() + .padding(8.dp) + ) { + Text(text = "CEP:") + Text(text = "Rua:") + Text(text = "Cidade:") + Text(text = "Bairro:") + Text(text = "UF:") + } + } +} +~~~ + +- criar os pacotes model e service no pacote principal do projeto. +- no pacote model, criar uma classe de dados chamada Cep. + +~~~kotlin +package br.com.fiap.consultacep.model + +data class Endereco( + val cep: String = "", + val rua: String = "", + val cidade: String = "", + val bairro: String = "", + val uf: String = "" +) +~~~ + +### 2.3.1 Dependências do Retrofit + +- acrescentar na sessão dependencies do arquivo build.gradle (Module: app) as dependências do Retrofit para o projeto. + +~~~kotlin +dependencies { + + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + // Dependências do Retrofit + implementation 'com.squareup.retrofit2:retrofit:2.9.0' + implementation 'com.squareup.retrofit2:converter-gson:2.9.0' + + } +~~~ + +- a URL para consulta de um CEP no webservice da ViaCep retorna o seguinte JSON: + +~~~json +{ + "cep": "01001-000", + "logradouro": "Praça da Sé", + "complemento": "lado ímpar", + "bairro": "Sé", + "localidade": "São Paulo", + "uf": "SP", + "ibge": "3550308", + "gia": "1004", + "ddd": "11", + "siafi": "7107" +} +~~~ + +- porém, não utilizaremos todos os atributos da resposta, e alguns nomes que utilizamos na classe Endereco é diferente do nome do atributo que recebemos do ViaCep. + - é importante que o nome dos atributos na classe seja igual aos nomes dos atributos do JSON da resposta que recebemos! +- agora que temos a biblioteca Retrofit disponível no projeto, fazer alguns ajustes na classe de dados “Endereco” para que tudo funcione corretamente. + +~~~kotlin +package br.com.fiap.consultacep.model + +import com.google.gson.annotations.SerializedName + +data class Endereco( + val cep: String = "", + @SerializedName("logradouro") val rua: String = "", + @SerializedName("localidade") val cidade: String = "", + val bairro: String = "", + val uf: String = "" +) +~~~ + +- a `anotação @SerializedName` é necessária quando queremos utilizar o nome do atributo da nossa classe diferente do nome do atributo devolvido pela API. + - nesse caso a API devolve o atributo "logradouro", mas queremos utilizar "rua". + - essa anotação permite que o conversor de JSON para objeto consiga localizar os atributos relacionados. +- criar no pacote "service" uma inteface chamada CepService. + +~~~kotlin +package br.com.fiap.consultacep.service + +import br.com.fiap.consultacep.model.Endereco +import retrofit2.Call +import retrofit2.http.GET +import retrofit2.http.Path + +interface CepService { + + //https://viacep.com.br/ws/01001000/json/ + @GET("{cep}/json/") + fun getEndereco(@Path("cep") cep: String): Call + + //https://viacep.com.br/ws/RS/Porto%20Alegre/Domingos/json/ + @GET("{uf}/{cidade}/{rua}/json/") + fun getEnderecos( + @Path("uf") uf: String, + @Path("cidade") cidade: String, + @Path("rua") rua: String + ): List> + +} +~~~ + +- a interface CepService possui dois métodos de requisição GET, por conta da `anotação @GET`, que recebe como argumento a parte da URL que é específica para cada requisição. +- ambos os métodos retornam um objeto do tipo Call, que contém a resposta do servidor REST da ViaCep. +- a `anotação @Path` indica que a chave que se encontra na URL deverá ser substituída pelo valor do argumento passado na chamada do método. +- criar uma classe chamada RetrofitFactory no pacote service, que fará o papel de cliente HTTP (ela que fará as requisições para o servidor da ViaCep). + +~~~kotlin +package br.com.fiap.consultacep.service + +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory + +class RetrofitFactory { + + private val URL = "https://viacep.com.br/ws/" + + private val retrofitFactory = Retrofit + .Builder() + .baseUrl(URL) + .addConverterFactory(GsonConverterFactory.create()) + .build() + + fun getCepService(): CepService { + return retrofitFactory.create(CepService::class.java) + } + +} +~~~ + +- a variável URL armazena a URL base (parte que é fixa para qualquer requisição ao webservice), e o restante da URL será fornecido pela anotação @GET da interface que possui os métodos de requisição que serão utilizados. + +### 2.3.2 Executando as chamadas para a API +- executar a chamada para o endpoint da ViaCep responsável por nos entregar uma lista de endereços quando fornecemos o estado, a cidade e parte do nome da rua. +- o método que vamos utilizar será o getEnderecos(), que nos devolve uma lista de endereços com base no estado, cidade e rua fornecidos pelo usuário. +- criar uma variável de estado que guardará a lista de endereços devolvidos pela API. + +~~~kotlin +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun CepScreen() { + + var cepState by remember { mutableStateOf("") } + var ufState by remember { mutableStateOf("") } + var cidadeState by remember { mutableStateOf("") } + var ruaState by remember { mutableStateOf("") } + + var listaEnderecoState by remember { mutableStateOf(listOf()) } +} +~~~ + +- implementar a chamada (Call) para o servidor da ViaCep. Faremos a chamada no clique do segundo botão “buscar”. + +~~~kotlin +Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + value = ruaState, + onValueChange = { + ruaState = it + }, + modifier = Modifier.weight(2f), + label = { + Text(text = "O que lembra do nome da rua?") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + capitalization = KeyboardCapitalization.Words + ) + ) + IconButton(onClick = { + val call = RetrofitFactory().getCepService().getEnderecos(ufState, cidadeState, ruaState) + call.enqueue(object : Callback>{ + override fun onResponse( + call: Call>, + response: Response> + ) { + listaEnderecoState = response.body()!! + } + + override fun onFailure(call: Call>, t: Throwable) { + TODO("Not yet implemented") + } + + }) + }) { + Icon(imageVector = Icons.Default.Search, contentDescription = "") + } + } +~~~ + +- no código acima, criamos um objeto Call para o método getEnderecos da interface CepService, onde passamos o estado, cidade e rua, através das variáveis de estado. +- quando efetuamos a chamada, o servidor devolverá uma resposta que será armazenada no argumento response do método onResponse da chamada. +- neste momento, atribuímos à variável de estado listaEnderecoState o valor retornado pela função body() do objeto response, que é a lista de endereço devolvida pelo endpoint da ViaCep. +- implementar algumas alterações na função “CardEndereco” para que possamos carregar cada item da LazyColumn com os endereços da listaEnderecoState. + +~~~kotlin +@Composable +fun CardEndereco(endereco: Endereco) { + Card(modifier = Modifier + .fillMaxWidth() + .padding(bottom = 4.dp)) { + Column(modifier = Modifier + .fillMaxWidth() + .padding(8.dp) + ) { + Text(text = "CEP: endereco.cep") + Text(text = "Rua: endereco.rua") + Text(text = "Cidade: endereco.cidade") + Text(text = "Bairro: endereco.bairro") + Text(text = "UF: endereco.uf") + } + } +} +~~~ + +- para finalizar, + +~~~kotlin +Spacer(modifier = Modifier.height(8.dp)) +LazyColumn() { + items(listaEnderecoState) { + CardEndereco(it) + } +} +~~~ + +- antes de executar a aplicação, permitir que o app tenha acesso a rede, a partir do arquivo “AndroidManifest.xml”: + +~~~kotlin + + + + + + + +

FASE 1 - APP WORLD

+

Capítulo 13A: Animação e Multimídia.

+ + +
+

1. ANIMAÇÃO

+
+ +## 1.1 Aplicando efeitos de animação + +- a biblioteca de animações do Jetpack Compose permite aplicar movimento e transições mais fluídas entre os diferentes componentes da tela. +- há 4 grupos de animação: + - `Fade`: que aplica um efeito de esmaecimento na entrada e saída do componente. + - `Slide`: aplica efeito de deslizamento na entrada e saída do componente. O deslizamento pode ser aplicado vertical ou horizontalmente. + - `Scale`: aplica uma alteração do tamanho do componente no momento de entrada ou saída da tela. + - `Expand`: aplica um efeito de expansão no tamanho do componente. +- todos esses efeitos podem ser configurados para diferentes comportamentos, inclusive é possível juntar um ou mais efeitos para criarmos um efeito personalizado. +- para testar os tipos de animação que podemos incluir, criae um projeto no Android Studio com o nome [Animacao](./projects/Animacao/app/src/main/java/br/com/fiap/animacao/MainActivity.kt). + +~~~kotlin +package br.com.fiap.animacao + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.ExitTransition +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Button +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import br.com.fiap.animacao.ui.theme.AnimacaoTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + AnimacaoTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + AnimacaoScreen() + } + } + } + } +} + +@OptIn(ExperimentalAnimationApi::class) +@Composable +fun AnimacaoScreen() { + var visible = remember { + mutableStateOf(false) + } + var enter = remember { + mutableStateOf(fadeIn()) + } + var exit = remember { + mutableStateOf(fadeOut()) + } + + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth() + ) { + Button(onClick = { + }) { + Text(text = "Fade") + } + Button(onClick = { + }) { + Text(text = "Slide") + } + Button(onClick = { + }) { + Text(text = "Scale") + } + Button(onClick = { + }) { + Text(text = "Expand") + } + } + Spacer(modifier = Modifier.height(64.dp)) + BoxComponent( + visible = visible.value, + enter = enter.value, + exit = exit.value + ) + } +} + +@Composable +fun BoxComponent( + visible: Boolean, + enter: EnterTransition, + exit: ExitTransition +) { + AnimatedVisibility( + visible = visible, + enter = enter, + exit = exit + ) { + Box(modifier = Modifier + .size(200.dp) + .background(color = Color.Red)) + } +} +~~~ + +- a função BoxScreen é responsável por renderizar a tela enquanto a função BoxComponent é responsável por renderizar a Box que utilizaremos para testar os efeitos de animação. +- a função“BoxComponent recebe três argumentos: + - visible: do tipo booleano, responsável por controlar a visibilidade do componente na tela. + - enter: argumento do tipo EnterTransition, responsável pelo efeito aplicado durante a entrada do componente Box na tela. + - exit: do tipo ExitTransition, responsável pelo efeito aplicado durante a saída do componente Box da tela. +- a função AnimacaoScreen declara e inicia três variáveis de estado que são responsáveis por armazenar o estado de exibição e animação de entrada ou saída do componente. Essa função implementa 4 botões que são responsáveis por aplicar os diferentes tipos de animação que vamos testar. + +### 1.1.1 Implementando o efeito de FadeIn/FadeOut +- efeito de esmaecimento do componente. +- aplicar o efeito de esmaecimento do componente Box durante a entrada e saída. + +~~~kotlin +Button(onClick = { + visible.value = !visible.value + enter.value = fadeIn() + exit.value = fadeOut() + }) { + Text(text = "Fade") + } +~~~ + +- alterar o tempo em que as animações ocorrem: + +~~~kotlin +Button(onClick = { + visible.value = !visible.value + enter.value = fadeIn(animationSpec = tween(5000)) + exit.value = fadeOut(animationSpec = tween(5000)) + }) { + Text(text = "Fade") + } +~~~ + +### 1.1.2 Aplicando efeito de deslizamento +- a função slide possui as variações: slideInHorizontally, slideOutHorizontally, slideInVertically e slideOutVertically. + +~~~kotlin +Button(onClick = { + visible.value = !visible.value + enter.value = slideInHorizontally() + exit.value = slideOutHorizontally() + }) { + Text(text = "Slide") + } +~~~ + +- é possível juntar efeitos: colocar um efeito de fadeOut junto com o efeito de slideOutVertically. + +~~~kotlin +Button(onClick = { + visible.value = !visible.value + enter.value = slideInHorizontally() + exit.value = slideOutVertically() + fadeOut(animationSpec = tween(2000)) + }) { + Text(text = "Slide") + } +~~~ + +### 1.1.3 Aplicando efeito de escala +- aplica um efeito de alteração de tamanho do componente durante a entrada ou saída da tela. + +~~~kotlin +Button(onClick = { + visible.value = !visible.value + enter.value = scaleIn() + exit.value = scaleOut() + }) { + Text(text = "Scale") + } +~~~ + +### 1.1.4 Aplicando efeito de expansão +- ocorre no tamanho da imagem, mas começando pelas laterais, horizontal ou verticalmente. + +~~~kotlin +Button(onClick = { + visible.value = !visible.value + enter.value = expandHorizontally() + exit.value = shrinkHorizontally() + }) { + Text(text = "Expand") + } +~~~ + +- também é possível alterar o efeito para vertical. + +~~~kotlin +Button(onClick = { + visible.value = !visible.value + enter.value = expandVertically() + exit.value = shrinkVertically() + }) { + Text(text = "Expand") + } +~~~ + +
+

2. MULTIMIDIA

+
+ +## 2.1 Reproduzindo áudio + +- criar um projeto no Android Studio com o nome [Audio Player](./projects/AudioPlayer/app/src/main/java/br/com/fiap/audioplayer/MainActivity.kt). +- para aprender a reproduzir áudio em aplicativos Android, será necessário disponibilizar um áudio como recurso para a aplicação; portanto, criar uma nova pasta de recursos na pasta res do projeto: + - botão direito do mouse na pasta "res" > New > Android Resource Directory > opção "raw" no campo Resource Type > OK. + - guardar o arquivo de áudio na pasta raw. +- na MainActivity.kt: + +~~~kotlin +@Composable +fun AudioPlayer(context: Context) { + + var player = remember { + mutableStateOf(MediaPlayer.create(context, R.raw.music)) + } + + Box(contentAlignment = Alignment.Center) { + Row() { + + IconButton(onClick = { }) { + Icon( + painter = painterResource(id = R.drawable.play), + contentDescription = "" + ) + } + + IconButton(onClick = { }) { + Icon( + painter = painterResource(id = R.drawable.pause), + contentDescription = "" + ) + } + + IconButton(onClick = { }) { + Icon( + painter = painterResource(id = R.drawable.stop), + contentDescription = "" + ) + } + + } + } +} +~~~ + +- os arquivos de imagem utilizados como botões do tocador de música deverão ser colocados na pasta “res/drawable”. +- modificar o método onCreate da classe MainActivity para chamar a função AudioPlayer. + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + AudioPlayerTheme { + Surface(modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background) { + AudioPlayer(this) + } + } + } + } + } +~~~ + +- para a reprodução do áudio, utilizar a classe MediaPlayer, que fornece todos os métodos necessários para tocar, pausar, parar etc. +- no início da função AudioPlayer, criar uma variável de estado para guardar a referência para o objeto MediaPlayer. + +~~~kotlin +@Composable +fun AudioPlayer(context: Context) { + + var player = remember { + mutableStateOf(MediaPlayer.create(context, R.raw.music)) + } +} +~~~ + +- implementação do botão Play: + +~~~kotlin +IconButton(onClick = { + if (player.value == null){ + player.value = MediaPlayer.create(context, R.raw.music) + } + player.value.start() + }) { + Icon( + painter = painterResource(id = R.drawable.play), + contentDescription = "" + ) + } +~~~ + +- implementação do botão Pause: + +~~~kotlin +IconButton(onClick = { + player.value.pause() + }) { + Icon( + painter = painterResource(id = R.drawable.pause), + contentDescription = "" + ) + } +~~~ + +- implementação do botão Stop: + +~~~kotlin +IconButton(onClick = { + player.value.stop() + player.value.reset() + player.value.release() + player.value = null + }) { + Icon( + painter = painterResource(id = R.drawable.stop), + contentDescription = "" + ) + } +~~~ + +- quando pressionamos o botão stop, precisamos garantir que a variável player ficará totalmente limpa, por isso utilizamos os métodos reset() e release(), além de atualizarmos o valor para null. + +## 2.2 Reproduzindo vídeos + +- criar um projeto no Android Studio com o nome [Video Player](./projects/VideoPlayer/app/src/main/java/br/com/fiap/videoplayer/MainActivity.kt). +- adicionar uma biblioteca externa chamada Exoplayer; no arquivo build.gradle(Module: app), adicionar às dependencies: + +~~~kotlin +dependencies { + + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + // Exoplayer + implementation "com.google.android.exoplayer:exoplayer:2.19.0" +} +~~~ + +- na MainActivity.kt: + +~~~kotlin +@Composable +fun VideoPlayer() { + val videoUrl = + "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" + val context = LocalContext.current + val player = ExoPlayer.Builder(context).build() + val playerView = PlayerView(context) + val mediaItem = MediaItem.fromUri(videoUrl) + + val playWhenReay by remember { + mutableStateOf(true) + } + + player.setMediaItem(mediaItem) + playerView.player = player + + LaunchedEffect(player) { + player.prepare() + player.playWhenReady = playWhenReay + } + + AndroidView(factory = { + playerView + }) + +} +~~~ + +
+

3. PUBLICANDO A APLICAÇÃO NO GOOGLE PLAY

+
+ +## 3.1 Criação de conta no Google Play Console + +- para publicar aplicações, criar uma conta de desenvolvedor, e efetuar o pagamento de US$25 dólares. +- o cadastro de uma conta de desenvolvedor deve ser feito no [console do Google Play](https://play.google.com/console/about/), e clicar no link "Go to Play Console" no canto superior direito da tela; se não tiver uma conta de desenvolvedor, será convidado a cria-la. + +## 3.2 Preparação do aplicativo para publicação + +- gerar um pacote do tipo "aab" (Android App Bundle), um formato de publicação que inclui todos os recursos e código compilados do app. +- esse formato aab é o novo padrão de empacotamento de aplicativos para publicação utilizados pelo Google. +- para criar um pacote aab, abrir o projeto que deseja publicar > clicar no menu Build > clicar na opção "Generate Signed Bundle / APK ..." > manter a opção "Android App Bundle" selecionada e pressionar Next > na próxima janela, clicat no botão "Create new..." > na janela "New Key Store", clicar no ícone de pasta no campo "Key store path" e selecionar o local e nome da chave > preencher seus dados no formulário para geração do certificado digital e clicar em OK > ao retornar para a janela "Generate Signed Bundle or APK", clicar em Next > na janela seguinte, selecionar release e pressionar o botão Create. + +## 3.3 Criando o App no Google Play + +- acessar o Google Play Console com a conta de desenvolvedor e clicar no botão "Criar App", no canto superior direito da tela. +- na janela "Detalhes do App", preencher os dados do seu App. +- rolar a página para baixo e marcar o aceite dos termos de uso e clicar no botão "Criar app" no canto inferior direito da página. +- aguardar a aplicação ser criada. + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo2a.md b/fase01/trilha-android/capitulo2a.md new file mode 100644 index 0000000..839d90c --- /dev/null +++ b/fase01/trilha-android/capitulo2a.md @@ -0,0 +1,1592 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 2A: Introdução ao Kotlin.

+
+ +
+

1. INTRODUÇÃO AO KOTLIN

+
+ +## 1.1 Apresentação + +- linguagem de programação criada em 2011 pela JetBrains, empresa conhecida pelas IDEs (Integrated Development Environment)comercializadas. +- essa linguagem recebeu o nome de uma ilha russa situada próximo à costa de São Petersburgo, onde a equipe Kotlin reside. +- apenas em 2016 foi lançada a primeira versão estável. +- em 2017, no Google I/O 17, os engenheiros do Google Android anunciaram a Kotlin como a mais nova linguagem oficial da plataforma. + +## 1.2 Principais características + +- uma característica importante do Kotlin é a ***compatibilidade com o Java***: todas as APIs compatíveis com Java também são compatíveis para Kotlin. +- outras características: + - Aplicativos em Kotlin possuem desempenho equivalente a aplicativos desenvolvidos em Java. + - É possível realizar a declaração de variáveis de forma implícita (sem explicitar o tipo de dado, por exemplo), o que permite a adaptação de desenvolvedores advindos de abordagens funcionais (Python, JavaScript, Swift e similares). + - A linguagem é considerada type-safe, como o Java, e também null-safe, ou seja, caso necessite que uma variável receba valor nulo (null), terá de definir isso de forma explícita. + - Utiliza type casts que asseguram o desenvolvedor nas diferentes conversões e comparações entre tipos. + +## 1.3 Por que desenvolver para Android com Kotlin? + +- dadas as características de uma linguagem multiparadigma, o Kotlin pode ser uma opção para o desenvolvimento dos aplicativos Android. +- traz as vantagens de uma linguagem moderna sem apresentar restrições em relação ao Java. +- características: + - Compatibilidade: Kotlin é totalmente compatível com a JDK (Java Devlopment Kit), e oferece o suporte legado para versões anteriores do Android. + - Desempenho: um aplicativo Kotlin pode ser equivalente a um desenvolvido em Java, gerando bytecodes semelhantes. Uma vez que o Kotlin orienta o desenvolvedor a utilizar códigos enxutos, existe a possiblidade da geração de bytecodes otimizados. + - Curva de aprendizado: favorável a desenvolvedores de outras linguagens de programação. Para desenvolvedores em Java, existem ferramentas para a migração segura de código-fonte para integração com Kotlin. + +## 1.4 REPL (Read-Eval-Print Loop) + +### 1.4.1 Ambiente de estudos + +- para possibilitar o estudo na linguagem de programação Kotlin, é sugerido um ambiente de estudos no formato `REPL (Read-Eval-PrintLoop)` para escrever programas simplese que reforcem o aprendizado de elementos essenciais da linguagem. +- a sugestão é utilizar o [Portal para teste de trechos de código em Kotlin](https://play.kotlinlang.org), para teste dos exemplos e incremento gradativo do aprendizado. + +~~~kotlin +/** + * You can edit, run, and share this code. + * play.kotlinlang.org + */ + +fun main() { + println("Hello, world!!!") +} +~~~ + +- para executar os exemplos desenvolvidos neste material, devem ser feitas as seguintes observações: + - na parte superior, podemos selecionar a opção do menu [Examples](https://play.kotlinlang.org/byExample/overview), que contém exemplos que poderão ser utilizados para facilitar o aprendizado da linguagem. + - a parte central é o local destinado à digitação dos exemplos. Inicialmente, essa digitação é distribuída nas seguintes partes: + - Nas linhas 1 a 4 foram inseridos comentários, e mantê-los é opcional. + - Nas linhas 6 e 8, encontra-se a função principal de execução dos blocos de códigos que serão digitados (***fun main***). A assinatura função “main” não deve ser alterada. + - A linha 7 contém a função println com o texto entre aspas Hello,world. A função println, assim como na linguagem Java, permite gerar a saída do programa em terminal (localizado na parte inferior da figura). + - no canto superior direito, há uma seta na cor verde em conjunto com a palavra Run. Ao clicar nesse botão, o código-fonte será executado. Em caso de inconsistência no código-fonte, serão fornecidas mensagens para auxiliar na correção. + - na parte inferior, vemos a debug area em que aparece a mensagem “Hello, world!!!”. Caso nosso código tenha algum erro, é na debug area que encontraremos mais informações sobre esse erro. + +## 1.5 Comentários e variáveis + +### 1.5.1 Comentários +- usados seja para documentar um trecho de código, seja para lembrá-lo de revisar algo que tenha feito, ou quando se deseja que certo trecho do código-fonte não seja interpretado. +- em Kotlin, há 2 tipos de comentários: + - em única linha, utilizando os `caracteres //`. + - em múltiplas linhas, iniciando o comentário com /* e finalizamos com */ (`caracteres /* */`). + +~~~kotlin +// Comentários em uma linha + // Quantidade de alunos por sala de aula + var sala1 = 20 + var sala2 = 15 + var sala3 = 18 + + var total = sala1 + sala2 + sala3 + println(total) + +/* + * Comentários em bloco. + * Podemos digitar várias explicações em + * um mesmo bloco de comentários +*/ + + sala1 = 25 + sala2 = 27 + sala3 = 34 + + total = sala1 + sala2 + sala3 + println(total) +~~~ + +### 1.5.2 Variáveis e constantes + +### a) Variáveis +- `palavra reservada var`, que indica o início da declaração de um objeto cujo valor pode mudar ao longo do código (objeto mutável ou variável). +- a declaração da variável pode ser: + - ***explícita*** (com informação do tipo de dados ou objeto) ou + - ***implícita*** (o interpretador definirá a partir do conteúdo a ser inicialmente atribuído). +- para declarar uma variável explícita, é utilizada a palavra reservada var, seguida do nome da variável, dois-pontos e o seu tipo. +- uma das características da linguagem Kotlin é existência da ***Inferência de Tipo***, ou seja, não é obrigatória a definição do tipo de uma variável, caso ela seja inicializada na declaração. + +~~~kotlin +// Criando variável com tipo explícito +var faculdade: String + +// Criando variável utilizando inferência de tipo +var cidade = "São Paulo" +~~~ + +- no exemplo abaixo, a inicialização das variáveis com os conteúdos do tipo String resulta no ajuste de tipo por parte do interpretador, garantindo a manutenção do mesmo tipo em todo o código-fonte (type safe): + +~~~kotlin +// Usando lowerCamelCase. Cada nova palavra, começa em maiúscula! + +var firstName = "Luke" +var lastName = "Skywalker" +println (firstName) +println (lastName) +~~~ + +### b) Constantes: +- para criação de constantes (objetos que não modificam seu valor ao longo do código, objetos imutáveis), é utilizada a `palavra reservada val`. +- exemplos por meio das constantes pi e gravity: + +~~~kotlin +// Criando constantes +val pi = 3.141592 +val gravity = 9.81 + +/* Não é possível alterar o valor de uma constante! + * Quando se tenta atribuir novo valor à constante gravity, + * é gerado erro pelo interpretador! + */ + +gravity = 10.01 // ERRO +// "Val cannot be reassigned" +~~~ + +> Sempre procure utilizar constantes em seu código, a menos que realmente precise modificar o objeto futuramente. O acesso às constantes na memória é mais rápido do que o acesso às variáveis! + +## 1.6 Tipos + +- há tipos predefinidos em Kotlin que são utilizados com frequência, como representações para números inteiros, números com casas decimais, valores booleanos, etc. + +
+ +Tipo | Tamanho em bits +-----|------------------ +Long | 64 +Int | 32 +Short | 16 +Byte | 8 +Double | 64 +Float | 32 + +
+ +### 1.6.1 Tipos inteiros (Long, Int, Short e Byte) +- quando é necessário representar, em Kotlin, um número que não possui casas decimais, as representações para números inteiros podem ser utilizadas de acordo com a necessidade e as decisões de projeto de software: + - o `tipo Long` utiliza 64 bits de memória para ser representado, ou seja, pode variar entre -9223372036854775808 e 9223372036854775807. + - o `tipo Int` utiliza 32 bits de memória e pode variar entre -2.147.483.648 a 2.147.483.647. + - o `tipo Short` utiliza 16 bits de memória e pode variar entre -32768 a 32767. + - o `tipo Byte` utiliza 8 bits de memória e pode variar entre -128 a 127. +- o exemplo abaixo apresenta os valores MAX_VALUE e MIN_VALUE, os quais retornam, respectivamente, a faixa de valor máximo e mínimo para cada tipo de dado suportado. Além disso, é apresentado um exemplo da declaração de variável em modo implícito e modo explícito. + +~~~kotlin +var value1 = 500 // A inferência é para Int +var value2: Int = 500 //Declaração explícita + +// Apresentando o value1 +println(value1) +// Apresentando o value2 +println(value2) + +//Forma de mostrar o valor máximo aceito pelo tipo +println(Int.MAX_VALUE) +//Forma de mostrar o valor mínimo aceito pelo tipo +println(Int.MIN_VALUE) +~~~ + +### 1.6.2 Double e Float (números com casas decimais) +- para representar números que possuem casas decimais, o ***Double (que é o tipo inferido automaticamente quando atribuímos um número com casas decimais a uma variável***) e o ***Float*** podem ser utilizados. +- a **diferença entre Double e Float** é que Double ocupa 64 bits na memória, podendo trabalhar com números maiores, e Float usa 32 bits de memória. + +~~~kotlin +// Tipo Double é o tipo padrão para valores numéricos com casas decimais +var balance = 1500.75 // Double inferido automaticamente +var sallary: Double = 1200.50 // Double explícito + +// Para usarmos Float, precisamos adicionar a letra F maiúscula ou minúscula no final da informação +var height = 1.82f +var temperature: Float = 35.9F + +// Apresentando as informações +println(balance) +println(sallary) +println(height) +println(temperature) +~~~ + +### 1.6.3 String e Char +- blocos de texto são representados em Kotlin pelo `tipo String`: + - é definido por um ou mais caracteres entre aspas. + - ***é o tipo inferido*** quando se atribui um texto a uma variável. +- `tipo Char`: + - quando for necessário ocupar o espaço de apenas um único caractere. + - porém para atribuir um Char a uma variável, é necessário definir de forma explícita o tipo Char, mesmo que o texto contenha apenas um caractere. + - o tipo Char necessita que o caractere esteja entre aspas simples. + +~~~kotlin +var module: String = "Introdução ao Kotlin" // String explícita +var schoolName = "FIAP" // String inferida automaticamente + +// A var "letter", na linha abaixo, é uma String, dada inferência de tipo +var letter = "A" + +// Para usar Char, precisamos definir explicitamente +var gender: Char = 'M' + +// Apresentando os valores +println(module) +println(schoolName) +println(letter) + +// Para apresentação de valores Char é necessária a conversão para String. +// Utilizar o caracter $ para a saída. +println("$gender") +~~~ + +- quando é necessário inserir, em uma String, algum caractere reservado pela linguagem (por exemplo, o caractere de aspas duplas, que define o início/fim de uma String), utilizamos o caractere \, que permite utilizar caracteres reservados, bem como outros conjuntos especiais, como o carriage return (simulando a tecla ENTER), uma tabulação, entre outros. + +~~~kotlin +var text = "Este texto \"quebra\" em \n duas linhas" +/* Resultado: + * Este texto "quebra" em + * duas linhas + */ + +// O \t gera uma tabulação +var text2 = "Nota:\t 10" +// Resultado: Nota: 10 + +// Apresentando os valores das variáveis +println(text) +println(text2) +~~~ + +- em Kotlin, é possível criar Strings utilizando uma técnica chamada `Interpolação de Strings`. É muito comum a atribuição de uma String à combinação de diversas variáveis. +- por exemplo, supondo que tenhamos uma variável que represente a nota do aluno (studentGrade), o nome (studentName) e o resultado de sua avaliação (aprovado ou reprovado), podemos criar uma variável chamada message, que conterá uma String informando todos os dados dos alunos e a sua avaliação. Exemplo: “O aluno João tirou 8.5 e está aprovado”. +- para criarmos essa String, é necessário juntar informações de três variáveis e, para isso, utiliza-se a técnica de interpolação, ***colocando, na String principal, as variáveis dentro de parênteses, precedidas pelo caractere $***. + +~~~kotlin +val studentGrade = 8.5 +val studentName = "João" +val result = "aprovado" +val message = "O aluno $studentName tirou $studentGrade e está $result!" +println(message) + +// Resultado: +// O aluno João tirou 8.5 e está aprovado! +~~~ + +### 1.6.4 Bool (booleanos) +- Booleanos são tipo simples, que ocupam apenas 1 bit de memória e apenas aceitam dois estados, 0 ou 1. +- em Kotlin, booleanos são definidos pelo tipo Boolean e aceitam true ou false. + +~~~kotlin +var isApproved = true +var firstTime: Boolean = false +~~~ + +### 1.6.5 Pair (par) +- existe, em Kotlin, um tipo muito útil, em determinados casos, para compor pares de dados. +- um dos casos mais utilizados é quando, por exemplo, precisamos definir que uma função deve retornar mais de um tipo ao mesmo tempo. +- o Pair é um tipo composto formado por dois valores. + +~~~kotlin +val (address,number) = Pair("Av. Lins de Vasconcelos", 1264) + +println(address) +println(number) +~~~ + +### 1.6.6 Tipo Nullable (null safety) +- por padrão, variáveis em Kotlin não aceitam o uso de valor nulo; portanto, o desenvolvedor deve realizar as condições de contorno necessárias. +- o recurso da atribuição de valor nulo a uma variável pode ser utilizado, sendo essa abordagem denominada `null safety` pela comunidade dos programadores. +- o sistema de tipos de Kotlin é avançado o suficiente a ponto de poder monitorar a diferença entre tipos nullable e não nullable. +- a atribuição de valor nulo a uma variável só pode ser realizada quando a sua declaração seguir com o ***sufixo "?"***. + +~~~kotlin +// A linha abaixo o código não vai compilar +// mensagem de erro: "Null can not be a value of a non-null type String" +var driverLicense: String = null + +// A atribuição de null a um var também não será compilada +var driverLicense: String = "6789877" +driverLicense = null // não compila +// "Null can not be a value of a non-null type String" + +// Para que uma variável contenha um valor null é necessário +// o uso do sufixo ? no tipo +var driverLicense: String? = null +println(driverLicense) +// Resultado: null + +driverLicense = "6789877" +println(driverLicense) +// Resultado: 6789877 + +driverLicense = null // agora compila +println(driverLicense) +// Resultado: null +~~~ + +- exemplo de como a verificação de uma variável nullable possui valor nulo: + +~~~kotlin +var driverLicense: String? = null +//driverLicense = "6789877" + +if (driverLicense != null) { + println("A carteira de motorista é $driverLicense") +} else { + println("Esta pessoa não possui carteira de motorista") +} + +// Resultado: Esta pessoa não possui carteira de motorista +~~~ + +## 1.7 Coleções + +- as principais coleções em Kotlin são Array, List, Sete Map. + +### 1.7.1 Array +- é uma coleção ordenada de elementos de mesmo tipo, ou seja, não é possível misturar tipos dentro de um Array. +- se definimos um Array de Int, todos os elementos dessa coleção devem necessariamente ser Int, não podendo ter um String, Double ou qualquer outro tipo. + +~~~kotlin +// Criando um Array de Strings vazio +var emptyArray = arrayOf() + +// Criando um Array de Strings e alimentando valores na criação +var shoppingList = arrayOf("Leite", "Pão", "Manteiga", "Açúcar") + +// Usando inferência +var inferredShoppingList = arrayOf("Leite", "Pão", "Manteiga", "Açúcar") + +// Testando se um Array está vazio +if (shoppingList.isEmpty()) { + println("A lista de compras está vazia") +} else { + println("A lista de compras NÃO está vazia") +} +// Resultado: A lista de compras NÃO está vazia + +// Recuperando o total de elementos do Array +println("Nossa lista de compras possui ${shoppingList.size} itens") +// Resultado: Nossa lista de compras possui 4 itens +~~~ + +- o Array possui uma `função isEmpty()`, que é um Bool nos informando se o array está ou não vazio. +- também possui uma propriedade que retorna o total de itens, a `propriedade size`. Essas propriedades estão presentes em todas as coleções usadas em Kotlin. + +> Em Kotlin, uma String também é uma coleção de caracteres, ou seja, se quisermos saber o total de letras presentes em uma String, basta utilizarmos a `função count()`. + +- para recuperar um elemento de um Array, esse deve ser acessado pelo uso de subscript, ou seja, definindo, entre colchetes, o índice no qual se encontra esse elemento dentro do Array. Ele pode ser usado para modificar um elemento de um Array. + +~~~kotlin +// Criando um Array de Strings vazio +var emptyArray = arrayOf() + +// Criando um Array de Strings e alimentando valores na criação +var shoppingList = arrayOf("Leite", "Pão", "Manteiga", "Açúcar") + +// Usando inferência +var inferredShoppingList = arrayOf("Leite", "Pão", "Manteiga", "Açúcar") + +// Testando se um Array está vazio +if (shoppingList.isEmpty()) { + println("A lista de compras está vazia") +} else { + println("A lista de compras NÃO está vazia") +} +// Resultado: A lista de compras NÃO está vazia + +// Recuperando o total de elementos do Array +println("Nossa lista de compras possui ${shoppingList.size} itens") +// Resultado: Nossa lista de compras possui 4 itens + +println("Listando todos os itens:") +println(shoppingList[0]) // Primeiro item do array +println(shoppingList[1]) // Segundo item Acessando itens de um Array do array +println(shoppingList[2]) // Terceiro item do array +println(shoppingList[3]) // Quarto item do array +~~~ + +### 1.7.2 List +- é uma coleção muito versátil, pois permite elementos repetidos. +- é ideal para quando precisarmos definir um conjunto de itens cujo valor poderá repetir, como a lista dos produtos que estão em um supermercado oua lista de itens em um carrinho de compras, por exemplo. +- para criar List, é necessário definir o tipo explicitamente, pois a inferência, nesse caso, atribuiria conteúdo a umArray. +- um List deve ser criado usando a palavra ArrayList seguida do tipo, entre os sinais < e >. + +~~~kotlin +// Criando um List de Strings +var movies = ArrayList () + movies.addAll(listOf( + "Matrix", + "Vingadores", + "Jurassic Park", + "De Volta para o Futuro" + )) + +// Criando um list vazio +var movies2 = ArrayList () + +// Inserindo elementos +movies.add("Homem-Aranha: De Volta ao Lar") +println(movies.count()) //5 +println("\n") + +// Perceba que o código abaixo vai alterar a quantidade +// de itens do List pois ele aceita itens repetidos. +movies.add("Homem-Aranha: De Volta ao Lar") +println(movies) +// [Matrix, Vingadores, Jurassic Park, De Volta ao Futuro, Homem-Aranha: De Volta ao Lar, Homem-Aranha: De Volta ao Lar] +println(movies.count()) //6 (2 elementos repetidos) +println("\n") + +// Removendo 2 elementos repetidos +movies.remove("Homem-Aranha: De Volta ao Lar") +movies.remove("Homem-Aranha: De Volta ao Lar") +println(movies) +// ["Vingadores", "De Volta para o Futuro", "Matrix", "Jurassic Park"] +println("\n") + +// Percorrendo um List +for (movie in movies) { + println(movie) +} +println("\n") + +// Verificando se determinado elemento está contido no List +if (movies.contains("Matrix")) { + println("Matrix está na minha lista de filmes favoritos!!") +} +println("\n") + +// Vamos criar um novo List para realizarmos algumas operações +// No exemplo abaixo, usaremos um formato mais simplificado de criação de List +var myWifeMovies = listOf( + "De Repente 30", + "Mensagem para você", + "Sintonia de Amor", + "De Volta para o Futuro", + "Jurassic Park" +) + +// Criando um List com todos os filmes +var allMovies = movies + myWifeMovies +println(allMovies) +// [Matrix, Vingadores, Jurassic Park, De Volta para o Futuro, De Repente 30, Mensagem para você, Sintonia de Amor, De Volta para o Futuro, Jurassic Park] +println("\n") +~~~ + +### 1.7.3 Set +- é uma coleção versátil, pois não permite elementos repetidos. +- é ideal para quando for necessário definir um conjunto de itens cujo valor não pode se repetir, como os alunos que estão em uma turma ou a nossa lista de filmes favoritos, por exemplo. +- para criar um Set, precisamos definir o tipo explicitamente, pois a inferência, nesse caso, atribuiria conteúdo a um Array por padrão. +- um Set pode ser criado usando a `palavra HashSet` seguida do tipo, entre os sinais < e >. + +~~~kotlin +// Criando um Set de Strings +var movies = HashSet () +var catalog = listOf( + "Matrix", + "Vingadores", + "Jurassic Park", + "De Volta para o Futuro" +) +movies.addAll(catalog) +// Perceba que o catálogo de filmes está ordenado alfabeticamente +println(movies) +// [Jurassic Park, Matrix, De Volta para o Futuro, Vingadores] +println(movies.count()) //4 +println("\n") + +// Criando um set vazio +var movies2 = HashSet () +// Inserindo elementos +movies.add("Homem-Aranha: De Volta ao o Lar") +println(movies) +// [Homem-Aranha: De Volta ao o Lar, Jurassic Park, Matrix, De Volta para o Futuro, Vingadores] +println(movies.count()) //5 +println("\n") + +// Perceba que o código abaixo NÃO alterará a quantidade +// de itens do Set pois ele NÃO aceita itens repetidos. +movies.add("Homem-Aranha: De Volta ao o Lar") +println(movies) +// [Homem-Aranha: De Volta ao o Lar, Jurassic Park, Matrix, De Volta para o Futuro, Vingadores] +println(movies.count()) //5 (Nenhum elemento repetido. E ainda tudo ordenado ) +println("\n") + +// Removendo elemento +movies.remove("Homem-Aranha: De Volta ao o Lar") +println(movies) +// ["Vingadores", "De Volta para o Futuro", "Matrix", "Jurassic Park"] +println(movies.count()) //4 +println("\n") + +// Percorrendo um Set +for (movie in movies) { + println(movie) +} +println("\n") + +// Verificando se determinado elemento está contido no List +if (movies.contains("Matrix")) { + println("Matrix está na minha lista de filmes favoritos!!") +} +println("\n") + +// Vamos criar um novo set para realizarmos algumas operações +// No exemplo abaixo, usaremos um formato mais simplificado de criação de Set +var myWifeMovies = setOf( + "De Repente 30", + "Mensagem para você", + "Sintonia de Amor", + "De Volta para o Futuro", + "Jurassic Park" +) + +// Criando um Set com todos os filmes. SEM repetição. TUDO ordenado :) +var allMovies = movies + myWifeMovies +println(allMovies) +// [Jurassic Park, Matrix, De Volta para o Futuro, Vingadores, De Repente 30, Mensagem para você, Sintonia de Amor] +println(allMovies.count()) //7 +~~~ + +### 1.7.4 Map +- é uma coleção organizada em pares <Chave, Valor> ou <Key, Value>. +- possibilita a inserção de informações que tenham chaves únicas com seus valores (números, datas, textos etc.) relacionados. +- é muito utilizada quando precisamos realizar pesquisas específicas por meio da chave ou até mesmo pelo valor. +- para criar um Map, é necessário definir o tipo explicitamente. +- um Map pode ser criado coma palavra HashMap seguida do tipo, entre os sinais < e >. + +~~~kotlin +// Criando um Map de Strings +var movies = HashMap () +var catalog = mapOf( + Pair(10,"Matrix"), + Pair(20,"Vingadores"), + Pair(30,"Jurassic Park"), + Pair(40,"De Volta para o Futuro") +) + +// Utilize o método putAll para inserir o catálogo +movies.putAll(catalog) + +// Perceba que o catálogo de filmes está ordenado alfabeticamente +println(movies) +// {40=De Volta para o Futuro, 10=Matrix, 20=Vingadores, 30=Jurassic Park} +println(movies.count()) //4 +println("\n") + +// Criando um set vazio +var movies2 = HashSet () + +// Inserindo 1 elemento +movies.put(25,"Homem-Aranha: De Volta ao Lar") +println(movies) +// {40=De Volta para o Futuro, 25=Homem-Aranha: De Volta ao Lar, 10=Matrix, 20=Vingadores, 30=Jurassic Park} +println(movies.count()) //5 +println("\n") + +// O código abaixo irá alterar a quantidade +// de itens do Map pois ele aceita itens da chave NÃO repetidos. +//movies.put(25,"Homem-Aranha: De Volta ao Lar") +//Faça um teste com a linha superior de código e a inferir +movies.put(35,"Homem-Aranha: De Volta ao Lar") +println(movies) +// {40=De Volta para o Futuro, 25=Homem-Aranha: De Volta ao Lar, 10=Matrix, 35=Homem-Aranha: De Volta ao Lar, 20=Vingadores, 30=Jurassic Park} +println(movies.count()) //6 +println("\n") + +// Removendo elemento +movies.remove(25) +println(movies) +// {40=De Volta para o Futuro, 10=Matrix, 35=Homem-Aranha: De Volta ao Lar, 20=Vingadores, 30=Jurassic Park} +println(movies.count()) //5 +println("\n") + +// Pecorrendo um Map +for (movie in movies) { + println(movie) +} +println("\n") + +// Verificando se determinado elemento está contido no List +if (movies.containsValue("Matrix")) { + println("Matrix está na minha lista de filmes favoritos!!") +} +println("\n") + +// Vamos criar um novo map para realizarmos algumas operações +// No exemplo abaixo, usaremos um formato mais simplificado de criação de Map +var myWifeMovies = mapOf( + Pair(100,"De Repente 30"), + Pair(200,"Mensagem para você"), + Pair(300,"Sintonia de Amor"), + Pair(400,"De Volta para o Futuro"), + Pair(500,"Jurassic Park") +) + +// Criando um Map com todos os filmes +var allMovies = movies + myWifeMovies +println(allMovies) +// {40=De Volta para o Futuro, 10=Matrix, 35=Homem-Aranha: De Volta ao Lar, 20=Vingadores, 30=Jurassic Park, 100=De Repente 30, 200=Mensagem para você, 300=Sintonia de Amor, 400=De Volta para o Futuro, 500=Jurassic Park} +println(allMovies.count()) //10 +println("\n") + +// Lendo Chave e Valor separadamente +for(movie in allMovies) { + println("Chave => Key => ${movie.key}") + println("Valor => Value => ${movie.value}") + var title = movie.value.toUpperCase() + println("UpperCase => ${title}") + title = movie.value.toLowerCase() + println("LowerCase => ${title}") + println("\n") +} + +// Executando uma pesquisa diretamente na chave do Map +var film1 = allMovies.get(400) //400=De Volta para o Futuro +println("Title => ${film1}") // Retorna String. Retorna o Título +var film2 = allMovies.get(999) //Não existe +println("Title => ${film2}") // Retorna null + +// Verificando a possibilidade de testar antes de imprimir +var code = 1234 // Experimente trocar o código +var film3 = allMovies.get(code) //Não existe +if(film3.isNullOrEmpty()) { + println("\nFilme com o código $code não encontrado!") +} else { + println("\nTitle => ${film3}") // Retorna o título +} +~~~ + +## 1.8 Operadores + +- a maioria dos operadores existentes nas diversas linguagens de programação também está disponível em Kotlin, atuandoda mesma forma: + - operadores unários (que atuam apenas em um operando), + - operadores binários(atuam em dois operandos) e + - operadores ternários(atua em três operandos). + +### 1.8.1 Atribuição (=) +- o sinal = serve para atribuir um valor a uma variável. + +~~~kotlin +var height: Double = 1.75 +~~~ + +### 1.8.2 Aritméticos (+, -, *, /, %) +- são utilizados para a realização de operações aritméticas: soma, subtração, mudança de sinal, módulo etc. + +~~~kotlin +var a = 12 +var b = 3 + +var sum = a + b +var subtract = a - b +var multiplication = a * b +var division = a / b +var módulus = a % b +var minusA = -a + +println(sum) // 15 +println(subtract) // 9 +println(multiplication) // 36 +println(division) // 4 +println(módulus) // Resto da divisão: 0 +println(minusA) // -12 +~~~ + +### 1.8.3 Compostos (+=, -=, *=, /=, %=, ++, --) +- são junções dos operadores aritméticos com o operador de atribuição. +- efetuam a operação e atribuem o valor na variável ao mesmo tempo. + +~~~kotlin +var a = 2 +var b = 3 +var newValue = 5 + +newValue += a // 7 +newValue -= b // 4 +newValue *= a // 8 +newValue /= a // 4 +newValue %= b // Resto da divisão: 1 + +newValue++ // incrementando 1 +println(newValue) + +newValue-- // decrementando 1 +println(newValue) +~~~ + +### 1.8.4 Operadores lógicos (&&, ||, !) +- executam operações lógicas, ou seja, sempre retornam verdadeiro ou falso. + +~~~kotlin +var yes = true +var no = false + +println(yes && no) //false +println(yes || no) //true +println(!yes) //false +~~~ + +### 1.8.5 Operadores de comparação (>, <, >=, <=, ==, !=) +- utilizados quando se pretende comparar valores e possuir retorno de verdadeiro ou falso. + +~~~kotlin +var a = 12 +var b = 3 +var c = 7 +var d = 3 + +println(a > b) // true +println(a < b) // false +println(b >= d) // true +println(a <= c) // false +println(b == d) // true +println(b != d) // false +~~~ + +### 1.8.6 Estrutura de decisão em mesma linha +- operador ternário. +- com essa sintaxe, é possível avaliar uma condição e atribuir um valor,caso a condição seja verdadeira, e outro valor, caso seja falsa. + +~~~kotlin +var grade = 7.5 +var result = if (grade > 7.0) "aprovado" else "reprovado" +println(result) // aprovado +~~~ + +### 1.8.7 Coalescência nula (?:) +- em Kotlin, o operador "?:" permite decidir pelo uso de uma atribuição de redundância, caso a variável analisada seja nula. + +~~~kotlin +var age: Int? = null +var myAge = age ?: 0 // 0 +println(myAge) + +age = 25 +var newAge = age ?: 0 // 25 +println(newAge) +~~~ + +### 1.8.8 Closed Range (..) e Half Closed Range (until) +- estes operadores criamum intervalo de valores. + - `Closed Range` utiliza (..) para criar um intervalo aberto, indicando o valor inicial e o valor final. + - `Half Closed Range` utiliza a palavra reservada (until) para criar um intervalo entre o valor inicial e o valor imediatamente anterior ao valor final (intervalo aberto no início e fechado ao final). + +~~~kotlin +println("\nClosed Range ..") +var numbers = 1..10 +for (number in numbers) { + println(number) // Imprime de 1 a 10 +} + +println("\nHalf Closed Range (until)") +var newNumbers = (1 until 10) +for (number in newNumbers) { + println(number) // Imprime de 1 a 9 +} +~~~ + +## 1.9 Estruturas condicionais e de repetição + +- toda linguagem precisa de uma estrutura na qual se pode tomar uma decisão e agir de acordo com ela, ou seja, definir o fluxo do código com base no resultado de uma análise. +- em Kotlin, a mais utilizadas é a `estrutura if else`. +- outro recurso existente em toda a linguagem é a possibilidade de executarmos o mesmo trecho de código o número de vezes que for necessário, seja controlado por um intervalo específico ou até que uma condição seja alcançada. + +### 1.9.1 If – else – else if +- para uma tomada de decisão, caso certa condição seja verdadeira, e outra, caso seja falsa, faz-se uso da estrutura if – else – else if. + +~~~kotlin +var number = 11 +if (number % 2 == 0) { + println("Ele é par") +} else { + println("Ele é ímpar") +} +// Resultado: "Ele é ímpar" + +var temperature = 18 +var climate = "" +if (temperature <= 0) { + climate = "Muito frio" +} else if (temperature < 14) { + climate = "Frio" +} else if (temperature < 21) { + climate = "Clima agradável" +} else if (temperature < 30) { + climate = "Um pouco quente" +} else { + climate = "Muuuito quente" +} +println("Temperatura: $temperature graus \nStatus: $climate") +// Resultado: +// Temperatura: 18 graus +// Status: Clima agradável +~~~ + +### 1.9.2 When +- em situações em que precisamos fazer uso de vários else if, a estrutura `when` é mais adequada, pois foi criada especificamente para validar uma série de cenários possíveis para uma variável. +- a palavra reservada when tem correlação com a palavra switch utilizada em outras linguagens de programação. +- em Kotlin, o when precisa ser exaurido, ou seja, deve contemplar todos os possíveis cenários para aquela variável que está sendo validada. + - porém, em situações nas quais o cenário é amplo, faz-se o uso da cláusula else (default em outras linguagens), que é o cenário escolhido quando nenhum dos outros é verdadeiro! + +~~~kotlin +var number = 7 +when (number % 2) { + 0 -> + println("$number é par") + else -> + println("$number é ímpar") +} + +// Exemplo com vários cenários no mesmo case +var letter = "z" +when (letter) { + "a", "e", "i", "o", "u" -> + println("vogal") + else -> + println("consoante") +} + +// Exemplo com range de letras +when (letter) { + in "a".."f" -> + println("Você está na turma 1") + in "g".."l" -> + println("Você está na turma 2") + in "m".."r" -> + println("Você está na turma 3") + else -> + println("Você está na turma 4") +} + +// Range de números +var speed = 33 +when (speed) { + in 0 until 20 -> + println("Primeira marcha") + in 20 until 40 -> + println("Segunda marcha") + in 40 until 50 -> + println("Terceira marcha") + in 50 until 90 -> + println("Quarta marcha") + else -> + println("Quinta marcha") +} +~~~ + +### 1.9.3 While / do while +- essa estrutura de repetição é utilizada quando se deseja que certo trecho de código seja executado enquanto (`while`) uma condição seja verdadeira, ou seja, o laço será encerradono momento que a condição for falsa. +- a estrutura `do while` é semelhante, porém sempre executa o código uma vez antes de validar a condição. + +~~~kotlin +// while +var life = 10 +while (life > 0) { + println("O jogador está com $life vidas") + life = life - 1 +} + +println("\n") + +// do while +var tries = 0 +var diceNumber = 0 +do { + tries += 1 + diceNumber = ((Math.random() * 6) + 1).toInt() + println("Tentativa:$tries <-> Número Randomizado: $diceNumber") +} while (diceNumber != 6) +println("\nVocê tirou 6 após $tries tentativas") +~~~ + +### 1.9.4 For in +- é a estrutura de repetição mais utilizada em Kotlin. +- permite iterar (percorrer) uma coleção e recuperar todos os seus valores, o que é ideal quando necessitamos percorrer um array ou uma coleção, por exemplo. + +~~~kotlin +// Percorrendo um Array +var students = arrayOf( + "João Francisco", + "Pedro Henrique", + "Gustavo Oliveira", + "Janaina Santos", + "Francisco José" +) +for (student in students) { + println("O aluno $student veio na aula de hoje!") +} + +// Percorrendo uma sequência (range) +for (day in 1..30) { + println("Estou no dia $day") +} + +// Note abaixo que uma String também é uma coleção +var name = "FIAP" +for (letter in name) { + println(letter) +} + +// Vejamos como percorrer uma coleção, +// imprimindo sua chave e valor. Nesta coleção +// a chave é String e o valor é Int +var people = mapOf( + (25 to "Paulo"), + (18 to "Renata"), + (33 to "Kleber"), + (51 to "Roberto"), + (36 to "Carol") +) +// A variável person, abaixo, recebe a chave +// (key) e o valor (value) de cada elemento da coleção +for (person in people) { + println(" ${person.key} => ${person.value}") +} +// Podemos quebrar a execução de um laço usando +// o comando break +var grades = arrayOf(10.0, 9.0, 8.5, 7.0, 9.5, 5.0, 22.0, 6.5, 10.0) +for (grade in grades) { + println(grade) + if (grade < 0.0 || grade > 10.0) { + println("Nota inválida") + break + } +} +~~~ + +## 1.10 Enumeradores + +- enumeradores (ou enum) são tipos criados pelo usuário. +- servem para definir um tipo comum para um conjunto fechado de valores. +- são utilizados para cenários os quais devem armazenar uma informação baseada em um conjunto limitado de possibilidades. +- `palavra reservada enum` em conjunto com a palavra class, seguida do nome do enumerados (com inicial maiúscula) e, entre chaves, definimos todos os valores possíveis. +- Enums são muito utilizados com When, pois geralmente precisamos verificar qual valor ele possui, para tomarmos uma decisão. +- no exemplo abaixo, é criado um enum que serve para definir uma bússola, com quatro possíveis valores (norte, sul, leste e oeste). + +~~~kotlin +//Definindo um enum fora da função main +enum class Compass { + north, + east, + west, + south +} +fun main(args: Array) { + // Criando uma variável do tipo Compass + var direction = Compass.north + // Como Kotlin trabalha com inferência de tipo, podemos usar + // somente .valor, caso o tipo seja definido explicitamente + var direction2: Compass = Compass.south + println("Minha direção é $direction") + // Minha direção é north + + // Enums são muito usados com switch para análise do valor + when (direction) { + Compass.north -> + println("Estamos indo para o norte") + Compass.south -> + println("Estamos indo para o sul") + Compass.east -> + println("Estamos indo para o leste") + Compass.west -> + println("Estamos indo para o oeste") + } + // Estamos indo para o norte + +// Outra forma de apresentar informações de um Enum + Compass.values().forEach { + println(it) + } +} +~~~ + +### 1.10.1 Valores padrões +- em Kotlin, é possível definir o tipo de um enum e, além disso, atribuir um valor padrão a cada um dos casos. + +~~~kotlin +// Enum que define as posições das poltronas em um avião +// Veja que é possível atribuir um valor padrão a cada uma delas +enum class SeatPosition(var seat: String) { + aisle("corredor"), + middle("meio"), + window("janela") +} + +// Enum de Int com valores padrões +enum class Month(var m: Int) { + january(1), february(2), march(3), april(4), may(5), june(6), + july(7), august(8), september(9), october(10), november(11), december(12) +} + +fun main(args: Array) { + var passengerSeat = SeatPosition.window + // Para imprimir o valor padrão, usamos o nome utilizado na construção do enum. Veja: + println(passengerSeat.seat) // janela + var currentMonth: Month = Month.june + println("Estamos no mês ${currentMonth.m} do ano") +} +~~~ + +
+

2. FUNÇÕES E CLOSURES

+
+ +## 2.1 Funções + +- muitas vezes, ao longo do desenvolvimento de um app, nos deparamos com trechos de funcionalidades que precisam ser reutilizados ao longo do código. +- esses blocos de código podem ser criados por meio do uso de funções, que são trechos de comandos que executam operações definidas, podem receber valores (parâmetros) para trabalhar e podem retornar um resultado. + +## 2.2 Criando funções + +~~~kotlin +// Sintaxe para criação de funções: +fun main(args: Array) { +/* + fun nomeDaFuncao(parâmetro: Tipo) : TipoDeRetorno { + // Código + return TipoDeRetorno + } +*/ + +// Exemplo de uma função simples que não recebe +// parâmetros e não retorna nada +fun printlnHelloFormal() { + println("Hello!!!!") +} +printlnHelloFormal() // Hello!!! + +fun printlnHelloModoReduzido() = println("Hello!!!! Modo reduzido!") +printlnHelloModoReduzido() // Hello!!! + +// Função que aceita parâmetro +fun say(message: String) { + println(message) +} +say("Vamos criar funções em Kotlin") + +// Função que aceita mais de um parâmetro e que retorna algo +fun sumNumbers(a: Int, b: Int) : Int { + return a + b +} +var result = sumNumbers(10,15) +println(result) // 15 +} +~~~ + +- exemplo de função para calcular os 10 primeiros números da sequência de Fibonacci: + +~~~kotlin +fun main(args: Array) { + + // Função + fun sequenciaFibonacci() { + + // Declaração de variáveis + var number1 = 0 + var number2 = 1 + + // Loop controlado de 1 até 10 + for (sequence in 1..10) { + + // Impressão do conteúdo da variável number1 + println("$sequence -> $number1") + + // Soma dos 2 valores das variáveis + var sum = number1 + number2 + + // Troca os valores entre as variáveis + number1 = number2 + number2 = sum + } + } + + // Executar a função + sequenciaFibonacci() +} +~~~ + +## 2.3 Single-Expression functions + +- é possível desenvolver, na linguagem Kotlin, funções que encapsulam outras funções. + +~~~kotlin +fun main(args: Array) { + fun double(x: Int): Int = x * 2 + println(double(8)) + fun triple(x: Int) = x * 3 + println(triple(10)) +} +~~~ + +## 2.4 Map, Filter e Reduce + +- muitas vezes, é necessário efetuar operações em Arrays ou Coleções em que é preciso percorrer a coleção para extrair determinados elementos ou modificá-los. +- além do for in, existem vários métodos que utilizam closures para esses fins. + +~~~kotlin +fun main(args: Array) { + + // elaborando um coleção do tipo List com números entre 1 a 10 + val numbers = listOf(1,2,3,4,5,6,7,8,9,10) + println(numbers) + + // "Filtrando" (filter) somente os números pares da coleção numbers + // a variável temporária chamada "it" utilizada na operação + var evenNumbers = numbers.filter { it%2 == 0 } + println("Listagem de números Pares: $evenNumbers") + + // "Filtrando" (filter) somente os números ímpares da coleção numbers + // a variável temporária chamada "it" utilizada na operação + var oddNumbers = numbers.filter { it%2 != 0 } + println("Listagem de números Ímpares: $oddNumbers") + + // A utilização do Map executa o processamento individual + // de cada elemento dentro da coleção. + var multiplyNumbers = numbers.map { it * it } + println("Multiplicação: $multiplyNumbers") + + // Executa o processamento da coleção de acordo + // com os parâmetros enviados. + var sumNumbers = numbers.reduce { + // Captura o valor anterior ou atual (acc) e o valor atual(it) + acc, it -> + // Apresenta as informações + println("acc = $acc, it = $it") + // Executa o processamento das informações + acc + it } + + println("Resultado da Somatório: $sumNumbers") // Total 1+2+3+4+5+6+7+8+9+10=55 + +} +~~~ + +- o map é um método presente em coleções que percorre a coleção e executa uma closure em cada um de seus elementos, devolvendo a nova coleção gerada. + +~~~kotlin +fun main(args: Array) { + + var names = arrayOf("João", "Paulo", "Henrique", "Ana", "Beatriz", "Carla", "Caroline") + + // Aplicando map em names + var uppercasedNames = names.map({it.toUpperCase()}) + println(uppercasedNames) + + // ["JOÃO", "PAULO", "HENRIQUE", "ANA", "BEATRIZ", "CARLA", "CAROLINE"] + +} +~~~ + +- foi criada uma closure que retorna a versão em maiúsculas (usando o ***método de String toUpperCase()***) dos nomes. +- o "it", nesse caso, refere-seao parâmetro da closure que representa cada um dos nomes da coleção. + +- no próximo exemplo, o desejo é filtrar a coleção e gerar um novo Array contendo apenas os nomes compostos por cinco letras ou menos, ou seja, agora será criado um novo Array contendo parte dos elementos do Array principal. +- quando existem casos como esse, deve ser utilizado o método filter,que filtra uma coleção, devolvendo outra com os elementos que foram filtrados. + +~~~kotlin +// Aplicando filter em names +var filteredNames = names.filter({it.length < 6}) +println(filteredNames) +// ["João", "Paulo", "Ana", "Carla"] +~~~ + +- o método filter solicita que seja passada a função que servirá para filtrar os elementos. +- essa função deve conter a lógica que será implementada em cada um dos elementos do Array e, caso essa lógica retorne true, aquele elemento deverá fazer parte do novo Array. +- nesse exemplo, foi criada uma closure que verifica se a contagem de caracteres de cada nome é menor que seis, ou seja, se possui cincoou menos letras. + +- no último exemplo, será criado um Array de Double que representa algumas movimentações realizadas em uma conta-corrente (entrada e saída de valores, sendo que valores positivos representam entrada, enquanto negativos indicam saída). +- existe um método em Kotlin que está presente em todas as coleções e que serve para combinar todos os valores presentes naquela coleção, segundo uma lógica estipulada por nós. +- nesse exemplo, a combinação deverá ser feita por meio da soma de todos esses valores, porém é permitido implementar a lógica que desejar. +- vale ressaltar que, apesar de o exemplo utilizar o Double, é possível utilizar Arrays de qualquer tipo, alterando a lógica. +- esse método é o `reduce`. + +~~~kotlin +fun main(args: Array) { + + // Utilizando Reduce + var transactions = arrayOf + (500.0, -45.0, -70.0, -25.80, -321.72, 190.0, -35.15, -100.0) + + var balance = transactions.reduce { + + acc,it -> println("Saldo: " + String.format("%.2f", acc) + + " => Próximo Lançamento: " + String.format("%.2f", it)) + (acc + it) + } + + println("Seu saldo é R$ " + String.format("%.2f", balance)) + // Seu saldo é R$ 92,33 + +} +~~~ + +- o método reduce recebe dois parâmetros: + - acc: contém o valor inicial da operação. + - it: contém uma closure que receberá, a cada iteração, o resultado da operação e o elemento do Array. +- nesse exemplo, é definido que o valor inicial seria 0 e que, a cada iteração, o valor será somado com o elemento do Array, ou seja, na primeira iteração, teremos 0.0 + 500.0, na segunda, 500.0 + -45.0, na terceira, 455.0 + -70.0, e assim sucessivamente, até chegar ao último elemento do Array. + +## 2.5 Generics + +- no exemplo acima, na sintaxe do método reduce, há um tipo que não conhecemos, o tipo "it"; ele não é um tipo válido ou existente na linguagem, mas foi criado na assinatura desse método e serve para representar um tipo genérico, ou seja, uma indicação de que qualquer tipo pode ser utilizado naquele parâmetro. +- o método exige que o mesmo tipo utilizado no parâmetro “it” seja usado dentro da closure e seja o tipo de retorno da função. +- esse tipo foi definido logo após o nome do método (reduce<it>) e isso indica que, nesse método, será usado um tipo chamado “it”, que pode ser representado por qualquer tipo existente ou criado por você. + +> `Generics` é um recurso poderoso, pois com ele não ficamos limitados a um tipo específico quando são criados métodos ou classes. + +- exemplo: imagine que o gerente do projeto pediu para ser criada uma função que receba dois números inteiros e retorne os mesmos dois números, mas com as posições trocadas. Passadas duas semanas, ele pede para criarmos a mesma função, mas agora temos de trocar duas Strings. - +- nesse caso, podemos criar uma única função com o recurso Generics, como no exemplo abaixo. + +~~~kotlin +fun main() { + + // Função para trocar números inteiros + fun swapInt(num1: Int, num2: Int): Pair { + return Pair(num2, num1) + } + + // Função para trocar String + fun swapString(string1: String, string2: String): Pair { + return Pair(string2, string1) + } + + // Resultado + println(swapInt(4,400)) + // println(swapInt("TEST1", "TEST2")) //ERRO + println(swapString("TEST1","TEST2")) + // Função para trocar qualquer elemento + funswapAnything(element1: T, element2: T): Pair { + return Pair(element2, element1) + } + + println(swapAnything(4, 400)) //(400, 4) + println(swapAnything("Test1", "Test2")) //(Test2, Test1) + println(swapAnything(20.5, 32.5)) // (32.5, 20.5) + +} +~~~ + +## 2.6 Classes + +### 2.6.1 Definição e construção + +- características: + - definem propriedades para armazenar valores. + - definem métodos para fornecer funcionalidades. + - definem inicializadores para configurar seu estado inicial. + - podem ser estendidas para expandir suas funcionalidades, além das presentes em suas implementações. + - trabalham com herança, o que permite a uma classe herdar as características de outra. + - type casting, que lhe permite checar e interpretar uma classe como sendo outra. +- para criar uma classe, deve ser utilizada a `palavra reservada class`, seguida do nome da classe (iniciando em maiúsculo) e sua implementação entre chaves ({ }). + +~~~kotlin +class Person constructor(var name: String, var isMale: Boolean, var age: Int = 0) { + + // Métodos de classe + fun speak(sentence: String) { + if (age < 3) { + println("gugu dada") + } else { + println(sentence) + } + } + + fun introduce() = println("\nOlá, meu nome é $name e tenho $age anos de idade.") +} + +fun main(args: Array) { + + // Instanciando a classe Person + var pac = Person("Pedro Alvares Cabral", true) + + // Impressão dos valores antes de alterar a idade + pac.introduce() + + // Alterando uma propriedade de pac + pac.age = 45 + + // Impressão dos valores depois de alterar a idade + pac.introduce() + + // Utilizando o método speak + pac.speak("Treinamento Kotlin") +} +~~~ + +- a classe Person representa uma pessoa e possui as propriedades name, isMale e age, que armazenam o nome, o sexo (se for true, é masculino) e a idade. +- importante: + - em uma classe, as propriedades que armazenam um conteúdo também são chamadas de `propriedades armazenadas`. + - toda classe necessita de um `método construtor` (ou método inicializador) para criar uma instância daquela classe (também chamada de objeto). + - o método construtor cria uma instância daquela classe e tem por obrigação alimentar qualquer propriedade que não tenha sido inicializada. + - no exemplo acima,a propriedade age é a única que foi definida e já inicializada com um valor (0). As demais (name e isMale) precisam ser inicializadas e cabe ao método construtor efetuar essa tarefa, por isso solicita dois parâmetros, name e isMale, que serão repassados às respectivas propriedades. + - vale ressaltar que o nome dos parâmetros não precisa,necessariamente, ser o mesmo. + - dentro de classes, as funções passam a ser chamadas de métodos, e as variáveis são chamadas de propriedades. + - a classe Person possui dois métodos: introduce(), que serve para retornar à apresentação da pessoa, e speak(sentence: String), que faz com que a pessoa fale algo. + - para chamarmos o método construtor, usamos apenas o nome da classe, passando os valores dos parâmetros do método. + +### 2.6.2 Propriedades computadas +- há um recurso em Kotlin que permite ter uma propriedade que não armazena nenhum valor, apenas utiliza e trabalha um valor existente, chamado de `propriedades computadas`. + +~~~kotlin +class Person { + // ..... + +// Propriedade computada +val gender: String + get() { + if (isMale) { + return "masculino" + } else { + return "feminino" + } +} + + //...... +} +~~~ + +- agora, caso deseje imprimir o sexo da pessoa, pode-se utilizar gender em vez de isMale, pois fica mais fácil e legível para o usuário visualizar o sexo como “masculino” e “feminino” do que como true e false. + +### 2.6.3 Propriedades/métodos de classe + +- todas as propriedades criadas na classe Person são chamadas de propriedades de instância, o que significa que seu uso só é possível por meio de uma instância da classe (por meio de um objeto). +- podemos criar propriedades que não necessitam de uma instância para serem utilizadas e que podem ser acessadas diretamente na classe, chamadas de `propriedades de classe`. +- na classe Person, será criada uma propriedade de classe que retorna a classe de animal da qual uma pessoa faz parte (mamífero). Como essa é uma informação referente à própria classe em si, ou seja, toda pessoa é um mamífero, deverá ser criada como propriedade de classe, sem a necessidade de criarmos uma instância. +- propriedades de classe são criadas utilizando as `palavras reservadas companion object`, e costumam ser chamadas também de propriedades estáticas. + - uma propriedade estática mantém seu valor, se alterado ao longo do código, o que a torna útil em determinados cenários. + - além de propriedades de classe, também pode haver métodos de classe, que podem ser utilizados sem a necessidade de uma instância. + +~~~kotlin +class Person constructor(var name: String, var isMale: Boolean, var age: Int = 0) { + + //Métodos de classe + fun speak(sentence: String) { + if (age < 3) { + println("gugu dada") + } else { + println(sentence) + } + } + + fun introduce() = println("\nOlá, meu nome é $name e tenho $age anos de idade.") + + //Propriedade computada + val gender: String + get() { + if (isMale) { + return "masculino" + } else { + return "feminino" + } + } + + // palavras reservadas dentro da classe + // que habilitam propriedades e métodos + // que podem ser acessados diretamente. + companion object { + + // Propriedade de classe (estática) + var animalClass: String = "mamífero" + + // Método de classe + fun getInfo() : String { + return "Pessoa: ${Person.animalClass} que possui nome, sexo e idade" + } + } +} + +fun main(args: Array) { + + // Instanciando a classe Person + var pac = Person("Pedro Alvares Cabral", true) + + // Impressão dos valores antes de alterar a idade + pac.introduce() + + // Alterando uma propriedade de pac + pac.age = 45 + + // Impressão dos valores depois de alterar a idade + pac.introduce() + + // Utilizando o método speak + pac.speak("Treinamento Kotlin") + + println(pac.gender) + + println(Person.animalClass) // mamífero + + println(Person.getInfo()) + // Pessoa: mamífero que possui nome, sexo e idade +} +~~~ + +- um método ou uma propriedade de classe são utilizados por meio da própria classe em si, não da instância. É por isso que necessita chamá-lo na própria classe. Até mesmo internamente (como no caso do método getInfo()), é necessário referenciá-lo por meio da classe. + +### 2.6.4 Herança +- classes podem herdar as características de outra classe, que, nesse caso, chamamos de classe mãe ou super. +- em Kotlin, para definirmos que uma classe herda de outra, é utilizado o `sinal : (dois-pontos)` após o seu nome, seguido da classe da qual herdará. + - caso a classe filha implemente uma nova propriedade e essa não tenha nenhum valor associado durante sua definição, deve-se criar um construtor, que terá o papel de alimentar tanto esta quanto todas as propriedades não inicializadas da classe mãe. + - deve-se, primeiro, inicializar as propriedades da classe filha para depois inicializar as propriedades da classe mãe, e essa etapa é realizada chamando o construtor da classe super usando a `palavra reservada super`. + - a próxima etapa é construir uma classe chamada Student, que representará um estudante e, como todo estudante é uma pessoa, será criada herdando da classe Person. O estudanteem questão possui uma propriedade a mais, o rm, que, em função disso,necessitará de um construtor próprio. + +~~~kotlin +open class Person constructor(var name: String, var isMale: Boolean, var age: Int = 0) { + + // Métodos de classe + fun speak(sentence: String) { + if (age < 3) { + println("gugu dada") + } else { + println(sentence) + } + } + + fun introduce() = println("\nOlá, meu nome é $name e tenho $age anos de idade.") + + // Propriedade computada + val gender: String + get() { + if (isMale) { + return "masculino" + } else { + return "feminino" + } + } + + // palavras reservadas dentro da classe + // que habilitam propriedades e métodos + // que podem ser acessados diretamente. + companion object { + + // Propriedade de classe (estática) + var animalClass: String = "mamífero" + + // Método de classe + fun getInfo() : String { + return "Pessoa: ${Person.animalClass} que possui nome, sexo e idade" + } + } +} + +// HERANÇA +class Student : Person { + constructor (name: String, isMale: Boolean, age: Int = 0, rm: String) : super(name,isMale,age) { + } +} + +fun main(args: Array) { + + // Instanciando a classe Person + var pac = Person("Pedro Alvares Cabral", true) + + // Impressão dos valores antes de alterar a idade + pac.introduce() + + // Alterando uma propriedade de pac + pac.age = 45 + + // Impressão dos valores depois de alterar a idade + pac.introduce() + + // Utilizando o método speak + pac.speak("Treinamento Kotlin") + + println(pac.gender) + + println(Person.animalClass) // mamífero + + println(Person.getInfo()) + // Pessoa: mamífero que possui nome, sexo e idade + + var student = Student("Pedrinho Cabral", false, 10,"97663") + student.introduce(); +} +~~~ + +- o método construtor de Student precisa solicitar todas as informações para criar não só um Student, mas também um Person, cujo construtor é chamado pelo uso de super, que nos dá acesso direto à classe mãe. + +### 2.6.5 Sobrescrita +- classes filhas podem modificar propriedades ou métodos das classes mãe utilizando uma técnica chamada sobrescrita (override). +- em Kotlin, utilizar a `palavra reservada override` seguida da nova implementação do método ou propriedade que será modificado. +- com essa técnica, uma classe não precisa, necessariamente, executar os métodos ou propriedades computadas da mesma forma que a sua classe mãe executa. +- a modificação proposta para o método introduce() faz com que agora,ele, além de retornar à apresentação do estudante pelo seu nome, também informe o seu RM, e faremos uso do próprio método introduce() da classe mãe para recuperar essa informação inicial. + +~~~kotlin +open class Person constructor(var name: String, var isMale: Boolean, var age: Int = 0) { + + // Métodos de classe + fun speak(sentence: String) { + if (age < 3) { + println("gugu dada") + } else { + println(sentence) + } + } + + open fun introduce() = println("\nOlá, meu nome é $name e tenho $age anos de idade.") + + // Propriedade computada + val gender: String + get() { + if (isMale) { + return "masculino" + } else { + return "feminino" + } + } + + // palavras reservadas dentro da classe + // que habilitam propriedades e métodos + // que podem ser acessados diretamente. + companion object { + //Propriedade de classe (estática) + var animalClass: String = "mamífero" + + // Método de classe + fun getInfo() : String { + return "Pessoa: ${Person.animalClass} que possui nome, sexo e idade" + } + } +} + +// HERANÇA +class Student : Person { + + // propriedade local da classe Student + var rm = String() + + constructor (name: String, isMale: Boolean, age: Int = 0, rm: String) : super(name, isMale, age) { + // Atribuindo o valor na propriedade local da classe Student + this.rm = rm + } + + override fun introduce(): Unit { + super.introduce() + // Acessando a informação da propriedade local da classe Student + println("meu RM nesta escola é $rm") + } +} + +fun main(args: Array) { + // Instanciando a classe Person + var pac = Person("Pedro Alvares Cabral", true) + + // Impressão dos valores antes de alterar a idade + pac.introduce() + + // Alterando uma propriedade de pac + pac.age = 45 + + // Impressão dos valores depois de alterar a idade + pac.introduce() + + // Utilizando o método speak + pac.speak("Treinamento Kotlin") + + println(pac.gender) + + println(Person.animalClass) //mamífero + + println(Person.getInfo()) + // Pessoa: mamífero que possui nome, sexo e idade + + var student = Student("Pedro Júnior ", false, 10,"97663") + student.introduce(); +} +~~~ + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo3a.md b/fase01/trilha-android/capitulo3a.md new file mode 100644 index 0000000..54bace3 --- /dev/null +++ b/fase01/trilha-android/capitulo3a.md @@ -0,0 +1,81 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 3A: A casa do Android.

+
+ +
+

1. A CASA DO ANDROID

+
+ +## 1.1 O Android Studio e os procedimentos para instalação + +- `Android Studio`: ambiente de desenvolvimento indicado pela Google para o desenvolvimento de aplicativos em Android. +- baseado no ambiente de desenvolvimento IntelliJ IDEA. +- permite criar aplicativos utilizando recursos de produtividade que vão desde a autoconfiguração do projeto (Gradle) até o gerenciamento de emuladores de diferente dispositivos. +- pode ser instalado nos sistemas operacionais mais populares (Windows, distribuições Linux, macOS). +- o portal do Android Studio possui informações e vídeos que auxiliam no download e na configuração inicial. + +## 1.2 Instalando a IDE do Android Studio + +- acessar o [portal do Android Studio](https://developer.android.com/studio). +- o instalador do Android Studio fará todas as configurações e outros downloads necessários para o sistema operacional escolhido. +- a instalação do SDK (Software Development Kit) é a principal etapa de instalação. Ocasionalmente, a instalação do JDK (Java Development Kit) pode ser solicitada. + +## 1.3 Criando o primeiro app: Hello, World + +- depois de aberto o Android Studio, selecione a primeira opção New Project. +- na tela de seleção do tipo de projeto inicial, há opções de layouts iniciais para o projeto Android. Selecionar "Empty Activity" e clicar no botão Next. + - observe que podem ser criados projetos para outros aplicativos das plataformas que o Android suporta: Automotive, Wear OS e Android TV. +- a primeira tela é referente às configurações do projeto: + - campo Name (nome do aplicativo), no qual deve ser colocado o nome do projeto ("HelloWorld"). + - campo Package name: é uma junção do domínio invertido com o nome do projeto, que ficou assim: br.com.fiap.helloworld; esse item precisa ser único, pois é o pacote que identifica o aplicativo no Google Play. + - campo Save location: pode ser alterado caso exista a necessidade de alterar o local onde o projeto será salvo. + - ao final, deve ser especificada a API mínima que o projeto deve suportar. Essa opção é importante, visto que ela afeta diretamente a configuração de componentes.Nesse caso, será mantida a API 24 (Nougat), o que não impede que o aplicativo criado seja executado em versões posteriores. +- depois de realizar todas as configurações, pressione o botão Finish. Com isso, é iniciada a configuração do projeto para usar o ambiente de desenvolvimento. + +> É importante ressaltar que, para algumas etapas, é preciso haver conexão com a internet para o download de componentes necessários para a configuração do projeto. + +> O processamento do Gradle pode demorar um pouco devido à configuração da máquina que está executando o Android Studio. Recomenda-se a utilização de computador com 16GB de RAM e uso de SSD. + +- após a compilação ser concluída, uma tela com a estrutura do projeto aparecerá e, para evitar qualquer problema de travamento, é preciso ficar atento à barra inferior da IDE, pois ela informa o que está acontecendo durante o processamento e se o projeto realmente já está pronto para utilização. +- a estrutura do projeto de exemplo consiste em duas pastas principais: + - `app`: na qual se encontram três subpastas intituladas manifests, java e res. + - `MANIFESTS`: AndroidManifest.xml é responsável pelo gerenciamento de permissões, configurações do projeto, como estilo da activity, qual será a activity principal, qual será o nome do app, o ícone,entre outras funções. + - `JAVA`: três subpastas: + - na primeira, são criadas as classes do projeto; + - na segunda (***androidTest***), pode ser elaborado o teste automatizado da nossa aplicação (testes de funcionalidades), e + - na terceira (***test***), criamos o teste de interface gráfica. + - `RES`: quatro subpastas, sendo possível criar mais algumas de acordo com a necessidade. + - a primeira (***drawable***): na qual haverá imagens, ícones, backgrounds de dimensões fixas que não vão sofrer alterações de acordo com o tamanho da tela do dispositivo; + - a segunda (***mipmap***): na qual haverá imagens, ícones, backgrounds de diversas dimensões que se adaptam de acordo com o dispositivo; + - e a terceira (***values***): na qual criam-se xml padrões de cores, strings e themes, facilitando a reutilização no projeto. + - `Gradle Scripts`: em que se encontram os arquivos de bibliotecas internas e externas, configurações do Gradle, como versão, pacote, dependências, versão de SDK, etc. + +## 1.4 Criando um emulador (AVD) + +- para testar e verificar se o aplicativo está de acordo com o esperado,pode-se utilizar um dispositivo físico, configurando-o como desenvolvedor, ou criar um emulador que simule a configuração de um dispositivo físico. +- para criar um emulador, é necessário executar o aplicativo Device Manager pelo caminho: Tools > DeviceManager, ou pelos atalhos localizados na barra de ferramentas. +- no primeiro uso do Device Manager, nenhum emulador estará configurado. + - para criar um novo emulador, clique no botão "Create Virtual Device". + - na próxima página, o hardware desejado para criar o emulador deve ser selecionado; nessa primeira experiência, criar um emulador de ***Phone modelo Pixel 2***. + - na próxima tela deve ser selecionada a imagem (versão do sistema Android) que vamos utilizar. Nesse caso, utilizar a ***versão API 30 (R)***. + - na última página, inserir o nome do emulador e, caso pretenda alterar alguma configuração, selecionar a opção desejada, fazer a alteração e finalizar a criação do emulador. +- depois de criar o emulador, ele aparecerá na lista de dispositivos. Para executar, selecionar o desejado e clicar no botão Run (botão verde triangular). Nessa tela, é possível alterar também as configurações de qualquer emulador. +- depois de executar o emulador, o progresso de configuração aparecerá na tela, fazendo algumas configurações necessárias. +- também é possível alterar a forma de visualização do emulador clicando na engrenagem à direita e selecionando alguma das opções do menu View Mode. + +## 1.5 Executando apps no emulador e no dispositivo + +- para testar os apps desenvolvidos, há duas opções: criar um emulador ou executar o aplicativo direto em dispositivo físico. +- para realizar os testes, clicar no botão Run, na barra de ferramentas. + - ao lado do Run, há um combo que apresenta o valor ***app***, referente ao módulo app do projeto. + - um projeto no Android Studio é ***composto de vários módulos*** (por exemplo, se for criado um projeto com suporte a Wear, ou até mesmo se for criado um teste Expresso, haverá a opção para executar o teste Expresso, a versão Wear e a versão Mobile do projeto). +- ao clicar no botão Run, uma janela será aberta com a lista de dispositivos disponíveis para executar o projeto; selecionar o dispositivo e clicar no botão OK. O Android Studio vai compilar o projeto e executar no dispositivo selecionado se não houver erros. +- ***para executar o projeto em device físico conectado via USB***, é necessário habilitar, nas configurações do aparelho, a opção Configurações > Segurança > Fontes desconhecidas e a opção Configurações > Opções do desenvolvedor > Depuração USB. + - a opção de desenvolvedor não aparece por padrão no Android 3.2 ou superior, para habilitá-la, é preciso entrar em Configurações > Sobre o telefone > Informações do software e clicar sete vezes em Número de compilação, ao fazer isso, uma mensagem vai aparecer informando que agora você é desenvolvedor e o menu Opções de desenvolvedor estará habilitado. + - caso o computador não reconheça o dispositivo, verifique no site do fabricante se é necessária a instalação de algum driver; feito isso,siga os passos anteriores para executar o projeto! + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo4a.md b/fase01/trilha-android/capitulo4a.md new file mode 100644 index 0000000..6bdd940 --- /dev/null +++ b/fase01/trilha-android/capitulo4a.md @@ -0,0 +1,638 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 4A: Introdução ao Jetpack Compose.

+
+ +
+

1. INTRODUÇÃO AO JETPACK COMPOSE

+
+ +- é o kit de ferramentas oficial do Google para desenvolvimento de aplicativos de forma nativa para dispositivos Android. +- segundo o Google, o Jetpack Compose simplifica e acelera o desenvolvimento de Interface do Usuário (IU) no Android. +- atualmente grandes empresas já aderiram a esta nova forma de construir aplicativos Android, dentre elas: Google Play, Airbnb, Dropbox, Twitter, Booking, Adidas, Shopee etc. + +## 1.1 O que é o Jetpack Compose? + +- é um framework para IU declarativa. +- foi apresentado pela primeira vez à comunidade de desenvolvedores Android no Google I/O 2019, um evento utilizado pelo Google para falar sobre os novos recursos, ferramentas, tecnologias e tendências do universo Google, que também engloba o universo Android. +- o Jetpack Compose é um kit de ferramentas (`toolkit`), que entrega todos os recursos necessários para construir aplicativos Android de forma mais rápida, mais eficiente e escrevendo menos código. + +## 1.2 Composables + +- ao construir uma interface para Android utilizando Jetpack Compose, "quebramos" a interface em pequenos “pedaços” (`Composables`), que depois são combinados e reutilizados para criar interfaces mais complexas. +- é uma função em Kotlin que define a IU de um componente específico da tela. +- é responsável por descrever como um elemento de tela dever ser renderizado e se comportar. +- um composable pode ser construído através de outros composables. +- quando criamos um composable, declaramos os elementos visuais, como textos, botões, imagens e listas, além de definir a lógica de interação e a aparência do componente. +- uma das grandes ***vantagens*** dos composables é a possibilidade de reutilizar componentes: criamos composables mais genéricos que serão utilizados em diferentes partes da interface da aplicação. +- o Jetpack Compose possui uma vasta gama de composables previamente construídos, que podemos utilizar para criar a interface da aplicação. Praticamente todos os componentes de interface mais comuns em uma aplicação Android já estão disponíveis e prontas para serem utilizadas. + +## 1.3 State + +- uma das maiores dificuldades no desenvolvimento Android tradicional era controlar o estado da IU. +- o ***estado representa os dados que podem ser modificados e que afetam a aparência ou o comportamento dos componentes da interface***. + - `na abordagem tradicional`: + - fazemos a manipulação direta dos componentes de tela. + - ou seja, se um dado é alterado e este exige que um texto mude a cor, é necessário fazermos essa mudança de forma imperativa, e isso vai ocorrer com cada componente da IU. + - quanto mais componentes de IU tivermos, maior será a complexidade em manter a aparência atualizada e, consequentemente, maior será a possibilidade de existência de bugs. + - `no Jetpack Compose`: + - o estado é declarativo e reativo. + - nós definimos o estado inicial dos componentes e qualquer mudança neste estado inicial resultará em uma atualização total da IU de forma automática. + +> O conceito de state trouxe uma grande vantagem para o desenvolvedor Android, que agora foca seu trabalho no que é realmente importante, como a lógica da IU e não mais na manipulação direta dos componentes de tela! + +## 1.4 O novo e o antigo + +- antes do Jetpack Compose, as views (que eram os componentes de tela do aplicativo Android) eram construídas através de XML, era necessário um arquivo separado para "desenhar" a tela. +- para alterar o estado das views era preciso obter, em Kotlin ou Java, a referência de cada view que deveria ser alterada, o que gerava bastante código e aumentava a complexidade. +- com o Jetpack Compose, tudo fica em um único arquivo, onde descreve, em Kotlin, o que a IU deve conter e o Compose faz o resto. +- exemplo: + +### a) implementação com XML: + +~~~kotlin + + + + + + + + +~~~ + +### b) implementação com JetPack Compose: + +~~~kotlin +@Composable + fun SearchField() { + Column() { + OutlinedTextField( + value = "", + onValueChange = {}, + placeholder = { Text("O que você está procurando?") }, + trailingIcon = { + Icon( + painter = painterResource( + id = R.drawable.baseline_search_24 + ), + contentDescription = "" + ) + }) + } + } +~~~ + +- o Jetpack Compose utiliza uma quantidade de código menor, enquanto com XML precisamos de uma quantidade maior. + +## 1.5 Criação de um projeto Android com Jetpack Compose + +~~~kotlin +package br.com.fiap.minhaidade + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Surface +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import br.com.fiap.minhaidade.ui.theme.MinhaIdadeTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + MinhaIdadeTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colors.background + ) { + MeuComponente() + } + } + } + } +} + +@Composable +fun MeuComponente() { + Column() { + Text(text = "Qual a sua idade?") + Text(text = "Pressione os botões para informar a sua idade.") + Row() { + Button(onClick = { /*TODO*/ }) { + Text(text = "-") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "+") + } + } + } +} + +@Preview(showBackground = true, showSystemUi = true) +@Composable +fun MeuComponentePreview() { + MeuComponente() +} +~~~ + +
+

2. CRIAÇÃO DE UM PROJETO COM JETPACK COMPOSE

+
+ +- abrir o Android Studio e clicar no botão "New Project". +- na tela "New Project", selecionar o template "Empty Activity". +- preencher os dados do projeto e clicar no botão "Finish". + +## 2.1 Estrutura de um projeto Jetpack Compose + +- assim que o Android Studio finalizar a configuração do projeto, haverá um arquivo chamado `MainActivity.kt`, que será o ponto de partida para nossa aplicação. + - é uma subclasse de "ComponentActivity". + - é necessário para que a MainActivity utilize os métodos e propriedades do Jetpack Compose, como o "setContent", que permitirá a criação de um Composable que será a IU. +- o `método "setContent"` é chamado na função "onCreate" da Activity, que será utilizado para iniciar a aplicação. + +~~~kotlin +override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + MinhaIdadeTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + Greeting("Android") + } + } + } +} +~~~ + +- o método "setContent" é uma função que recebe como parâmetro um composable; é responsável por definir o conteúdo da IU, que neste caso é um composable. +- o primeiro composable que é passado ao "setContent" é um composable responsável por definir o tema da nossa aplicação, ou seja, cores, fontes, dimensões etc. +- o `composable "MinhaIdadeTheme"` recebe como parâmetro outros composables, que por padrão no Android Studio começa por "Surface". +- `Surface` é um container, ele é usado para envolver outros composables, como se fosse uma DIV do HTML; ele será o composable principal, que conterá todos os outros composables que definirão a IU. + - no exemplo, o composable Surface está recebendo dois parâmetros, um que determina que ele deverá ocupar toda a tela do dispositivo e outro que define que ele terá uma cor de fundo padrão. Além do tamanho e cor, é possível modificar outros parâmetros do Surface + +~~~kotlin +Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background +) +~~~ + +- o composable Surface, por sua vez, recebe o `composable "Greeting"`, que é uma função e recebe um parâmetro do tipo String. + +~~~kotlin +@Composable +fun Greeting(name: String) { + // Código omitido +} +~~~ + +> Por padrão, nomes de funções de composição são escritos com a inicial maiúscula, o que é importante para diferenciar funções de composição das funções regulares. + +## 2.2 Criação da primeira IU + +- o primeiro aplicativo consistirá em uma tela onde o usuário irá informar a sua idade utilizando 2 botões, um para incrementar a idade e outro para decrementar. + +
+
+Estrutura da IU "Minha idade".
+
+ +- para implementar a IU sugerida, abrir o arquivo "MainActivity.kt" do projeto e apagar algumas linhas, obtendo o código abaixo: + +~~~kotlin +package br.com.fiap.minhaidade + + import android.os.Bundle + import androidx.activity.ComponentActivity + import androidx.activity.compose.setContent + import androidx.compose.foundation.layout.fillMaxSize + import androidx.compose.material3.MaterialTheme + import androidx.compose.material3.Surface + import androidx.compose.ui.Modifier + import br.com.fiap.contador.ui.theme.ContadorTheme + + class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + MinhaIdadeTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + + } + } + } + } +} +~~~ + +- escrever uma nova função de composição que incluirá todos os composables descritos. +- para isso, no final do arquivo "MainActivity", logo após a chave de fechamento da classe, acrescentar o código: + +~~~kotlin +@Composable + fun CounterScreen() { + Column() { + Text(text = "Qual a sua idade?") + Text(text = "Aperte os botões para informar a sua idade.") + Text(text = "21") + Row() { + Button(onClick = {}) { + Text(text = "-") + } + Button(onClick = {}) { + Text(text = "+") + } + } + } + } +~~~ + +- a função "CounterScreen" foi anotada com @Composable, o que é necessário para identificar a função como sendo uma função responsável por definir a aparência e o comportamento de um componente visual. Funções composable são os blocos de construção da IU. +- na função "CounterScreen", inserimos uma Column que organizará o layout verticalmente. Dentro da Column há três Texts e seus textos, além de uma Row, que está posicionando 2 Buttons horizontalmente. + +~~~kotlin +package br.com.fiap.minhaidade + + import android.os.Bundle + import androidx.activity.ComponentActivity + import androidx.activity.compose.setContent + import androidx.compose.foundation.layout.Column + import androidx.compose.foundation.layout.Row + import androidx.compose.foundation.layout.fillMaxSize + import androidx.compose.material3.Button + import androidx.compose.material3.MaterialTheme + import androidx.compose.material3.Surface + import androidx.compose.material3.Text + import androidx.compose.runtime.Composable + import androidx.compose.ui.Modifier + import androidx.compose.ui.tooling.preview.Preview + import br.com.fiap.contador.ui.theme.ContadorTheme + + class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + MinhaIdadeTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + + } + } + } + } + } + + @Composable + fun CounterScreen() { + Column() { + Text(text = "Qual a sua idade?") + Text(text = "Aperte os botões para informar a sua idade.") + Text(text = "21") + Row() { + Button(onClick = {}) { + Text(text = "-") + } + Button(onClick = {}) { + Text(text = "+") + } + } + } + } +~~~ + +- o aplicativo começa a ser executado pelo método "onCreate" da classe "MainActivity"; esse método faz uma chamada para o método "setContent", que define qual será o conteúdo da IU, que neste caso está sendo definido pela função de composição "CounterScreen". + - logo, no corpo do método setContent deve ocorrer uma chamada para a função CounterScreen. + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + MinhaIdadeTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + CounterScreen() + } + } + } + } + } +~~~ + +- para ver o resultado, executar o aplicativo em um emulador criado anteriormente. +- na barra de ferramentas do Android Studio, selecionar o emulador desejado e clicar em no botão "Run app", ou manter pressionada a tecla "Shift" enquanto pressiona uma vez a tecla F10. + +### Formatando e definindo o comportamento dos Componentes: + +### a) começar com o texto "Qual a sua idade", incluindo os parâmetros no composable Text responsável por renderizar este texto: + +~~~kotlin +Text( + text = "Qual a sua idade?", + fontSize = 24.sp, + color = Color(0xFFAD1F4E), + fontWeight = FontWeight.Bold + ) +~~~ + +- Text é o composable responsável por inserir texto na IU; é uma função qu pode receber diversos argumentos, como: + - text – fornece o texto que será exibido. + - fontSize – define o tamanho da fonte. + - color – cor do texto. + - fontWeight – define o estilo, como negrito e itálico. + +### b) formatando os outros composables: + +~~~kotlin +@Composable + fun CounterScreen() { + Column() { + Text( + text = "Qual a sua idade?", + fontSize = 24.sp, + color = Color(0xFFAD1F4E), + fontWeight = FontWeight.Bold + ) + Text( + text = "Aperte os botões para informar a sua idade.", + fontSize = 12.sp + ) + Text( + text = "21", + fontSize = 48.sp, + fontWeight = FontWeight.Bold + ) + Row() { + Button( + onClick = {}, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "-", fontSize = 40.sp) + } + Button( + onClick = {}, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "+", fontSize = 40.sp) + } + } + } +} +~~~ + +- em relação aos botões, foram incluidos os parâmetros: + - `modifier = Modifier.size(84.dp)`: o parâmetro "modifier" é usado para aplicar modificações aos composables, como espaçamento, cor, tamanho, etc. Neste caso, o parâmetro modifier está alterando o tamanho do Button. Como informamos apenas uma dimensão o tamanho está sendo aplicado tanto ao comprimento quanto à altura. + - `shape = RoundedCornerShape(8.dp)`: o parâmetro "shape" modifica a forma do Button. "RoundedCornerShape" torna a forma com cantos arredondados, e definido o raio de curvatura para 8 dps. Outras formas: "RectangleShape", "CircleShape", etc. + - `colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E))`: modificamos a cor de preenchimento do botão. + +### c) para ajustar o alinhamento, acrescentar os seguintes parâmetros à Column: + +~~~kotlin +Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + // Código omitido + } +~~~ + +- o `parâmetro "horizontalAlignment"` define o alinhamento horizontal no interior da Column; neste caso, "Alignment.CenterHorizontally", que alinha o conteúdo de forma centralizada na horizontal. +- o `parâmetro "verticalArrangement"` define a disposição vertical no interior da Column; "Arrangement.Center" posiciona o conteúdo no centro vertical da Column. +- essas duas configurações colocaram o conteúdo exatamente no centro da IU! + +### d) ajustando espaçamento entre texto e botões: + +- utilizar o composable "Spacer" antes e depois do texto "21". + +~~~kotlin +Spacer(modifier = Modifier.height(32.dp)) +Text( + text = "21", + fontSize = 48.sp, + fontWeight = FontWeight.Bold +) +Spacer(modifier = Modifier.height(32.dp)) +~~~ + +### e) ajustando espaçamento ente botões: + +- entre os botões para incrementar ou decrementar a idade também há um espaço, utilizaremos o modificador "width" para que o espaçamento seja na horizontal. + +~~~kotlin +Row { + Button( + onClick = {}, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "-", fontSize = 40.sp) + } + Spacer(modifier = Modifier.width(32.dp)) + Button( + onClick = {}, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "+", fontSize = 40.sp) + } +} +~~~ + +## 2.3 Definindo o comportamento da nossa aplicação + +- o objetivo da aplicação é permitir que o usuário indique a idade pressionando os botões "+" e "-", que irão incrementar ou decrementar o número exibido na caixa de texto. +- será necessário implementarmos os métodos "onClick" dos botões. +- na primeira linha da função de composição "CounterScreen", criar a variável "idade": + +~~~kotlin +@Composable + fun CounterScreen() { + var idade = 0 + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) + ... + } +~~~ + +- alterar o valor do parâmetro "text" do composable "Text" que exibe a idade do usuário de "32" para "$idade": + +~~~kotlin +@Composable + fun CounterScreen() { + + var idade = 0 + + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + Text( + text = "Qual a sua idade?", + fontSize = 24.sp, + color = Color(0xFFAD1F4E), + fontWeight = FontWeight.Bold + ) + Text( + text = "Aperte os botões para informar a sua idade.", + fontSize = 12.sp + ) + Spacer(modifier = Modifier.height(32.dp)) + Text( + text = "$idade", + fontSize = 48.sp, + fontWeight = FontWeight.Bold + ) + Spacer(modifier = Modifier.height(32.dp)) + Row { + Button( + onClick = {}, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "-", fontSize = 40.sp) + } + Spacer(modifier = Modifier.width(32.dp)) + Button( + onClick = {}, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "+", fontSize = 40.sp) + } + } + } +} +~~~ + +- alterar o método "onClick" dos botões para que executem a tarefa de incrementar ou decrementar 1 à idade. + +~~~kotlin +Row { + Button( + onClick = { idade-- }, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "-", fontSize = 40.sp) + } + Spacer(modifier = Modifier.width(32.dp)) + Button( + onClick = { idade++ }, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "+", fontSize = 40.sp) + } +} +~~~ + +- ao executar o aplicativo, nada ocorre: o valor da idade continua sendo "0". + +## 2.4 Gerenciando o State da aplicação + +- o `state` é um dos principais fundamentos do Jetpack Compose: é ele quem vai orientar os composables a atualizarem a sua aparência com base nos dados que eles exibem. +- em nosso aplicativo, o composable Text deve atualizar o seu valor, ou seja, a sua aparência, para refletir o seu estado atual, que é um valor diferente do que estava sendo exibido antes do clique. + - quem mantém o estado do Text é a variável "idade", pois é ela que guarda o valor que deve ser apresentado ao usuário. + - sempre que "idade" mudar, o Text deve reagir a essa mudança e exibir o valor correto. + - logo, a variável ***"idade" é uma variável de estado***. +- portanto, precisamos fazer um ajuste na declaração da variável "idade" para que o Jetpack Compose possa gerenciá-lo. +- alterar a declaração da variável "idade": + +~~~kotlin +var idade = remember { + mutableStateOf(0) +} +~~~ + +- a `função remember` é utilizada para criarmos as variáveis de estado juntamente com a `função mutableSateOf`, que torna a variável mutável e determina o valor inicial. + - no caso da variável "idade", poderá ter seu valor alterado e é do tipo "Int", já que a inicializamos com "0". + - para acessar o valor em uma variável de estado utilizamos a função "value" da variável. + +~~~kotlin +Row { + Button( + onClick = { idade.value-- }, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "-", fontSize = 40.sp) + } + Spacer(modifier = Modifier.width(32.dp)) + Button( + onClick = { idade.value++ }, + modifier = Modifier.size(84.dp), + shape = RoundedCornerShape(8.dp), + colors = ButtonDefaults.buttonColors(Color(0xFFAD1F4E)) + ) { + Text(text = "+", fontSize = 40.sp) + } +} +~~~ + +
+ +## 3. [DESAFIO](./projects/Minhaidade/app/src/main/java/br/com/fiap/minhaidade/MainActivity.kt) +
+ +- para praticar o que você aprendeu neste capítulo, te desafio a implementar algumas funcionalidades extras em nosso aplicativo: + - 1. Adicione um texto abaixo dos botões que exiba uma mensagem informando se o usuário é maior ou menor de idade: + - se a idade apresentada for maior ou igual a 18 exiba a mensagem "Você é MAIOR de idade!", + - caso contrário, exiba a mensagem "Você é MENOR de Idade!". + - 2. Outro ajuste interessante, seria impedir que o valor da idade seja menor do que zero ou maior do que 130. Corrija os métodos "onClick" de modo a atender esse requisito. + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo5a.md b/fase01/trilha-android/capitulo5a.md new file mode 100644 index 0000000..05c43be --- /dev/null +++ b/fase01/trilha-android/capitulo5a.md @@ -0,0 +1,528 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 5A: Layouts e componentes básicos no Jetpack Compose.

+
+ +
+

1. LAYOUTS E COMPONENTES BÁSICOS NO JETPACK

+
+ +- o Jetpack Compose fornece vários elementos de layout para criar IUs interessantes e intuitivas para o usuário. +- quando estamos construindo uma IU, é necessário inserirmos vários componentes como textos, botões, caixas de seleção, etc. Se não fornecemos as instruções de como esses componentes dever ser organizados, o resultado não será como desejamos. + +## 1.1 Box + +- utilizado para agrupar outros composables, como textos e botões, dentro de uma área retangular. +- podemos comparar o Box a uma DIV no HTML, ou seja, é um container de composables, mas que sabe como posicioná-los de acordo com as orientações do programador. +- para praticar o uso do composable "Box", criado o projeto Composable no Android Studio chamado [BoxApp](./projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/MainActivity.kt), com a estrutura inicial: + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + BoxAppTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colors.background + ) { + + } + } + } + } +} +~~~ + +- criar uma função de composição chamada "BoxScreen", e inserir o nome "FIAP" na IU. + +~~~kotlin +@Composable +fun BoxScreen() { + Box { + Text(text = "FIAP") + } +} +~~~ + +- no método "onCreate", chamar a função composable na função "setContent". + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + BoxAppTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + BoxScreen() + } + } + } + } +} + +@Composable +fun BoxScreen() { + Box { + Text(text = "FIAP") + } +} +~~~ + +### a) parâmetro "contentAlignment": +- permite alinhar o conteúdo em qualquer lado do "Box". +- passá-lo dentro dos parênteses da função. +- valores: + - `TopStart`: ("no topo ao início"), ***é o padrão***, posiciona o texto no canto superior esquerdo. + - `Alignment.Center`: constante da Classe 'Alignment', que faz o alinhamento central dos componentes. + +~~~kotlin +@Composable +fun BoxScreen() { + Box(contentAlignment = Alignment.Center) { + Text(text = "FIAP") + } +} +~~~ + + - `Alignment.TopEnd`: o texto estará alinhado ao topo e do lado direito da Box. + +~~~kotlin +@Composable +fun BoxScreen() { + Box(contentAlignment = Alignment.TopEnd) { + Text(text = "FIAP") + } +} +~~~ + +> Caso adicione outros elementos nesta Box, como um botão, esses componentes serão empilhados no interior da Box, então o primeiro componente ficará na primeira "Camada", o segundo na segunda camada, e assim por diante. + +## 1.2 Alinhando vários componentes na Box + +- os composables dentro de uma Box estão sobre o escopo da Box, então, obedecem a este escopo. +- porém, os composables possuem um parâmetro chamado "modifier", que permite alterar características do componente, inclusive sua posição dentro da Box. + - quando alteramos, no composable, um parâmetro herdado do composable pai, este tem prioridade, permitindo alinhar cada composable dentro de uma Box individualmente utilizando seu modificador. +- exemplo: + +~~~kotlin +@Composable +fun BoxScreen() { + Box(contentAlignment = Alignment.TopEnd) { + Button( + onClick = { /*TODO*/ }, + modifier = Modifier.align(Alignment.BottomEnd) + ) { + Text(text = "Clique aqui") + } + Text( + text = "FIAP", + modifier = Modifier.align(Alignment.TopStart) + ) + } +} +~~~ + +> No Jetpack Compose, o "modifier" é um dos principais recursos para alterar a aparência e o comportamento de um composable. Os modificadores permitem adicionar efeitos visuais, como tamanho, cor, espaçamento, dentre outros. + +## 1.3 Controle de posicionamento utilizando "offset" + +- também é possível movimentar os componentes dentro da Box utilizando coordenadas x e y. +- não é a melhor e mais eficiente forma de posicionar componentes, mas, às vezes é necessário para fazer algum efeito visual. +- exemplo: botão posicionado em x=150.dp e y=120.dp. + +~~~kotlin +@Composable +fun BoxScreen() { + Box(contentAlignment = Alignment.TopEnd) { + Button( + onClick = { /*TODO*/ }, + modifier = Modifier.align(Alignment.BottomEnd) + ) { + Text(text = "Clique aqui") + } + Text( + text = "FIAP", + modifier = Modifier.align(Alignment.TopStart) + ) + Button( + onClick = { /*TODO*/ }, + modifier = Modifier + .align(Alignment.TopStart) + .offset(x = 150.dp, y=120.dp) + ) { + Text(text = "Outro botão") + } + } +} +~~~ + +> é importante ressaltar que a posição x = 0 e y = 0 sempre levará em conta a posição inicial de composição do componente. Portanto, se estiver utilizando "BottomEnd", a movimentação ocorrerá a partir deste ponto. + +## 1.4 Column e Row + +- são os composables de layout mais utilizados. +- permitem que posicionemos os componentes de nossa IU lado a lado, na horizontal ou na vertical, na ordem em que são inseridos no código. +- criado o projeto Jetpack Compose no Android Studio chamado [Column Row](./projects/ColumnRow/app/src/main/java/br/com/fiap/columnrow/MainActivity.kt). +- criar a função de composição chamada "ColomnRowScreen". + - em relação ao "Surface", o primeiro componente estrutural, não precisamos inseri-lo agora, pois já faz parte da IU de forma padrão, e ocupa todo o tamanho da tela do dispositivo devido ao parâmetro modificador "modifier = Modifier.fillMaxSize()". +- iniciar pelos composables mais externos: + +~~~kotlin +@Composable +fun ColumnRowScreen() { + // Column principal + Column(modifier = Modifier.fillMaxSize()) { // + Column(modifier = Modifier.fillMaxWidth()) { + + } + Row(modifier = Modifier.fillMaxWidth()) { + + } + Row(modifier = Modifier.fillMaxWidth()) { + + } + } +} +~~~ + +- observações: + - a primeira Column ocupará todo o tamanho da tela, por isso o seu modificador recebe o valor "fillMaxSize". + - dentro da primeira Column haverá uma Column que ocupará toda a largura do componente pai, que é a primeira Column. Sua altura será dinâmica, ou seja, vai expandir de acordo com o conteúdo. + - em seguida, inserimos duas "Rows", que ficarão uma abaixo da outra. + - no interior da última "Row", inserir duas "Columns", que ficarão lado a lado, já que o seu componente pai é uma "Row". + +~~~kotlin +@Composable +fun ColumnRowScreen() { + // Column principal + Column(modifier = Modifier.fillMaxSize()) { + Column(modifier = Modifier.fillMaxWidth()) { + // Conteúdo + } + Row(modifier = Modifier.fillMaxWidth()) { + // Conteúdo + } + Row(modifier = Modifier.fillMaxWidth()) { + Column() { + // Conteúdo + } + Column() { + // Conteúdo + } + } + } +} +~~~ + +## 1.5 Modifier + +- é uma classe que permite modificar os estilos de um composable, como tamanho, cor, posicionamento, espaçamento, dentre outros. +- permite encadear vários modificadores para alterar a aparência de um composable, além do seu comportamento. +- as modificações são aplicadas na ordem em que você as declara. +- modificadores mais utilizados: + - padding(): adiciona um espaçamento interno ao redor do composable. + - size(): define o tamanho do composable. + - offset(): define a posição do composable dentro do seu contêiner pai. + - clickable(): torna o composable clicável e permite adicionar uma ação ao ser clicado. + - background(): define a cor de fundo do composable. + - fillMaxWidth(), fillMaxHeight(): faz com que o composable ocupe todo o espaço disponível no eixo horizontal ou vertical, respectivamente. + - fillMaxSize(): faz com que o composable ocupe todo o espaço disponível na tela. + - align(): alinha o composable dentro do seu contêiner pai. + - weight(): controla a distribuição do espaço disponível entre vários composables dentro de um contêiner. + +### 1.5.1 Exemplo de aplicação - Modifier + +- na primeira Column, colocar uma cor de fundo (background) na cor ciano. +- o Surface declara um modificador com o valor "Modifier.fillMaxSize()", que faz com que ele ocupe todo o tamanho da tela do dispositivo. Por padrão, os componentes filhos de um Surface herdam o seu tamanho, por isso a Column está ocupando todo o tamanho da tela. +- podemos alterar o tamanho do Surface, como nos exemplos: + +~~~kotlin +Surface( + modifier = Modifier.fillMaxSize(), + // ocupa toda a tela + color = MaterialTheme.colorScheme.background +) +~~~ + +~~~kotlin +Surface ( + modifier = Modifier.size(150.dp), + // gera um quadrado de 150x150, do lado superior esquerdo da tela. + // esse quadrado é o Surface com a Column no seu interior. + color = MaterialTheme.colorScheme.background +) +~~~ + +~~~kotlin +@Composable +fun ColumnRowScreen() { + // Column principal + Column( + modifier = Modifier + .background(Color.Cyan) + ) { + Column(modifier = Modifier + .background(Color.Magenta) + .size(100.dp) + // permite que o quadrado magenta fique acima! + ) { + // Aqui vai o conteúdo + } + Row() { + // Aqui vai o conteúdo + } + Row() { + Column() { + // Aqui vai o conteúdo + } + Column() { + // Aqui vai o conteúdo + } + } + } +} +~~~ + +- para colorir e redimensionar todos os composables da IU: + +~~~kotlin +@Composable +fun ColumnRowScreen() { + // Column principal + Column( + modifier = Modifier + .background(Color.Cyan) + // contêiner principal. + // posiciona os componentes internos de forma empilhada na vertical. + ) { + Column(modifier = Modifier + .background(Color.Magenta) + .fillMaxWidth().height(150.dp) + ) { + // Aqui vai o conteúdo + } + Row(modifier = Modifier + .fillMaxWidth() + .height(150.dp) + .background(Color.Green)) { + // Aqui vai o conteúdo + } + Row(modifier = Modifier + // row com duas coluns no interior + .fillMaxWidth() + .height(150.dp) + .background(Color.Yellow)) { + Column(modifier = Modifier + .fillMaxWidth() + .height(100.dp) + .padding(8.dp) + .background(Color.Red) + .weight(0.3f)) { + // Aqui vai o conteúdo + } + Column(modifier = Modifier + .fillMaxWidth() + .height(100.dp) + .padding(8.dp) + .background(Color.Blue) + .weight(0.7f)) { + // Aqui vai o conteúdo + } + } + } +} +~~~ + +## 1.6 Alinhamento e arranjo de Colunas + +- o posicionamento pode ser feito utilizando o Alinhamento e o Arranjo. +- no exemplo anterior, na Column magenta, adicionar 4 botões: + +~~~kotlin +Column(modifier = Modifier + .background(Color.Magenta) + .fillMaxWidth() + .height(150.dp)) { + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } +} +~~~ + +> Os composables podem utilizar outros composables para serem criados. O botão é um exemplo: utilizamos o Text para incluir o texto no botão. Em tese, é possível compor um composable com qualquer outro composable. + +- na situação acima, a Column magenta possui a largura da tela do dispositivo (fillMaxWidth()), e altura de 150dp (height(150.dp)). +- com isso, o quarto botão não está sendo visível, ou apenas parte dele é, já que a altura está fixada e não irá se adaptar ao seu conteúdo. +- para resolver esse problema, excluir a função height do modificador, assim, a altura ficará dinâmica e se ajustará ao conteúdo da Column. + +~~~kotlin +Column( + modifier = Modifier + .background(Color.Magenta) + .fillMaxWidth() +) { + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } +} +~~~ + +### 1.6.1 horizontalAlignment +- no exemplo acima, os botões estão alinhados no lado inicial da Column. +- para alterar o alinhamento horizontal, usamos o parâmetro “horizontalAlignment” da Column. +- valores: + - CenterHorizontally: alinha o conteúdo no centro horizontal da Column. + - End: alinha o conteúdo do lado final/direito da Column. + - Start: alinha o conteúdo do lado inicial/esquerdo da Column (padrão). + +~~~kotlin +Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .background(Color.Magenta) + .fillMaxWidth() +) { + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } +} +~~~ + +### 1.6.2 verticalArrangement +- parâmetro que permite alterar o arranjo vertical do conteúdo de uma Column. +- valores: + - Top: alinha o conteúdo na parte superior da Column. + - Bottom: alinha todo o conteúdo na parte inferior da Column. + - Center: alinha todo o conteúdo no centro vertical da Column. + - SpaceAround: espalha verticalmente todo o conteúdo da Column, com espaço uniforme entre eles e mantendo um espaço uniforme no início e no final da coluna. + - SpaceBetween: espalha verticalmente todo o conteúdo da Column, com espaço uniforme entre eles, mas não mantém espaço extra no início e no final da coluna. + - SpaceEvenly: espalha verticalmente todo o conteúdo da Column, com espaço uniforme entre eles. O mesmo espaço será colocado no início e no fim da coluna. +- continuando, no exemplo iremos posicionar todos os botões na parte inferior da Column (todo o conteúdo da Column alinhado horizontalmente ao lado final/direito da Column e posicionado na parte inferior): + +~~~kotlin +Column( + horizontalAlignment = Alignment.End, + verticalArrangement = Arrangement.Bottom, + modifier = Modifier + .background(Color.Magenta) + .fillMaxWidth().height(300.dp) +) { + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } +} +~~~ + +- posicionar todos os botões ao centro da Column e com arranjo vertical uniforme (distribui os botões de forma uniforme na coluna, mantendo o mesmo espaçamento entre os botões e ao início e fim da coluna): + +~~~kotlin +Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .background(Color.Magenta) + .fillMaxWidth().height(300.dp) +) { + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 01") + } +} +~~~ + +## 1.8 Alinhamento e Arranjo em Linhas + +- bastante similar às Columns; a diferença é que enquanto nas colunas fazemos alinhamento horizontal, nas linhas fazemos alinhamento vertical. - o mesmo ocorre com o arranjo, nas colunas fazemos arranjo vertical enquanto nas linhas fazemos arranjo horizontal. +- acrescentar dois botões na Row verde: + +~~~kotlin +Row( + modifier = Modifier + .fillMaxWidth() + .height(150.dp) + .background(Color.Green) +) { + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 02") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 02") + } +} +~~~ + +- o posicionamento padrão no interior de uma Row é no lado inicial/esquerdo e parte superior da linha. +- acrescentar o parâmetro "verticalAlignment" com o valor “CenterVertically”, o parâmetro "horizontalArrangement" com o valor "SpaceBetween". + +~~~kotlin +Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceAround, + modifier = Modifier + .fillMaxWidth() + .height(150.dp) + .background(Color.Green) +) { + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 02") + } + Button(onClick = { /*TODO*/ }) { + Text(text = "Botão 02") + } +} +~~~ + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo6a.md b/fase01/trilha-android/capitulo6a.md new file mode 100644 index 0000000..f23c7ff --- /dev/null +++ b/fase01/trilha-android/capitulo6a.md @@ -0,0 +1,1149 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 6A: Componentes básicos com Jetpack Composes.

+
+ +
+

1. COMPONENTES BÁSICOS COM JETPACK

+
+ +## 1.1 Exibindo texto para o usuário + +- componente "Text": + - é o mais básico. + - permite exibir informações para o usuário. +- criar um projeto no Android Studio chamado [Basic Components](./projects/BasicComponents/app/src/main/java/br/com/fiap/basiccomponents/MainActivity.kt). +- criar uma função de composição chamada "BasicComponentsScreen", e inserir dois composables do tipo Text. + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + BasicComponentsTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + BasicComponentsScreen() + } + } + } + } + } + + @Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier.fillMaxWidth()) { + Text(text = "FIAP") + Text(text = "Desenvolvendo aplicações Android") + } + } +~~~ + +- os componentes "Text" ficam empilhados na vertical pois estão inseridos em uma Column. + +## 1.2 Formatação básica do texto + +- o composable "Text" implementa vários parâmetros que são responsáveis pela formatação da aparência do texto inserido no "Text". +- o "Modifier" permite modificar a aparência do componente. +- aplicar as modificações: + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier.fillMaxWidth()) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(0xFFED145B) + ) + Text(text = "Desenvolvendo aplicações Android") + } + } +~~~ + +- o que mudamos no texto:? + - `fontSize`: parâmetro definido para "32.sp": + - 32 representa o tamanho que queremos. + - "sp" significa "scaled pixels", uma unidade utilizada para definir o tamanho do texto com base nas configurações de tamanho de fonte do dispositivo. + - considerando que o usuário pode alterar o tamanho das fontes utilizadas pelo dispositivo, utilizar "sp" garante que a aplicação obedecerá a configuração. + - `fontWeight`: neste parâmetro configura-se a intensidade ou peso da fonte. + - ***FontWeight.Thin***: fonte com peso fino. + - ***FontWeight.ExtraLight***: fonte com peso extra leve. + - ***FontWeight.Light***: fonte com peso leve. + - ***FontWeight.Normal***: fonte com peso normal. + - ***FontWeight.Medium***: fonte com peso médio. + - ***FontWeight.Bold***: estilo negrito. + - ***FontWeight.SemiBold***: fonte com peso semi-negrito. + - ***FontWeight.ExtraBold***: fonte com peso extra negrito. + - ***FontWeight.Black***: fonte com peso preto. + - `color`: configura a cor do texto. No exemplo, utilizamos o código hexadecimal de uma cor vermelha (ED145B). + - ***0x***: sempre que vamos fornecer um valor hexadecimal para uma cor no Jetpack Compose devemos começar com esse prefixo. + - ***FF***: chhamado "canal alpha", representa a transparência de uma cor, onde FF significa totalmente opaco e 00 totalmente transparente. + +> Além do uso de hexadecimal para definição da cor, também podemos utilizar RGB, que é a mistura de vermelho, verde e azul. Para o exemplo, poderíamos ter utilizado Color(237, 20, 91). + +- modificar o background da IU, lembrando que a Column está ocupando toda a tela e ela é o contêiner principal. + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier + .fillMaxWidth() + .background(Color.Black)) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91) + ) + Text(text = "Desenvolvendo aplicações Android") + } + } +~~~ + +- para alterar a cor de fundo da Column, utilizamos "Modifier.background(Color.Black)". +- então, além de usar RGB e hexadecimal para as cores, também é possível utilizar cores pré-configuradas, como Red, White, Green. +- alterar as confugurações do segundo Text: + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier + .fillMaxWidth() + .background(Color.Black)) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91) + ) + Text( + text = "Desenvolvendo aplicações Android", + fontSize = 16.sp, + fontWeight = FontWeight.SemiBold, + color = Color.White + ) + } + } +~~~ + +## 1.3 Adicionando fontes ao projeto + +- fonte genéricas que o Android Studio possui por padrão + - Monospace. + - Serif. + - SansSerif. + - Cursive. + - Default. + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier + .fillMaxWidth() + .background(Color.Black)) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91), + fontFamily = FontFamily.Serif + ) + Text( + text = "Desenvolvendo aplicações Android", + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + } +~~~ + +- podemos utilizar qualquer outra fonte que desejarmos, sendo necessário adicionar essas fontes ao projeto. + +### a) acessar o site do `Google Fonts` e baixar uma fonte chamada "Righteous". +- acessar [Google Fonts](https://fonts.google.com/). +- no campo de busca de fontes, digitar o nome da fonte desejada (Righteous). +- clicar na fonte resultante da pesquisa, e será direcionado para outra página com as opções da fonte selecionada. +- clicar no botão "Download Family", do lado superior direito da página. +- salvar o arquivo .zip em uma pasta do computador. +- descompactar o arquivo .zip. + +### b) configurar o Android Studio para utilizar essa nova fonte: +- do lado esquerdo do Android Studio temos o painel de projeto, conhecido como "Project", e nesta estrutura temos a `pasta res` (resources, recursos), utilizada para colocar os recursos que serão utilizados no projeto, como imagens que ficam na pasta drawable e mipmap. +- clicar como o botão direito do mouse na pasta res, selecionar a opção New > "Android Resource Directory". +- na janela "New Resource Directory", em "Resource Type", abrir a lista e selecionar a opção "Font" e pressionar o botão OK. +- localizar a pasta de fontes usada para descompactar a fonte baixada do Google Fonts, copiar o arquivo de fonte "Righteous-Regular.ttf" para a pasta "font". +- renomear o arquivo da fonte, trocando o nome para "righteous_regular.ttf" (botão direito do mouse no arquivo > Refactor > Rename). +- a fonte já estará disponível para ser utilizada. + +### c) adicionar configurações ao arquivo `Type.kt` (arquivo de código fonte responsável pela padronização de fontes do app): +- permite centralizar toda a identidade tipográfica da aplicação, facilitando rápida troca de fontes e personalização. +- localizar o arquivo no pacote "ui.theme". +- abrir o arquivo "Type.kt" e adicione as seguintes linhas de código: + +~~~kotlin +package br.com.fiap.basiccomponents.ui.theme + + import androidx.compose.material3.Typography + import androidx.compose.ui.text.TextStyle + import androidx.compose.ui.text.font.Font + import androidx.compose.ui.text.font.FontFamily + import androidx.compose.ui.text.font.FontWeight + import androidx.compose.ui.unit.sp + import br.com.fiap.basiccomponents.R + + val Righteous = FontFamily( + Font(R.font.righteous_regular) + ) + + // Set of Material typography styles to start with + val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ + ) +~~~ + +- o que fizemos foi criar uma variável global chamada "Righteous", que guarda a nova fonte, e a partir de agora já podemos utilizá-la. + +### d) retornar ao arquivo "MainActivity.kt" para trocar a fonte: + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier + .fillMaxWidth() + .background(Color.Black)) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91), + fontFamily = FontFamily.Serif + ) + Text( + text = "Desenvolvendo aplicações Android", + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + fontFamily = Righteous + ) + } + } +~~~ + +
+

2. ALINHANDO O TEXTO

+
+ +- utilizar o "Modifier.background", para trocar a cor de fundo do primeiro Text, que era transparente, para amarelo. + +> `importante:` o Text tem exatamente o tamanho do texto que ele contém. + +- se alinharmos o texto, não vamos perceber nenhuma alteração; portanto, mudar este comportamento com o "Modifier.fillMaxWidth", que fará com que o Text tenha a largura total da tela. + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier + .fillMaxWidth() + .background(Color.Black)) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91), + fontFamily = FontFamily.Serif, + modifier = Modifier + .background(Color.Yellow) + .fillMaxWidth(), + textAlign = TextAlign.End + ) + Text( + text = "Desenvolvendo aplicações Android", + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + fontFamily = Righteous + ) + } + } +~~~ + +- `textAlign`: + - é um parâmetro do composable Text que alinha o texto no seu interior. + - valores: End, Start, Justify e Center. + +- para alinhar o composable Text em relação ao seu componente pai, utilizar o Modifier, nesse caso para centralizar o Text do subtítulo no centro da Column. + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier + .fillMaxWidth() + .background(Color.Black)) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91), + fontFamily = FontFamily.Serif, + modifier = Modifier + .background(Color.Yellow) + .fillMaxWidth(), + textAlign = TextAlign.End + ) + Text( + text = "Desenvolvendo aplicações Android", + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + fontFamily = Righteous, + modifier = Modifier.align(Alignment.CenterHorizontally) + ) + } + } +~~~ + +- no exemplo acima, não foi alinhado o texto no centro, e sim todo o composable Text no centro do composable pai, que é a Column. + +## 2.1 Entrada de dados do usuário + +- há diversos composables que podem ser utilizados para que o usuário forneça dados ao aplicativo, sendo os mais utilizados: campos de texto editáveis, caixas de checagem, botões rádio e listas suspensas. + +## 2.2 Caixa de texto editável + +- um dos componentes mais importantes para a entrada de dados. +- permitem ao usuário alterar o seu conteúdo. + +> Antes de começarmos a incluir os novos componentes, faremos alguns ajustes nas versões do Kotline da biblioteca "material3" do Jetpack Compose. Abrir o arquivo "build.gradle" em nível de projeto, localizado na pasta "Gradle Scripts". + +~~~kotlin +// Top-level build file where you can add configuration options common to all sub-projects/modules. + plugins { + id 'com.android.application' version '8.0.0' apply false + id 'com.android.library' version '8.0.0' apply false + //id 'org.jetbrains.kotlin.android' version '1.7.20' apply false + id 'org.jetbrains.kotlin.android' version '1.8.0' apply false + } +~~~ + +> Em seguida, abrir o arquivo "build.gradle" do módulo, arquivo em que estão todas as informações necessárias para compilação, empacotamento e geração do pacote de instalação final do app. + +- alterar a versão das extensões do compilador Kotlin do Jetpack Compose: + - localizar o bloco "composeOptions" e alterar a versão do atributo "kotlinCompilerExtensionsVersion" para 1.4.0. + - no bloco "dependencies", acrescentar a versão do pacote "material3". + +~~~kotlin +composeOptions { + //kotlinCompilerExtensionVersion '1.3.2' + kotlinCompilerExtensionVersion '1.4.0' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } + +dependencies { + +implementation 'androidx.core:core-ktx:1.8.0' +implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' +implementation 'androidx.activity:activity-compose:1.5.1' +implementation platform('androidx.compose:compose-bom:2022.10.00') +implementation 'androidx.compose.ui:ui' +implementation 'androidx.compose.ui:ui-graphics' +implementation 'androidx.compose.ui:ui-tooling-preview' +// implementation 'androidx.compose.material3:material3' +implementation 'androidx.compose.material3:material3:1.1.0' +testImplementation 'junit:junit:4.13.2' +androidTestImplementation 'androidx.test.ext:junit:1.1.5' +androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' +androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') +androidTestImplementation 'androidx.compose.ui:ui-test-junit4' +debugImplementation 'androidx.compose.ui:ui-tooling' +debugImplementation 'androidx.compose.ui:ui-test-manifest' +} +~~~ + +- clicar em "Sync Now", e aguardar o Android Studio concluir o download de todas as novas bibliotecas. + +### 2.2.1 TextField + +- o composable que permite ao usuário digitar dados é o TextField". +- inserir este composable, e utilizar o Modifier para que ele ocupe toda a largura da tela. + +~~~kotlin +@Composable + fun BasicComponentsScreen() { + Column(modifier = Modifier + .fillMaxWidth() + .background(Color.Black)) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91), + fontFamily = FontFamily.Serif, + modifier = Modifier + .background(Color.Yellow) + .fillMaxWidth(), + textAlign = TextAlign.End + ) + Text( + text = "Desenvolvendo aplicações Android", + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + fontFamily = Righteous, + modifier = Modifier.align(Alignment.CenterHorizontally) + ) + TextField( + value = "", + onValueChange = {}, + modifier = Modifier.fillMaxWidth() + ) + } + } +~~~ + +- o TextField possui dois parâmetros obrigatórios: + - ***value***: valor que será colocado dentro do TextField. + - ***onValueChange***: parâmetro que recebe como valor uma função, por isso o valor deste parâmetro é {}. Dentro desse par de chaves podemos colocar uma instrução qualquer e ela será executada quando o value do TextField for alterado. + +~~~kotlin +TextField( + value = "Android", + onValueChange = {}, + modifier = Modifier.fillMaxWidth() + ) +~~~ + +## 2.3 Gerenciando o estado do TextField + +- o estado em um aplicativo é qualquer valor que pode mudar ao longo do tempo: + - quando estamos olhando para uma Interface de Usuário no Android, estamos observando seu estado atual. + - se um valor mudar, precisamos que a Interface também seja atualizada, ou seja, o estado mudou. + - quando digitamos algo no TextField, estamos alterando o seu value, e essa mudança de estado causa a recomposição do TextField. + - porém, durante essa recomposição os parâmetros são carregados novamente e o value retorna ao seu valor inicial. + - logo, é necessário armazenarmos esse valor que está sendo digitado para que possamos lembrar dele na próxima recomposição. + +> Para que o Android se "lembre" dos valores entre recomposições, utilizamos a `função mutableStateOf()`. + +- no início da função de composição BasicComponentsScreen(), criar a variável de estado que armazenará o value do TextField. + +~~~kotlin +var textFieldValue = remember { + mutableStateOf("") + } +~~~ + +- a variável textFieldValue é uma variável de estado, e o seu valor será lembrado entre as recomposições. +- ajustar os parâmetros value e onValueChange do TextField. + +~~~kotlin +TextField( + value = textFieldValue.value, + onValueChange = { novoValor -> + textFieldValue.value = novoValor + }, + modifier = Modifier.fillMaxWidth() + ) +~~~ + +- ao ocorrer a composição inicial do TextField, ele receberá o valor vazio, que é o valor de inicialização da variável de estado. +- a cada caractere digitado, o método onValueChange do TextField nos retorna o valor atual que será atribuído à variável textFieldValue, que está armazenado na variável novoValor e que provocará a recomposição do TextField, pois seu estado mudou. Mas agora o valor será lembrado, e o value do TextField terá o comportamento que desejamos! + +## 2.4 Tipos de entrada + +- quando focamos em um TextField, o Android abre o teclado virtual para que possamos inserir o texto. +- há diversos teclados para a digitação dos mais variados tipos de informação. +- é indicado que o teclado fornecido pelo Android esteja de acordo com o tipo de informação que vamos digitar. + +- no exemplo, acrescentar um novo TextField que será utilizado para digitar um valor numérico, então o ideal é que o teclado apresentado seja o numérico. + +~~~kotlin +var quantidade = remember { + mutableStateOf("") + } + TextField( + value = "${quantidade.value}", + onValueChange = { novoValor -> + quantidade.value = novoValor + }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) + ) +~~~ + +- a função KeyboardOptions permite que alteremos o teclado exibido para o usuário, e o comportamento enquanto digitamos. +- o parâmetro keyboardType, por exemplo, da função KeyboardOptions diz ao Android que o teclado que será exibido deverá ser o numérico. + +- `Possíveis KeyboardType`: + - ***Number***: apresentará o teclado numérico. + - ***Text***: apresentará o tecado alfanumérico. + - ***Decimal***: apresentará o teclado numérico com teclas para ponto decimal. + - ***Email***: apresentará o teclado com o caractere @. + - ***NumberPassword***: apresenta o teclado numérico e não vemos os números digitados. + - ***Password***: apresenta o teclado alfanumérico e não vemos o que estamos digitando. + - ***Phone***: apresenta o teclado para discagem. + - ***Uri***: fornece o teclado ideal para digitarmos um endereço de Internet, por exemplo. + +- também é possível definir como o texto será inserido. +- suponhamos que o primeiro TextField seja utilizado para inserirmos o nome completo de uma pessoa, neste caso seria interessante que ao digitarmos o espaço o teclado fique maiúsculo para digitarmos o sobrenome, como no exemplo: + +~~~kotlin +TextField( + value = textFieldValue.value, + onValueChange = { novoValor -> + textFieldValue.value = novoValor + }, + modifier = Modifier.fillMaxWidth(), + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Words + ) + ) +~~~ + +- `KeyboardCapitalization`: valores Words, Characters, None e Sentences. + +## 2.5 Dicas de entrada + +### 2.5.1 Placeholder: +- adicionar um `placeholder` ao segundo TextField. +- o placeholder é um composable, então este parâmetro pode receber como valor o Text que será usado para exibir o texto. +- o texto do placeholder é substituído pelo conteúdo digitado pelo usuário. + +~~~kotlin +TextField( + value = "${quantidade.value}", + onValueChange = { novoValor -> + quantidade.value = novoValor + }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + placeholder = { + Text(text = "Qual a quantidade?") + } + ) +~~~ + +### 2.5.2 Label: +- inicialmente parece um placeholder, mas ao clicarmos no TextField o texto será usado como uma etiqueta do TextField. +- adicionar o parâmetro label ao primeiro TextField. + +~~~kotlin +TextField( + value = textFieldValue.value, + onValueChange = { novoValor + textFieldValue.value = novoValor + }, + modifier = Modifier.fillMaxWidth(), + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Words + ), + label = { + Text(text = "Nome e sobrenome") + } + ) +~~~ + +## 2.6 Inserindo ícone ao TextField + +- para chamar atenção do usuário sobre o dado que deve ser inserido, podemos utilizar ícones, seja no início ou no fim do TextField. +- adicionar um ícone no lado inicial do primeiro TextField. + +~~~kotlin +TextField ( + value = textFieldValue.value, + onValueChange = { novoValor + textFieldValue.value = novoValor + }, + modifier = Modifier.fillMaxWidth(), + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Words + ), + label = { + Text(text = "Nome e sobrenome") + }, + leadingIcon = { + Icon( + imageVector = Icons.Default.Person, + contentDescription = "", + tint = Color(237, 20, 91) + ) + } + ) +~~~ + +- com o parâmetro `leadingIcon`, colocamos o ícone no início do TextField. +- também podemos utilizar o `trailingIcon`, que posicionará o ícone no fim do TextField. + +## 2.7 Alterando a cor do texto de um TextField + +- quando o usuário está focado no TextField, a cor pode ser diferente de quando o usuário não está focado no TextField. +- podemos alterar a cor do placeholder, do label, etc. +- alterar algumas configurações de cor no segundo TextField. + +~~~kotlin +TextField( + value = "${quantidade.value}", + onValueChange = { novoValor -> + quantidade.value = novoValor + }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + placeholder = { + Text(text = "Qual a quantidade?") + }, + colors = TextFieldDefaults.colors( // ou TextFieldDefaults.textFieldColors + focusedTextColor = Color.White, + unfocusedTextColor = Color.Green, + unfocusedPlaceholderColor = Color.Magenta + ) + ) +~~~ + +- o parâmetro: + - focusedTextColor (focusedIndicatorColor): define a cor do texto para branco enquanto o editamos. + - unfocusedTextColor (unfocusedIndicatorColor): altera a cor do texto para verde quando saímos do TextField. + - unfocusedPlaceholderColor (placeholderColor): altera a cor do placeholder para magenta. + +> há muitas possibilidades para ajuste de cores no texto do TextField; para obter uma lista de todas as opções possíveis, apontar o mouse para a palavra "colors" da função "TextFieldDefaults". + +## 2.8 OutlinedTextField + +- é uma vatiação do TextField. +- implementa uma aparência diferente, mas todos os parâmetros vistos até agora também estão disponíveis neste componente. +- criar um OutlinedTextField após o segundo TextField. + +~~~kotlin +@Composable +fun BasicComponentsScreen() { + + var textFieldValue = remember { + mutableStateOf("") + } + + Column( + modifier = Modifier + .fillMaxWidth() + .background(Color.Black) + ) { + Text( + text = "FIAP", + fontSize = 32.sp, + fontWeight = FontWeight.Bold, + color = Color(237, 20, 91), + fontFamily = FontFamily.Serif, + modifier = Modifier + .background(Color.Yellow) + .fillMaxWidth(), + textAlign = TextAlign.End + ) + Text( + text = "Desenvolvendo aplicações Android", + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + fontFamily = Righteous, + modifier = Modifier.align(Alignment.CenterHorizontally) + ) + TextField( + value = textFieldValue.value, + onValueChange = { novoValor -> + textFieldValue.value = novoValor + }, + modifier = Modifier.fillMaxWidth(), + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Words + ), + label = { + Text(text = "Nome e sobrenome") + }, + leadingIcon = { + Icon( + imageVector = Icons.Default.Person, + contentDescription = "", + tint = Color(237, 20, 91) + ) + } + ) + var quantidade = remember { + mutableStateOf("") + } + TextField( + value = "${quantidade.value}", + onValueChange = { novoValor -> + quantidade.value = novoValor + }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + placeholder = { + Text(text = "Qual a quantidade?") + }, + colors = TextFieldDefaults.colors( + focusedTextColor = Color.White, + unfocusedTextColor = Color.Green, + unfocusedPlaceholderColor = Color.Magenta + ) + ) + Spacer(modifier = Modifier.height(32.dp)) + var cidade = remember { + mutableStateOf("") + } + OutlinedTextField( + value = cidade.value, + onValueChange = { + cidade.value = it + }, + modifier = Modifier + .padding(16.dp) + .fillMaxWidth(), + textStyle = TextStyle(color = Color.White) + ) + } +} +~~~ + +- neste exemplo, utilizamos: + - um componente Spacer com o modificador Modifier.height(32.dp), que colocará um espaço de 32.dp antes do OutlinedTextField. + - no OutlinedTextField”, seu modificador garate a largura total da tela com fillMaxWidth, espaçamento nos quatro lados de 16.dp com padding(16.dp). Além disso, utilizado textStyle para modificar a cor do texto. + - no parâmetro onValueChange, utilizada a variável `it`, valor que nos é passado quando digitamos algo. Nos exemplos anteriores, utilizamos uma função lambda para isso, onde recebíamos uma variável que chamamos de novoValor. O it é muito utilizado em Kotlin, pois reduz digitação. +- com textStyle é possível modificar diversos parâmetros listados (ver lista parando com o mouse em cima). + +- o OutlinedTextField é renderizado numa forma retangular com uma borda e sem preenchimento, diferentemente do TextField. +- modificar a forma do OutlinedTextField: + +~~~kotlin +OutlinedTextField( + value = cidade.value, + onValueChange = { + cidade.value = it + }, + modifier = Modifier + .padding(16.dp) + .fillMaxWidth(), + textStyle = TextStyle(color = Color.White), + shape = RoundedCornerShape(16.dp), + colors = OutlinedTextFieldDefaults.colors( + unfocusedBorderColor = Color.Yellow, + focusedBorderColor = Color.Cyan + ) + ) + +// ou + +shape = RoundedCornerShape(16.dp), + colors = TextFieldDefaults.textFieldColors ( + focusedIndicatorColor = Color.Yellow, + unfocusedIndicatorColor = Color.Cyan + ) +~~~ + +- no parâmetro shape utilizamos o valor RoundedCornerShape(16.dp), que aplica uma forma com cantos arredondados em 16.dp de raio. +- para mudar a cor das bordas, utilizado o parâmetro colors, que permite a mudança das cores de vários elementos do OutlinedTextField, utilizado o parâmetro unfoucusedBorderColor com o valor amarelo, para a borda sem o foco do usuário. Ao focar será aplicado o parâmetro focusedBorderColor para ciano. + +
+

3. CAIXAS DE SELEÇÃO

+
+ +- caixa de seleção ou `checkbox` é outro componente bastante utilizado na construção de uma aplicação Android. +- permite que um usuário possa selecionar uma ou mais opções em uma lista. +- adicionar um checkbox no final da aplicação. + - utilizado Spacer para separar a Checkbox do OutlinedTextField. + - obrigatoriamente, o Checkbox deve ter os parâmetros "checked" (valor booleano e representa se a caixa estará marcada (true) ou desmarcada (false)). + - no exemplo, na primeira composição a caixa estará desmarcada, pois foi passado o valor "false" para "checked". + +~~~kotlin +Spacer(modifier = Modifier.height(32.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Checkbox( + checked = false, + onCheckedChange = {}, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "Opção 1", + color = Color.White + ) + } +~~~ + +- criada uma Row para posicionar lado a lado a Checkbox e o texto Text, porém ficaram desalinhados. +- ajustar o alinhamento vertical da Row: + +~~~kotlin +Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + ) { + Checkbox( + checked = false, + onCheckedChange = {}, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "Opção 1", + color = Color.White + ) + } +~~~ + +## 3.1 Gerenciando o estado da caixa de seleção + +- inserir mais duas caixas de texto. + +~~~kotlin +Spacer(modifier = Modifier.height(32.dp)) + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + ) { + Checkbox( + checked = false, + onCheckedChange = {}, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "Kotlin", + color = Color.White + ) + } + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + ) { + Checkbox( + checked = false, + onCheckedChange = {}, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "Java", + color = Color.White + ) + } + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + ) { + Checkbox( + checked = false, + onCheckedChange = {}, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "C#", + color = Color.White + ) +} +~~~ + +- para que o Ckeckbox exiba a seleção, utilizaremos o state. + +~~~kotlin +Spacer(modifier = Modifier.height(32.dp)) + + var kotlin = remember { + mutableStateOf(true) + } + + var java = remember { + mutableStateOf(false) + } + + var cSharp = remember { + mutableStateOf(false) + } + + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + ) { + Checkbox( + checked = kotlin.value, + onCheckedChange = { kotlin.value = it }, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "Kotlin", + color = Color.White + ) + } + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + ) { + Checkbox( + checked = java.value, + onCheckedChange = { java.value = it }, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "Java", + color = Color.White + ) + } + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + ) { + Checkbox( + checked = cSharp.value, + onCheckedChange = { cSharp.value = it }, + colors = CheckboxDefaults.colors( + checkedColor = Color.White, + uncheckedColor = Color(0xffed145b) + ) + ) + Text( + text = "C#", + color = Color.White + ) + } +~~~ + +- criadas três variáveis que representarão o estado de cada Checkbox: para a variável kotlin, atribuído o valor true, e false para java e cSharp. +- atribuídos a cada parâmetro checked de cada Checkbox a variável correspondente. +- para o parâmetro onCheckedChange, atribuído o valor it, que neste caso é um valor booleano. + +## 3.2 Opções únicas com RadioButton + +- enquanto Checkbox permite a seleção múltipla em uma lista, o RadioButton é usado quando queremos que apenas uma opção seja selecionada. +- adicionar três RadioButton após os Checkbox. + +~~~kotlin +Spacer(modifier = Modifier.height(16.dp)) +Row(modifier = Modifier.fillMaxWidth()) { + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton( + selected = false, + onClick = { /*TODO*/ }, + colors = RadioButtonDefaults.colors( + selectedColor = Color.White, + unselectedColor = Color(0xffed145b) + ) + ) + Text(text ="MacOS", color = Color.White) + } + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton( + selected = false, + onClick = { /*TODO*/ }, + colors = RadioButtonDefaults.colors( + selectedColor = Color.White, + unselectedColor = Color(0xffed145b) + ) + ) + Text(text = "GNU/Linux", color = Color.White) + } + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton( + selected = false, + onClick = { /*TODO*/ }, + colors = RadioButtonDefaults.colors( + selectedColor = Color.White, + unselectedColor = Color(0xffed145b) + ) + ) + Text(text = "Windows 11", color = Color.White) + } +} +~~~ + +- criada uma Row, pois queremos que os RadioButton fiquem alinhados lado a lado, e criada uma Row em seu interior para colocarmos o RadioButton e um texto. +- para os RadioButton, utilizado o parâmetro color, cujo valor é a função RadioButtonDefaults.color(). +- ao criarmos um RadioButton, obrigatoriamente devemos fornecer o valor para o parâmetro selected, um booleano que define se o RadioButton estará marcado ou não. +- também temos que fornecer o parâmetro onClick, que executará as instruções para quando o RadioButton for clicado, marcando ou desmarcando a opção. + +## 3.3 Gerenciando o estado do RadioButton + +- o estado do RadioButton determina se ele está marcado ou desmarcado, basicamente. +- a diferença é que podemos ter apenas uma opção selecionada. + +~~~kotlin +Spacer(modifier = Modifier.height(16.dp)) + +var selecionado = remember { + mutableStateOf(0) +} + +Row(modifier = Modifier.fillMaxWidth()) { + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton( + selected = selecionado.value == 0, + onClick = { selecionado.value = 0 }, + colors = RadioButtonDefaults.colors( + selectedColor = Color.White, + unselectedColor = Color(0xffed145b) + ) + ) + Text(text = "MacOS", color = Color.White) + } + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton( + selected = selecionado.value == 1, + onClick = { selecionado.value = 1 }, + colors = RadioButtonDefaults.colors( + selectedColor = Color.White, + unselectedColor = Color(0xffed145b) + ) + ) + Text(text = "GNU/Linux", color = Color.White) + } + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton( + selected = selecionado.value == 2, + onClick = { selecionado.value = 2 }, + colors = RadioButtonDefaults.colors( + selectedColor = Color.White, + unselectedColor = Color(0xffed145b) + ) + ) + Text(text = "Windows 11", color = Color.White) + } +} +~~~ + +- neste exemplo, criamos uma variável de estado chamada "selecionado", que recebe inicialmente o valor zero e que será atualizado quando um RadioButton é clicado. +- o valor do parâmetro "selected" será o resultado da operação booleana que compara o valor da variável "selecionado" a um número atribuído ao RadioButton. +- o que o parâmetro "onClick" faz é atualizar o valor da variável de estado! + +## 3.4 Botões + +- o composable utilizado para criar botões é o Button. +- acrescentar um botão após a Row que mantém as Checkbox. + +~~~kotlin +Button(onClick = { /*TODO*/ }) { + Text(text = "Clique aqui!") + } +~~~ + +- botões possuem o parâmetro onClick, responsável por disparar alguma ação quando o botão for clicado pelo usuário. +- o texto do botão será adicionado utilizando outro componente, o Text. +- como todo componente no Jetpack Compose, é possível mudar sua aparência, como cor, tamanho, borda, forma etc: + +~~~kotlin +Button( + onClick = { /*TODO*/ }, + modifier = Modifier.size(width = 200.dp, height = 60.dp), + colors = ButtonDefaults.buttonColors(containerColor = Color.Magenta), + border = BorderStroke(width = 3.dp, color = Color.White) + ) { + Text(text = "Clique aqui!") + } +~~~ + +- além do Button, que é o botão mais tradicional, também podemos utilizar o OutlinedButton, que renderizará um botão sem preenchimento: + +~~~kotlin +Button( + onClick = { /*TODO*/ }, + modifier = Modifier.size(width = 200.dp, height = 60.dp), + colors = ButtonDefaults.buttonColors(containerColor = Color.Magenta), + border = BorderStroke(width = 3.dp, color = Color.White) + ) { + Text(text = "Clique aqui!") + } + OutlinedButton(onClick = { /*TODO*/ }) { + Text(text = "Outro botão") + } +~~~ + +## 3.5 Implementando o clique do botão + +- a ação do botão será executada através do parâmetro onClick, e pode ser escrita dentro das chaves do parâmetro ou escrever uma função separada. +- como exemplo, inserir a frase "Unidade Paulista" no OutlinedTextField assim que o Button for pressionado. + - para isso, lembrar que há uma variável de estado chamada "cidade",responsável por gerenciar o valor exibido na OutlinedTextField. + +~~~kotlin +Button( + onClick = { + cidade.value = "Unidade Paulista" + }, + modifier = Modifier.size(width = 200.dp, height = 60.dp), + colors = ButtonDefaults.buttonColors(containerColor = Color.Magenta), + border = BorderStroke(width = 3.dp, color = Color.White) + ) { + Text(text = "Clique aqui!") + } + OutlinedButton(onClick = { /*TODO*/ }, colors = ButtonDefaults.buttonColors()) { + Text(text = "Outro botão") + } +~~~ + +- implementar o clique no OutlinedButton para limpar o OutlinedTextField. + +~~~kotlin +Button( + onClick = { + cidade.value = "Unidade Paulista" + }, + modifier = Modifier.size(width = 200.dp, height = 60.dp), + colors = ButtonDefaults.buttonColors(containerColor = Color.Magenta), + border = BorderStroke(width = 3.dp, color = Color.White) + ) { + Text(text = "Clique aqui!") + } + OutlinedButton(onClick = { + cidade.value = "" + }) { + Text(text = "Outro botão") + } +~~~ + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo7a.md b/fase01/trilha-android/capitulo7a.md new file mode 100644 index 0000000..b52aca5 --- /dev/null +++ b/fase01/trilha-android/capitulo7a.md @@ -0,0 +1,619 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 7A: Uso de Cards e Imagens.

+
+ +
+

1. USO DE CARDS E IMAGENS

+
+ +## 1.1 Apresentação do projeto + +- aplicação para cálculo de IMC. + +
+
+Layout da Aplicação.
+
+

+ +
+
+Estrutura do projeto.
+
+ +- Surface: envolverá toda a Activity. +- Box: ocupará todo o tamanho da Activity; escolhida para facilitar o posicionamento do Card com o resultado na parte inferior. +- Column1: organizará verticalmente a Column2, que será o cabeçalho, e a Column3, que será ocupado pelo formulário. +- Column2: cabeçalho da Activity. +- Column3: Formulário. +- Card Formulário: componente Card, usado para estilizar o formulário. +- Card Resultado: resultado do cálculo de IMC. + +> Criado projeto [IMC App](./projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/MainActivity.kt) no Android Studio. + +- estrutura inicial: + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + IMCAppTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + IMCScreen() + } + } + } + } +} + +@Composable +fun IMCScreen() { + Box( + modifier = Modifier.fillMaxSize() + ) { + Column( + modifier = Modifier + .fillMaxWidth() + ) { + // ---- header --------- + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .height(160.dp) + ) { + + } + // --- formulário + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp) + ) { + + } + } + // -- Card Resultado + } +} +~~~ + +## 1.2 Inserindo imagens no aplicativo + +- as imagens utilizadas nos aplicativos Android podem estar disponíveis no pacote da aplicação na forma de recursos, ou obtê-las através de um repositório na Internet. +- no projeto: + - trabalhar com as imagens como recursos da aplicação, ou seja, armazenar as imagens que utilizaremos na pasta "drawable" do projeto. Esta pasta se encontra na pasta "res". + - o layout do projeto sugere [esta imagem](https://www.flaticon.com/free-icon/bmi_10476452?term=bmi&page=1&position=6&origin=search&related_id=10476452), encontrada no site [Flaticon](https://www.flaticon.com/). +- requisitos para o nome da imagem: + - grafado somente com letras minúsculas. + - sem caracteres especiais. + - sem espaço em branco. + - não iniciar com números ou caracteres especiais. +- a inclusão de imagens em um projeto Jetpack Compose no Android é feita com o `composable Image`. + +~~~kotlin +// ---- header --------- +Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .height(160.dp) +) { + Image( + painter = painterResource(id = R.drawable.bmi_256), + contentDescription = "logo" + ) +} +~~~ + +- na função de composição Image, é necessário fornecer dois parâmetros: + - painter: especifica qual imagem será usada pelo Image, através do painterResource, que indica a imagem local que será usada. + - contentDescription: utilizada para descrever a imagem. O uso deste parâmetro torna a aplicação mais acessível para pessoas que não podem ver a imagem. + +- ajustar a posição e tamanho da imagem, para que não fique colada ao topo da Activity. + +~~~kotlin +// ---- header --------- +Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .height(160.dp) +) { + Image( + painter = painterResource(id = R.drawable.bmi_256), + contentDescription = "logo", + modifier = Modifier + .size(60.dp) + .padding(top = 16.dp) + ) +} +~~~ + +## 1.3 Configurando o arquivo [colors.xml](./projects/IMCApp/app/src/main/res/values/colors.xml) + +- no layout, será utilizada a cor vermelha (código hexadecimal ED145B). +- cadastrar essa cor no arquivo "colors" do projeto (values > colors.xml). + - recurso utilizado para definir e gerenciar todas as cores utilizadas no projeto. + - através dele podemos criar toda a identidade de cores do aplicativo, tornando fácil e rápido a troca das cores em caso de mudança. + - no arquivo colors.xml definimos as cores utilizando o padrão XML, onde temos uma tag que identifica a cor e o valor desta tag que é o código hexadecimal da cor. + +~~~xml + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + #FFED145B + +~~~ + +- trocar a cor de background da Column que contém a imagem para "vermelho_fiap" e acrescentar o título do aplicativo. + +~~~kotlin +// ---- header --------- +Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .height(160.dp) + .background(colorResource(id = R.color.vermelho_fiap)) +) { + Image( + painter = painterResource(id = R.drawable.bmi_256), + contentDescription = "logo", + modifier = Modifier + .size(60.dp) + .padding(top = 16.dp) + ) + Text( + text = "Calculadora IMC", + fontSize = 24.sp, + color = Color.White, + fontWeight = FontWeight.Bold, + modifier = Modifier.padding(top = 12.dp, bottom = 24.dp) + ) +} +~~~ + +## 1.4 Trabalhando com Cards + +- o composable Card permite a criação de uma superfície elevada que conterá o conteúdo. +- frequentemente utilizamos o Card para agrupar conteúdo que estão relacionados e fornecer uma aparência mais organizada. +- criar um Card que organizará os componentes do formulário. + +~~~kotlin +// --- formulário +Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp) +) { + Card( + modifier = Modifier + .offset(y = (-30).dp) + .fillMaxWidth() + .height(300.dp), + colors = CardDefaults + .cardColors(containerColor = Color(0xfff9f6f6)), + elevation = CardDefaults.cardElevation(4.dp) + ) { + + } +} +~~~ + +- o Modifier do Card está utilizando as funções: + - offset(y = (-30).dp): desloca o card no eixo y. O valor negativo deve ser colocado entre parênteses, e movimenta o Card para cima, deixando-o sobreposto à Column do cabeçalho. + - fillMaxWidth(): determina que o Card ocupe a largura total do componente pai (Column). + - height(300.dp): altura do Card, 300.dp. Esse valor é temporário, usado apenas para visualizar o Card mesmo que ele ainda não tenha conteúdo. +- além do modificador, há os parâmetros: + - colors: pode definir a cor do Card ou do seu conteúdo. + - elevation: este parâmetro insere uma sombra sob o Card, causando o efeito de elevação. + +
+

2. MUDANDO A APARÊNCIA DE UM CARD

+
+ +- é possível alterar a forma do Card utilizando o parâmetro shape, além de colocar borda utilizando o parâmetro border. + +~~~kotlin +// --- formulário +Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp) +) { + Card( + modifier = Modifier + .offset(y = (-30).dp) + //.fillMaxWidth() + //.height(300.dp), + .size(250.dp), + colors = CardDefaults + .cardColors(containerColor = Color(0xfff9f6f6)), + elevation = CardDefaults.cardElevation(4.dp), + shape = CircleShape, + border = BorderStroke(width = 4.dp, color = Color.Black) + ) { + + } +} +~~~ + +- no código acima: + - comentados os modificadores fillMaxWidth() e height(300.dp), para definir um tamanho fixo de 250.dp (função modificadora size(25.dp)), necessário para o uso do shape. + - adicionado o parâmetro shape com o valor "CircleShape", para que o Card ficasse circular. + - inserida borda com parâmetro border, que recebe como valor a função BorderStroke, que precisa da largura e cor da borda, utilizando os parâmetros width e color. + +## 2.1 Ajustando o Gradle do projeto + +- o `Gradle` é uma ferramenta que automatiza o processo de construção ("build") do projeto. +- é responsável pela criação de toda a estrutura de pastas necessárias ao projeto, além do download e gerenciamento das dependências do projeto, facilitando a inclusão das bibliotecas e módulos externos que utilizamos para criar nossas aplicações. +- neste projeto estamos utilizando o Material Design 3, uma biblioteca de componentes e diretrizes lançadas pelo Google para o Jetpack Compose que torna a IU mais moderna e intuitiva ao usuário. + - atualizar a versão do plugin de suporte ao Kotlin e do compilador de extensões do Compose. + - localizar os arquivos build.gradle (Project:IMC_App) e build.gradle(Module :app). + - abrir o arquivo build.gradle (Project: IMC_App), e alterar a versão do plugin do Kotlin para “1.8.0”. + +~~~kotlin +plugins { + id 'com.android.application' version '8.0.0' apply false + id 'com.android.library' version '8.0.0' apply false +// id 'org.jetbrains.kotlin.android' version '1.7.20' apply false + id 'org.jetbrains.kotlin.android' version '1.8.0' apply false +} +~~~ + + - no arquivo build.gradle (Module :app), localizar o bloco ComposeOptions e o deixar como a listagem abaixo: + +~~~kotlin +composeOptions { + // kotlinCompilerExtensionVersion '1.3.2' + kotlinCompilerExtensionVersion '1.4.0' +} +~~~ + +- após ajustes no Gradle, sincronizar as alterações para que sejam aplicadas corretamente no processo de compilação do projeto. + +## 2.2 Inserindo o formulário no Card + +- para construção do formulário da aplicação, utilizar composables como Text, OutlinedTextField e Button. + +~~~kotlin +// --- formulário +Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp) +) { + Card( + modifier = Modifier + .offset(y = (-30).dp) + .fillMaxWidth(), + //.height(300.dp), + colors = CardDefaults + .cardColors(containerColor = Color(0xfff9f6f6)), + elevation = CardDefaults.cardElevation(4.dp) + ) { + Column( + modifier = Modifier.padding( + vertical = 16.dp, + horizontal = 32.dp + ) + ) { + Text( + text = "Seus dados", + modifier = Modifier.fillMaxWidth(), + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = colorResource(id = R.color.vermelho_fiap), + textAlign = TextAlign.Center + ) + Spacer(modifier = Modifier.height(32.dp)) + Text( + text = "Seu peso", + modifier = Modifier.padding(bottom = 8.dp), + fontSize = 12.sp, + fontWeight = FontWeight.Normal, + color = colorResource(id = R.color.vermelho_fiap) + ) + OutlinedTextField( + value = "", + onValueChange = {}, + modifier = Modifier.fillMaxWidth(), + placeholder = { + Text(text = "Seu peso em Kg.") + }, + colors = OutlinedTextFieldDefaults.colors( + unfocusedBorderColor = colorResource(id = R.color.vermelho_fiap), + focusedBorderColor = colorResource(id = R.color.vermelho_fiap) + ), + shape = RoundedCornerShape(16.dp), + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) + ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = "Sua altura", + modifier = Modifier.padding(bottom = 8.dp), + fontSize = 12.sp, + fontWeight = FontWeight.Normal, + color = colorResource(id = R.color.vermelho_fiap) + ) + OutlinedTextField( + value = "", + onValueChange = {}, + modifier = Modifier.fillMaxWidth(), + placeholder = { + Text( + text = "Sua altura em cm." + ) + }, + colors = OutlinedTextFieldDefaults.colors( + unfocusedBorderColor = colorResource(id = R.color.vermelho_fiap), + focusedBorderColor = colorResource(id = R.color.vermelho_fiap) + ), + shape = RoundedCornerShape(16.dp), + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Decimal) + ) + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = {}, + modifier = Modifier + .fillMaxWidth() + .height(48.dp), + shape = RoundedCornerShape(16.dp), + colors = ButtonDefaults.buttonColors(containerColor = colorResource(id = R.color.vermelho_fiap)) + ) { + Text( + text = "CALCULAR", + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 14.sp + ) + } + } + } +} +~~~ + +## 2.3 Inserindo o Card Resultado + +~~~kotlin +// --- card resultado +Card( + modifier = Modifier + .fillMaxWidth() + .height(200.dp) + .padding(horizontal = 32.dp, vertical = 24.dp) + .align(Alignment.BottomCenter), + colors = CardDefaults.cardColors(containerColor = Color(0xff329F6B)), + elevation = CardDefaults.cardElevation(4.dp), + //border = BorderStroke(width = 1.dp, Color(0xffed145b)) +) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .padding(horizontal = 32.dp) + .fillMaxSize() + ) { + Column() { + Text( + text = "Resultado", + color = Color.White, + fontSize = 14.sp + ) + Text( + text = "Peso Ideal.", + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 20.sp + ) + } + Text( + text = "23.2", + modifier = Modifier.fillMaxWidth(), + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 36.sp, + textAlign = TextAlign.End + ) + } +} +~~~ + +## 2.4 Gerenciando o estado da aplicação + +- criar as variáveis responsáveis por manter o estado dos componentes da tela, sendo: + - Peso: guardará o peso informado pelo usuário em quilos. + - Altura: guardará a altura do usuário em centímetros. + - Imc: armazenará o valor do IMC calculado para o usuário. + - Statusimc: armazenará o status do IMC calculado para o usuário. + +~~~kotlin +@Composable +fun IMCScreen() { + + var peso = remember { + mutableStateOf("") + } + + var altura = remember { + mutableStateOf("") + } + + var imc = remember { + mutableStateOf(0.0) + } + + var statusImc = remember { + mutableStateOf("") + } + + Box( + //...) +} +~~~ + +- essas variáveis serão atribuídas ao parâmetro "value" dos seus composables. +- também é necessário implementar a função "onValueChange" dos componentes OutlinedTextField, para que as variáveis sejam atualizadas durante a digitação do usuário. + +~~~kotlin +OutlinedTextField( + value = peso.value, + onValueChange = { peso.value = it }, + modifier = Modifier.fillMaxWidth(), + placeholder = { + Text(text = "Seu peso em Kg.") + }, +~~~ + +~~~kotlin +OutlinedTextField( + value = altura.value, + onValueChange = { altura.value = it }, + modifier = Modifier.fillMaxWidth(), + placeholder = { + Text( + text = "Sua altura em cm." + ) + }, +~~~ + +## 2.5 Funções para calcular o IMC + +
+ +IMC | Classificação +-----|--------------------- +Abaixo de 18,5 | Abaixo do peso. +> 18,5 e < 25 | Peso ideal. +>= 25 e < 30 | Levemente acima do peso. +>= 30 e < 35 | Obesidade grau I. +>= 35 e < 40 | Obesidaede grau II. +> 40 | Obesidade grau III. + +
+ +- criar um [novo arquivo](./projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/CalculoIMC.kt) na pasta "br.com.fiap.imcapp", com o nome CalculoIMC, em que teremos duas funções: calcularIMC() e determinarClassificacaoIMC. +- passo a passo: + - clicar com o botão direito do mouse na pasta br.com.fiap.imcapp, selecionar a opção New e Kotlin Class/File. + - na caixa de diálogo "New Kotlin Class/File", marcar a opção File e digitar o nome no arquivo CalculoIMC e pressionar Enter. + - escrever no arquivo CalculoIMC: + +~~~kotlin +package br.com.fiap.imcapp + +import kotlin.math.pow + +fun calcularIMC(altura: Double, peso: Double) : Double { + return peso / (altura / 100).pow(2.0) +} +~~~ + +- no código acima, criamos uma função utilizando a palavra reservada fun, de nome calcularIMC, a qual recebe dois argumentos: "peso" e "altura", ambos do tipo Double. +- essa função retornará o resultado da divisão do peso pelo quadrado da altura. +- chamar essa função quando o usuário clicar no botão: + +~~~kotlin +Button( + onClick = { + imc.value = calcularIMC( + altura = altura.value.toDouble(), + peso = peso.value.toDouble() + // Casting de String para Double + ) + }, +~~~ + +- atribuir essa variável imc ao parâmetro "value" do composable Text, para que o usuário veja o resultado. + +~~~kotlin +Text( + text = imc.value.toString(), + modifier = Modifier.fillMaxWidth(), + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 36.sp, + textAlign = TextAlign.End +) +~~~ + +- ajustar a exibição para apenas 1 casa decimal: + - utilizar a `função format` da classe String. + - o método format recebe dois parâmetros: + - o primeiro define o formato da exibição (que no caso foi "%.1f", onde o símbolo de porcentagem indica qualquer valor numérico antes do ponto decimal. O 1f indica que o resultado será apresentado com uma casa decimal). + +~~~kotlin +Text( + text = String.format("%.1f", imc.value), + modifier = Modifier.fillMaxWidth(), + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 36.sp, + textAlign = TextAlign.End +) +~~~ + +- implementar a função que determina a classificação o IMC do usuário, devendo atender à tabela. +- abrir o arquivo CalculoIMC e acrescentar a função determinarClassificacaoIMC(): + - a função determinarClassificacaoIMC() recebe o valor do IMC do usuário e retorna uma expressão String de acordo com as condicionais. + +~~~kotlin +fun determinarClassificacaoIMC(imc: Double): String { + return if(imc < 18.5) { + "Abaixo do peso" + } else if (imc >= 18.5 && imc < 25.0) { + "Peso Ideal" + } else if (imc >= 25.0 && imc < 30.0) { + "Levemente acima do peso" + } else if (imc >= 30.0 && imc < 35.0) { + "Obesidade Grau I" + } else if (imc >= 35.0 && imc < 40.0) { + "Obesidade Grau II" + } else {"Obesidade Grau III"} +} +~~~ + +- o retorno dessa função deve ser atribuído à variável de estado statusImc: + +~~~kotlin +Button( + onClick = { + imc.value = calcularIMC( + altura = altura.value.toDouble(), + peso = peso.value.toDouble() + ) + statusImc.value = determinarClassificacaoIMC(imc.value) + }, + modifier = Modifier + .fillMaxWidth() + .height(48.dp), + shape = RoundedCornerShape(16.dp), + colors = ButtonDefaults.buttonColors(containerColor = colorResource(id = R.color.vermelho_fiap)) +) +~~~ + +- em seguida, a variável statusImc deve ser atribuída ao parâmetro value do composable Text responsável por exibir a classificação de IMC do usuário. + +~~~kotlin +Text( + text = statusImc.value, + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 20.sp +) +~~~ + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo8a.md b/fase01/trilha-android/capitulo8a.md new file mode 100644 index 0000000..1e3d26b --- /dev/null +++ b/fase01/trilha-android/capitulo8a.md @@ -0,0 +1,986 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 8A: Navegação e Fluxo entre telas.

+
+ +
+

1. NAVEGAÇÃO E FLUXO ENTRE TELAS

+
+ +- nas abordagens anteriores ao Jetpack Compose, a construção de uma aplicação Android consistia na elaboração de diversas telas, que chamamos de `Activity`: cada uma dessas telas era responsável por uma funcionalidade do sistema, como uma tela para login, outra para listar os produtos, outra para ver os detalhes de um produto etc. +- outro recurso bastante utilizado na construção de IU Android tradicional é o uso de `Fragment`, que consiste em criar na Activity fragmentos de tela, que podem ser reutilizadas em outras telas, tornando o desenvolvimento da aplicação mais flexível. Esses fragmentos podem ser atualizados ou até substituídos de acordo com a interação do usuário. +- com a utilização do Jetpack Compose, a abordagem que utilizamos é chamada de `Single Activity`, em que temos apenas uma Activity que será responsável por renderizar as diferentes telas ou destinos. A navegação entre as diferentes telas é feita através da criação de rotas! + +## 1.1 Navegação + +- o Jetpack Compose possui uma biblioteca chamada `Navigation`, que fornece os recursos necessários para navegação entre telas em uma aplicação Android. +- essa navegação ocorre através da configuração de rotas, que indicam quais funções devem ser compostas de acordo com algum evento do usuário ou da própria aplicação. +- através do Navigation é possível transportarmos dados de uma tela para outra, além de criarmos efeitos visuais durante a transição entre telas. + +### 1.1.1 Adicionandoa biblioteca do Navigation +- criar um projeto no Android Studio chamado [Navegando entre telas](./projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/). +- apagar todas as funções, mantendo apenas a classe MainActivity e a função onCreate(). +- para utilizar a biblioteca Navigation é necessário adicionar uma dependência ao `arquivo build.gradle`. + +~~~kotlin +dependencies { + implementation 'androidx.core:core-ktx:1.8.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + // Dependência do Navigation + 𝗶𝗺𝗽𝗹𝗲𝗺𝗲𝗻𝘁𝗮𝘁𝗶𝗼𝗻 '𝗮𝗻𝗱𝗿𝗼𝗶𝗱𝘅.𝗻𝗮𝘃𝗶𝗴𝗮𝘁𝗶𝗼𝗻:𝗻𝗮𝘃𝗶𝗴𝗮𝘁𝗶𝗼𝗻-𝗰𝗼𝗺𝗽𝗼𝘀𝗲:𝟮.𝟲.𝟬' +} +~~~ + +- após a alteração, clicar em sync now, para que o Gradle faça o download e a configuração do Navigation no projeto. + +### 1.1.2 Telas do projeto +- com a biblioteca do Navigation configurada, criar diferentes telas para testar a navegação. Ao final, o projeto deverá conter 4 telas que terão o seguinte fluxo de navegação: + +
+
+Esquema de navegação do aplicativo.
+
+
+ +- vale lembrar que ***na abordagem tradicional de construção de aplicativos Android***, precisávamos criar uma Activity para cada tela. +- ***com Jetpack Compose***, aplicamos o conceito de `Single Activity`, então, a aplicação terá apenas uma Activity, que é a MainActivity, e teremos os composables que implementam toda a IU de cada tela. + - o papel do Navigation será implementar o fluxo de navegação entre as telas, além de permitir efeitos de transição entre elas. + - por uma questão de organização e padronização, criar cada um dos composables que implementam as telas em arquivos diferentes, melhorando a componentização e reuso. + + +### 1.1.2.1 Passo a passo: +- clicar com o botão direito do mouse no pacote br.com.fiap.navegandoentretelas, apontar para New e clicar na opção Package. +- na janela NewPackage, adicionar a palavra "screens", e pressionar Enter. +- criar a primeira tela no arquivo LoginScreen; clicar com o botão direito do mouse no pacote screens, apontar para New e clicar na opção Kotlin Class/File. Digitar o nome do arquivo e selecionr a opção File. +- construir uma tela simples, pois o foco é entender como funciona a navegação entre telas no Jetpack Compose. + +~~~kotlin +package br.com.fiap.navegandoentretelas.sreens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +@Composable +fun LoginScreen() { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFED145B)) + .padding(32.dp) + ){ + Text( + text = "LOGIN", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { /*TODO*/ }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "ENTRAR", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +- para executar a aplicação no emulador e ver o resultado da tela que acabamos de descrever, abrir o arquivo “MainActivity.kt” e adicionar a chamada para a função LoginScreen. + +~~~kotlin +package br.com.fiap.navegandoentretelas + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.ui.Modifier +import br.com.fiap.navegandoentretelas.sreens.LoginScreen +import br.com.fiap.navegandoentretelas.ui.theme.NavegandoEntreTelasTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + LoginScreen() + } + } + } + } +} +~~~ + +- criar os outros arquivos da aplicação. +- na pasta screens do projeto, criar três arquivos: + +### a) arquivo MenuScreen.kt: + +~~~kotlin +@Composable +fun MenuScreen() { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF2C4EC7)) + .padding(32.dp) + ){ + Text( + text = "MENU", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.Center) + ) { + Button( + onClick = { /*TODO*/ }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Perfil", fontSize = 20.sp, color = Color.Blue) + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { /*TODO*/ }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Pedidos", fontSize = 20.sp, color = Color.Blue) + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { /*TODO*/ }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Sair", fontSize = 20.sp, color = Color.Blue) + } + } + } +} +~~~ + +### b) arquivo PerfilScreen.kt: + +~~~kotlin +@Composable +fun PerfilScreen() { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF329F6B)) + .padding(32.dp) + ){ + Text( + text = "PERFIL", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { /*TODO*/ }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +### c) arquido PedidosScreen.kt: + +~~~kotlin +@Composable +fun PedidosScreen() { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFAFA9A9)) + .padding(32.dp) + ){ + Text( + text = "PEDIDOS", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { /*TODO*/ }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +### 1.1.3 Configurando o Navigation +- com as telas criadas, configurar a navegação entre elas. +- para isso, utilizar a NavController, responsável por controlar o fluxo de navegação em uma aplicação Android. + - é uma função com estado que observa a pilha de composables que criam as telas (essa pilha é chamada de `backstack` - nessa "pilha", o cartão que está no topo é o cartão visível, ou seja, aquele que está sendo utilizado. Os outros estão em segundo plano e não estão visíveis.). + - em nosso aplicativo, pensar na MainActivity como sendo a mesa onde os cartões estão sendo manipulados. O composable que está visível ao usuário é o que está no topo da pilha. Os outros composables estão em segundo plano esperando para serem chamados. + - a navegação consiste em trazer para a frente da pilha o composable com o qual se deseja trabalhar. Também é possível utilizar o botão "voltar" do dispositivo, para retornar ao último composable acessado. + +- a configuração da NavController será na MainActivity, ponto de partida da aplicação. +- implementar no método onCreate da MainActivity: + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + // criando uma instancia do NavController através da função rememberNavController + 𝘃𝗮𝗹 𝗻𝗮𝘃𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿 = 𝗿𝗲𝗺𝗲𝗺𝗯𝗲𝗿𝗡𝗮𝘃𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿() + + // utilizando a função NavHost, responsável por gerenciar as rotas para as telas que devem ser exibidas + 𝗡𝗮𝘃𝗛𝗼𝘀𝘁( + 𝗻𝗮𝘃𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿 = 𝗻𝗮𝘃𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿, + 𝘀𝘁𝗮𝗿𝘁𝗗𝗲𝘀𝘁𝗶𝗻𝗮𝘁𝗶𝗼𝗻 = "𝗹𝗼𝗴𝗶𝗻" + ){ + // indicando quais são os destinos navegáveis pelo NavHost: + 𝙘𝙤𝙢𝙥𝙤𝙨𝙖𝙗𝙡𝙚(𝗿𝗼𝘂𝘁𝗲 = "𝗹𝗼𝗴𝗶𝗻"){ 𝗟𝗼𝗴𝗶𝗻𝗦𝗰𝗿𝗲𝗲𝗻() } + 𝙘𝙤𝙢𝙥𝙤𝙨𝙖𝙗𝙡𝙚(𝗿𝗼𝘂𝘁𝗲 = "𝗺𝗲𝗻𝘂") { 𝗠𝗲𝗻𝘂𝗦𝗰𝗿𝗲𝗲𝗻() } + 𝙘𝙤𝙢𝙥𝙤𝙨𝙖𝙗𝙡𝙚(𝗿𝗼𝘂𝘁𝗲 = "𝗽𝗲𝗱𝗶𝗱𝗼𝘀"){ 𝗣𝗲𝗱𝗶𝗱𝗼𝘀𝗦𝗰𝗿𝗲𝗲𝗻() } + 𝙘𝙤𝙢𝙥𝙤𝙨𝙖𝙗𝙡𝙚(𝗿𝗼𝘂𝘁𝗲 = "𝗽𝗲𝗿𝗳𝗶𝗹"){ 𝗣𝗲𝗿𝗳𝗶𝗹𝗦𝗰𝗿𝗲𝗲𝗻() } + } + } + } + } + } +} +~~~ + +- o NavHost utiliza o navController, que possui a backstack e o startDestination, que é utilizado para indicar qual será a tela que deverá ser exibida quando o aplicativo for aberto pela primeira vez, que neste caso é a tela de login. +- nas linhas 15 a 18, indicados quais são os destinos navegáveis pelo NavHost”; essa função recebe dois parâmetros: + - Route: utiliza um identificador único para cada destino que será acessado. Esse identificador é criado pelo desenvolvedor. + - Função lambda: onde informamos qual será a tela que deverá ser renderizada. +- para acessar a tela do Menu ao pressionar o botão 'ENTRAR' na tela de Login, é necessário ter acesso ao NavController. Portanto, alterar a função 'LoginScreen' para que possamos enviar o 'NavController' e implementar a navegação corretamente. + +~~~kotlin +@Composable +fun LoginScreen(navController: NavController) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFED145B)) + .padding(32.dp) + ){ + Text( + text = "LOGIN", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "ENTRAR", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +- no código foi adicionado um novo parâmetro à função "LoginScreen", chamado navController, que é do tipo "NavController". + - significa que, ao chamar a função "LoginScreen", é necessário fornecer um objeto "NavController". Dessa forma, a "LoginScreen" terá acesso à backstack e poderá realizar a navegação corretamente. +- no clique do botão foi adicionado uma instrução que utiliza o método navigate do NavController, para informar o identificador da tela que deverá ser acessada. +- antes de executar a aplicação, ajustar a chamada da função LoginScreen, devendo passar o NavController na MainActivity. + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "login" + ) { + composable(route = "login") { LoginScreen(navController) } + composable(route = "menu") { MenuScreen() } + composable(route = "pedidos") { PedidosScreen() } + composable(route = "perfil") { PerfilScreen() } + } + } + } + } + } + } +~~~ + +- ´para que a funcionalidade de navegação seja possível em todas as telas da aplicação, adicionar o mesmo parâmetro em todas as outras funções de tela da aplicação e implementar o clique de todos os botões para que a navegação ocorra corretamente. + +### a) arquivo MenuScreen.kt: + +~~~kotlin +@Composable +fun MenuScreen(navController: NavController) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF2C4EC7)) + .padding(32.dp) + ){ + Text( + text = "MENU", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.Center) + ) { + Button( + onClick = { navController.navigate("perfil") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Perfil", fontSize = 20.sp, color = Color.Blue) + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { navController.navigate("pedidos") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Pedidos", fontSize = 20.sp, color = Color.Blue) + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { navController.navigate("login") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Sair", fontSize = 20.sp, color = Color.Blue) + } + } + } +} +~~~ + +### b) arquivo PerfilScreen.kt: + +~~~kotlin +@Composable +fun PerfilScreen(navController: NavController) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF329F6B)) + .padding(32.dp) + ){ + Text( + text = "PERFIL", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +### c) arquivo PedidosScreen.kt: + +~~~kotlin +@Composable +fun PedidosScreen(navController: NavController) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFAFA9A9)) + .padding(32.dp) + ){ + Text( + text = "PEDIDOS", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +### d) arquivo MainActivity.kt: + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "login" + ) { + composable(route = "login") { LoginScreen(navController) } + composable(route = "menu") { MenuScreen(navController) } + composable(route = "pedidos") { PedidosScreen(navController) } + composable(route = "perfil") { PerfilScreen(navController) } + } + } + } + } + } + } +~~~ + +## 1.2 Passagem de parâmetros entre telas + +- ao trabalhar com diversas telas, é comum precisarmos transportar dados de uma tela para outra. +- quando utilizamos a biblioteca Navigation, isso pode ser feito de maneira simples. + +### 1.2.1 Parâmetros obrigatórios +- vamos enviar uma String para a tela PerfilScreen quando o botão "Perfil" da tela Menu for pressionado. +- logo, acrescentar um parâmetro do tipo String na função PerfilScreen. + +~~~kotlin +@Composable +fun PerfilScreen(navController: NavController, nome: String) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF329F6B)) + .padding(32.dp) + ){ + Text( + text = "PERFIL - $nome", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +- na função onCreate da MainActivity, acrescentar o parâmetro que deverá ser fornecido para a rota. + +~~~kotlin +override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "login" + ) { + composable(route = "login") { + LoginScreen(navController) } + composable(route = "menu") { + MenuScreen(navController) } + composable(route = "pedidos") { + PedidosScreen(navController) } + composable(route = "perfil/{nome}") { + PerfilScreen(navController) + } + } + } + } + } +} +~~~ + +- na função composable, recebemos o parâmetro NavBackStackEntry, que contém o valor do parâmetro que está sendo passado no path da rota. +- recuperar este valor e passar na chamada para a função PerfilScreen. + +~~~kotlin +override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "login" + ) { + composable(route = "login") { + LoginScreen(navController) } + composable(route = "menu") { + MenuScreen(navController) } + composable(route = "pedidos") { + PedidosScreen(navController) } + composable(route = "perfil/{nome}") { + val nome: String? = + it.arguments?.getString("nome", "") + PerfilScreen(navController, nome!!) + } + } + } + } + } + } +~~~ + +- ajustar o evento de clique da tela MenuScreen, para que passe o parâmetro "nome" para a tela PerfilScreen. + +~~~kotlin +@Composable +fun MenuScreen(navController: NavController) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF2C4EC7)) + .padding(32.dp) + ){ + Text( + text = "MENU", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.Center) + ) { + Button( + onClick = { + navController.navigate("perfil/Mônica") + }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Perfil", fontSize = 20.sp, color = Color.Blue) + } +~~~ + +> estamos passando o valor do parâmetro "nome" de forma manual, mas poderíamos obter esse dado de qualquer outra forma. + +### 1.2.2 Parâmetros opcionais +- nem sempre a passagem de parâmetros é obrigatória; às vezes o parâmetro pode ser opcional. +- configurar a tela Pedidos, de modo que a passagem de parâmetro seja opcional. +- começar ajustando o código do NavHost para a tela Pedidos no arquivo MainActivity. + +~~~kotlin +composable( + route = "pedidos?cliente={cliente}", + arguments = listOf(navArgument(name = "cliente") { + defaultValue = "Sem cliente" + }) + ) { + PedidosScreen(navController, it.arguments?.getString("cliente")) + } +~~~ + +- a diferença entre a abordagem anterior e essa é a forma como o parâmetro é passado, que lembra bastante o uso de "queryString". +- outra mudança importante é o parâmetro arguments, que devemos colocar um valor padrão, para caso o valor não for fornecido. +- no exemplo anterior, utilizamos o valor de "defaultValue" para "Sem cliente", ou seja, se ao chamarmos a tela Pedidos não fornecermos o valor, será utilizado "Sem cliente". +- adicionar um parâmetro String na função PedidosScreen no arquivo PedidosScreen.kt, e utilizar na função o argumento recebido. + +~~~kotlin +@Composable +fun PedidosScreen(navController: NavController, cliente: String?) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFAFA9A9)) + .padding(32.dp) + ){ + Text( + text = "PEDIDOS - $cliente", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} +~~~ + +- quando executamos a aplicação, não passamos nenhum argumento para a tela Pedidos, então, foi utilizado o valor padrão "Sem cliente". +- fazer uma pequena alteração no botão que abre a tela Pedido no arquivo MenuScreen.kt para inserir o valor do parâmetro: + +~~~kotlin +Button( + onClick = { navController.navigate("pedidos?cliente=FIAP") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Pedidos", fontSize = 20.sp, color = Color.Blue) + } +~~~ + +### 1.2.3 Passando múltiplos parâmetros +- é possível passar múltiplos valores entre as telas e definir o tipo do dado que será passado. +- para isso, utilizamos o `parâmetro arguments` da função composable. +- alterar o código da MainActivity, para que possamos enviar os argumentos nome como um valor do tipo String e a idade como um valor do tipo Int para a tela de perfil. + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "login", + ) { + composable(route = "login") { + LoginScreen(navController) + } + composable(route = "menu") { + MenuScreen(navController) + } + composable(route = "pedidos") { + PedidosScreen(navController) + } + composable( + route = "perfil/{nome}/{idade}", + arguments = listOf( + navArgument("nome") { + type = NavType.StringType + }, + navArgument("idade") { + type = NavType.IntType + } + ) + ) { + val nome: String? = + it.arguments?.getString("nome", "") + val idade: Int? = + it.arguments?.getInt("idade", 0) + PerfilScreen(navController, nome!!, idade!!) + } + } + } + } + } + } + } +~~~ + +- através do parâmetro arguments da função composable, é possível enviar uma lista de argumentos. +- o path do argumento route deverá contemplar todos os argumentos que se deseja passar. +- na função PerfilScreen, adicionar o parâmetro "idade" na lista de argumentos e adicioná-lo ao composable Text. + +~~~kotlin +@Composable +fun PerfilScreen( + navController: NavController, + nome: String, + idade: Int +) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF329F6B)) + .padding(32.dp) + ){ + Text( + text = "PERFIL - $nome tem $idade anos.", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text( + text = "Voltar", + fontSize = 20.sp, + color = Color.Blue + ) + } + } +} +~~~ + +- na função MenuScreen, alterar o parâmetro onClick do botão "Perfil", para acrescentar a idade na rota destino. + +~~~kotlin +@Composable +fun MenuScreen(navController: NavController) { + Box( + modifier = Modifier + .fillMaxSize() + .background(Color(0xFF2C4EC7)) + .padding(32.dp) + ) { + Text( + text = "MENU", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.Center) + ) { + Button( + onClick = { + navController.navigate("perfil/Pedro/27") + }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { +~~~ + +## 1.3 Animação entre transição de telas + +- a troca entre as telas em uma aplicação Android ocorre de forma muito simples. +- permite incluir animação entre a transição para tornar a experiência do usuário mais agradável. + +### 1.3.1 Configuração da animação +- é necessário adicionar uma biblioteca externa chamada `Accompanist Navigation Animation`. +- adicionar na sessão dependencies do arquivo build.gradle (Module:app) a seguinte linha: + +~~~kotlin +implementation "com.google.accompanist:accompanist-navigation-animation:0.30.1" +~~~ + +### 1.3.2 Implementando a animação +- fazer as seguintes alterações no método onCreate da classe MainActivity: + +~~~kotlin +class MainActivity : ComponentActivity() { + @OptIn(ExperimentalAnimationApi::class) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberAnimatedNavController() + AnimatedNavHost( + navController = navController, + startDestination = "login", + ) { + composable(route = "login") { + LoginScreen(navController) + } + composable(route = "menu") { + MenuScreen(navController) + } + composable(route = "pedidos") { + PedidosScreen(navController) + } + composable( + route = "perfil/{nome}/{idade}", + arguments = listOf( + navArgument("nome") { + type = NavType.StringType + }, + navArgument("idade") { + type = NavType.IntType + } + ) + ) { + val nome: String? = + it.arguments?.getString( + "nome", + "" + ) + val idade: Int? = + it.arguments?.getInt( + "idade", + 0 + ) + PerfilScreen( + navController, + nome!!, + idade!! + ) + } + } + } + } + } + } + } +~~~ + +- as classes utilizadas para a implementação de animação de transição entre as telas precisam ser importadas para o projeto, portanto, certificar-se de que os imports estejam corretos. + +~~~kotlin +//import androidx.navigation.compose.NavHost +//import androidx.navigation.compose.composable +//import androidx.navigation.compose.rememberNavController + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.ui.Modifier +import androidx.navigation.NavType +import androidx.navigation.navArgument +import br.com.fiap.navegandoentretelas.sreens.LoginScreen +import br.com.fiap.navegandoentretelas.sreens.MenuScreen +import br.com.fiap.navegandoentretelas.sreens.PedidosScreen +import br.com.fiap.navegandoentretelas.sreens.PerfilScreen +import br.com.fiap.navegandoentretelas.ui.theme.NavegandoEntreTelasTheme +𝗶𝗺𝗽𝗼𝗿𝘁 𝗰𝗼𝗺.𝗴𝗼𝗼𝗴𝗹𝗲.𝗮𝗰𝗰𝗼𝗺𝗽𝗮𝗻𝗶𝘀𝘁.𝗻𝗮𝘃𝗶𝗴𝗮𝘁𝗶𝗼𝗻.𝗮𝗻𝗶𝗺𝗮𝘁𝗶𝗼𝗻.𝗔𝗻𝗶𝗺𝗮𝘁𝗲𝗱𝗡𝗮𝘃𝗛𝗼𝘀𝘁 +𝗶𝗺𝗽𝗼𝗿𝘁 𝗰𝗼𝗺.𝗴𝗼𝗼𝗴𝗹𝗲.𝗮𝗰𝗰𝗼𝗺𝗽𝗮𝗻𝗶𝘀𝘁.𝗻𝗮𝘃𝗶𝗴𝗮𝘁𝗶𝗼𝗻.𝗮𝗻𝗶𝗺𝗮𝘁𝗶𝗼𝗻.𝗰𝗼𝗺𝗽𝗼𝘀𝗮𝗯𝗹𝗲 +𝗶𝗺𝗽𝗼𝗿𝘁 𝗰𝗼𝗺.𝗴𝗼𝗼𝗴𝗹𝗲.𝗮𝗰𝗰𝗼𝗺𝗽𝗮𝗻𝗶𝘀𝘁.𝗻𝗮𝘃𝗶𝗴𝗮𝘁𝗶𝗼𝗻.𝗮𝗻𝗶𝗺𝗮𝘁𝗶𝗼𝗻.𝗿𝗲𝗺𝗲𝗺𝗯𝗲𝗿𝗔𝗻𝗶𝗺𝗮𝘁𝗲𝗱𝗡𝗮𝘃𝗖𝗼𝗻𝘁𝗿𝗼𝗹𝗹𝗲𝗿 +~~~ + +- ao executar, a aplicação não mudou, pois ainda não implementamos as animações que devem ocorrer na troca das telas. +- é possível aplicar o efeito de transição de telas em dois momentos: + - `exitTransition`: a tela atual sai da visão do usuário. + - `startTransition`: a próxima tela entra na visão do usuário. +- o efeito que queremos na transição de telas será: + - a tela atual desliza para a direita em um ciclo de 1s. + - a tela de destino desliza para a esquerda em um ciclo de 3s. + +~~~kotlin +… trecho de Código omitido +setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberAnimatedNavController() + AnimatedNavHost( + navController = navController, + startDestination = "login", + exitTransition = { + slideOutOfContainer(towards = + AnimatedContentScope.SlideDirection.End, + animationSpec = tween(1000) + ) + }, + enterTransition = { + slideIntoContainer(towards = + AnimatedContentScope.SlideDirection.Start, + animationSpec = tween(3000) + ) + } + ) { +… trecho de código omitido +~~~ + +- em exitTransition, escolhemos a transição "slideOutOfContainer" ("deslizar para fora do container”); as configurações para essa animação utilizam os parâmetros: + - towards: indica a direção que a tela deverá seguir enquanto desliza. Para que a tela deslize para a direita, utilizamos "AnimatedContentScope.SlideDirection.End". + - animationSpec: indicamos que a transição deverá durar 1 segundo (1000 milissegundos). +- em enterTransition, escolhemos o efeito "slideIntoContainer" ("deslizar para dentro do container"); as configurações utilizadas foram: + - towards: definimos que a animação deverá ocorrer da direita para a esquerda através de "AnimatedContentScope.SlideDirection.Start". + - animationSpec: indicamos que a transição deverá durar 3 segundos (3000 milissegundos). + +### 1.3.3 Combinação de efeitos +- é possível somar efeitos tanto para exitTransition quanto para startTransition. +- adicionar o sinal de mais (+) entre os efeitos de transição escolhidos. +- para adicionar um efeito de "desaparecimento gradual" durante a saída da tela, acrescentar o efeito "fadeOut". + +~~~kotlin +… trecho de código omitido +val navController = rememberAnimatedNavController() +AnimatedNavHost( + navController = navController, + startDestination = "login", + exitTransition = { + //fadeOut(animationSpec = tween(1000)) + slideOutOfContainer(towards = + AnimatedContentScope.SlideDirection.End, + animationSpec = tween(1000) + ) + fadeOut(animationSpec = tween(1000)) + }, + enterTransition = { + //fadeIn(animationSpec = tween(2000)) + slideIntoContainer(towards = + AnimatedContentScope.SlideDirection.Start, + animationSpec = tween(3000) + } +) { … trecho de código omitido +~~~ + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/capitulo9a.md b/fase01/trilha-android/capitulo9a.md new file mode 100644 index 0000000..2a34f60 --- /dev/null +++ b/fase01/trilha-android/capitulo9a.md @@ -0,0 +1,1213 @@ +
+ +

FASE 1 - APP WORLD

+

Capítulo 9A: Gestão de estado no Jetpack Compose.

+
+ +
+

1. GESTÃO DE ESTADO NO JETPACK COMPOSE

+
+ +- a Interface do Usuário (IU) em uma aplicação Android é formada por diversos elementos. Para que possamos organizar o código, é necessário quebrar a interface em diversos componentes, que depois serão combinados para criar a tela como um todo, técnica que permite a reutilização de componentes. +- outro fator bastante importante quando trabalhamos com componentização é podermos manter o estado da aplicação em seus diversos componentes. Para isso, podemos utilizar o `State Hoisting`, que significa manter o estado em um componente de hierarquia mais alta, ou podemos utilizar uma arquitetura de projeto chamada `Model-View-ViewModel` (MVVM). + +## 1.1 State Hoisting - Elevação de estado + +- é um design pattern que orienta a implementação de componentes "stateless", ou seja, que não gerenciam o próprio estado. +- o estado deverá ser mantido no menor ancestral comum entre todos os componentes combináveis. +- no Jetpack Compose, cada composable é uma função independente que descreve a aparência e o comportamento de um componente; logo, podemos reutilizar este componente em diversas partes da aplicação, o que poderia causar duplicidade de estado. +- o ***State Hoisting garante que o estado será gerenciado de forma centralizada***, garantindo que compartilhem o mesmo estado atualizado. +- exemplo: + +
+
+Estrutura hierárquica da Aplicação.
+
+

+ +- no exemplo acima: + - o componente AppScreen é o de hierarquia mais alta. + - os componentes filhos (Componente 1, Componente 2 e Componente 3) são os componentes de hierarquia mais baixa. + - portanto, quem deve manter o estado da tela é o AppScreen: as variáveis de estado devem ser declaradas neste componente e os componentes filhos recebem o estado e comportamento do componente AppScreen! + +### 1.1.1 Aplicativo para cálculo de juros simples +- para praticar o State Hoisting, criar uma aplicação para cálculo de juros simples. +- começar criando uma única função com todos os componentes e estados. Depois, aplicaremos o conceito de elevação de estado e modularização da aplicação. +- criar um projeto no Android Studio com o nome [Cálculo de Juros](./projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/). +- substituir o código do arquivo MainActivity.kt que foi gerado automaticamente, pelo código: + +~~~kotlin +package br.com.fiap.calculodejuros + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.calculodejuros.calculos.calcularJuros +import br.com.fiap.calculodejuros.calculos.calcularMontante +import br.com.fiap.calculodejuros.ui.theme.CalculoDeJurosTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + CalculoDeJurosTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + JurosScreen() + } + } + } + } +} + +@Composable +fun JurosScreen() { + + var capital by remember { mutableStateOf("") } + var taxa by remember { mutableStateOf("") } + var tempo by remember { mutableStateOf("") } + var juros by remember { mutableStateOf(0.0) } + var montante by remember { mutableStateOf(0.0) } + + Box( + modifier = Modifier.padding(16.dp), + contentAlignment = Alignment.Center + ) { + Column() { + Text( + text = "Cálculo de Juros Simples", + modifier = Modifier.fillMaxWidth(), + fontSize = 20.sp, + color = Color.Red, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center + ) + Spacer(modifier = Modifier.height(32.dp)) + // Formulário para entrada de dados + Card( + modifier = Modifier + .fillMaxWidth() + ) { + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Dados do Investimento", + fontWeight = FontWeight.Bold + ) + // Caixas de entrada da aplicação + OutlinedTextField( + value = capital, + onValueChange = { capital = it }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = "Quanto deseja investir?") + }, + label = { + Text(text = "Valor do investimento") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Decimal + ) + ) + OutlinedTextField( + value = taxa, + onValueChange = { taxa = it }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = "Qual a taxa de juros mensal?") + }, + label = { + Text(text = "Taxa de juros mensal") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Decimal + ) + ) + OutlinedTextField( + value = tempo, + onValueChange = { tempo = it }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = "Qual o tempo em meses?") + }, + label = { + Text(text = "Período em meses") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Decimal + ) + ) + Button( + onClick = { + juros = calcularJuros( + capital = capital.toDouble(), + taxa = taxa.toDouble(), + tempo = tempo.toDouble() + ) + montante = calcularMontante( + capital = capital.toDouble(), + juros = juros + ) + }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 32.dp) + ) { + Text(text = "CALCULAR") + } + } + } + Spacer(modifier = Modifier.height(16.dp)) + // Resultado da aplicação + Card( + modifier = Modifier + .fillMaxWidth(), + colors = CardDefaults.cardColors( + containerColor = Color(0xFF4CAF50) + ) + ) { + Column( + modifier = Modifier + //.fillMaxSize() + .padding(16.dp) + ) { + Text( + text = "Resultado", + fontSize = 18.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Spacer(modifier = Modifier.height(16.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Juros", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = juros.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + Spacer(modifier = Modifier.height(8.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Montante", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = montante.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + } + } + } + } +} +~~~ + +- criar um pacote na aplicação com o nome "calculos", e criar neste pacote um arquivo com o nome "CalcularJuros". +- o arquivo CalcularJuros.kt será responsável por efetuar os cálculos de juros e montantes; implementar as funções necessárias: + +~~~kotlin +package br.com.fiap.calculodejuros.calculos + +fun calcularJuros(capital: Double, taxa: Double, tempo: Double): Double { + return capital * taxa / 100 * tempo +} + +fun calcularMontante(capital: Double, juros: Double): Double { + return capital + juros +} +~~~ + +### 1.1.2 Modularizando a aplicação +- modularizar a aplicação evita que fique muito extensa e facilita manutenção. +- além disso, a modularização permite dividir a interface do usuário em componentes menores, como botões, listas, cartões etc: cada componente pode ser projetado de forma independente, com sua própria lógica e aparência. +- iniciar produzindo uma função responsável por criar caixas de entrada personalizadas. + - criar um pacote no projeto chamado "components". + - criar um arquivo chamado CaixaDeEntrada.kt no pacote components e, neste arquivo, criar um OutlinedTextField. + +~~~kotlin +package br.com.fiap.calculodejuros.components + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.unit.dp + +@Composable +fun CaixaDeEntrada( + value: String, + placeholder: String, + label: String, + modifier: Modifier, + keyboardType: KeyboardType +) { + OutlinedTextField( + value = value, + onValueChange = {}, + modifier = modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = placeholder) + }, + label = { + Text(text = label) + }, + keyboardOptions = KeyboardOptions(keyboardType = keyboardType) + ) +} +~~~ + +- utilizar a função CaixaDeEntrada na aplicação, para torná-la mais limpa. +- abrir o arquivo MainActivity.kt, comentar o código da caixa de texto responsável pela digitação do capital e substituir pelo código: + +~~~kotlin +// Caixas de entrada da Aplicação +CaixaDeEntrada( + value = "", + placeholder = "Quanto deseja investir", + label = "Valor do investimento", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +) +~~~ + +### 1.1.3 Elevando o estado +- agora o componente está sendo renderizado pela função CaixaDeEntrada, e ela será utilizada para renderizar todas as outras; e nesse momento entra a aplicação do State Hoisting. +- o parâmetro value da função CaixaDeEntrada deverá receber a variável de estado que está sendo mantida na função JurosScreen, que é hierarquicamente superior, ou seja, é ela que mantém o estado da tela. A função CaixaDeEntrada é ***stateless***, já que não precisa manter o estado. +- quanto ao comportamento, precisamos passar uma função para a função de composição CaixaDeEntrada que será utilizada pelo parâmetro onValueChange do OutlinedTextField, o que permite que possamos passar comportamentos diferentes para cada caixa de entrada que criarmos. +- refatorar a função CaixaDeEntrada para que implemente o estado e o comportamento para as caixas de entrada da aplicação. + +~~~kotlin +@Composable +fun CaixaDeEntrada( + value: String, + placeholder: String, + label: String, + modifier: Modifier, + keyboardType: KeyboardType, + atualizarValor: (String) -> Unit +) { + OutlinedTextField( + value = value, + onValueChange = { + atualizarValor(it) + }, + modifier = modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = placeholder) + }, + label = { + Text(text = label) + }, + keyboardOptions = KeyboardOptions(keyboardType = keyboardType) + ) +} +~~~ + +- passar o parâmetro atualizarValor durante a chamada para a função CaixaDeEntrada. +- no arquivo MainActivity.kt, alterar o código da caixa de texto responsável pela entrada do capital: + +~~~kotlin +// Caixas de entrada da Aplicação +CaixaDeEntrada( + value = capital, + placeholder = "Quanto deseja investir", + label = "Valor do investimento", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +){ + capital = it +} +~~~ + +- ao executar a aplicação no emulador, agora é possível digitar o valor do capital novamente; ao preencher os valores e clicar no botão calcular, a aplicação funcionará corretamente e calculará os juros e montante. +- alterar as outras caixas de texto: + +~~~kotlin +// Caixas de entrada da Aplicação +CaixaDeEntrada( + value = capital, + placeholder = "Quanto deseja investir", + label = "Valor do investimento", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +){ + capital = it +} +CaixaDeEntrada( + value = taxa, + placeholder = "Qual a taxa de juros mensal?", + label = "Taxa de juros mensal", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +){ + taxa = it +} +CaixaDeEntrada( + value = tempo, + placeholder = "Qual o período do investimento em meses?", + label = "Período em meses", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +){ + tempo = it +} +~~~ + +- neste exemplo foi realizada a modularização de um único componente, mas podemos modularizar componentes mais complexos. +- vamos ***criar uma função de composição para o card que exibe o resultado do investimento***: + - criar um arquivo no pacote components com o nome "CardResultado" + - o estado ficará na função hierarquicamente superior que é a JurosScreen. + +~~~kotlin +package br.com.fiap.calculodejuros.components + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +@Composable +fun CardResultado(juros: Double, montante: Double) { + Card( + modifier = Modifier + .fillMaxWidth(), + colors = CardDefaults.cardColors( + containerColor = Color(0xFF4CAF50) + ) + ) { + Column( + modifier = Modifier + //.fillMaxSize() + .padding(16.dp) + ) { + Text( + text = "Resultado", + fontSize = 18.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Spacer(modifier = Modifier.height(16.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Juros", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = juros.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + Spacer(modifier = Modifier.height(8.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Montante", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = montante.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + } + } +} +~~~ + +- substituir o trecho de código responsável por renderizar o card de resultado da MainActivity.kt pela chamada da função de composição. + +~~~kotlin +package br.com.fiap.calculodejuros + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.calculodejuros.calculos.calcularJuros +import br.com.fiap.calculodejuros.calculos.calcularMontante +import br.com.fiap.calculodejuros.components.CaixaDeEntrada +import br.com.fiap.calculodejuros.components.CardResultado +import br.com.fiap.calculodejuros.ui.theme.CalculoDeJurosTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + CalculoDeJurosTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + JurosScreen() + } + } + } + } +} + +@Composable +fun JurosScreen() { + + var capital by remember { mutableStateOf("") } + var taxa by remember { mutableStateOf("") } + var tempo by remember { mutableStateOf("") } + var juros by remember { mutableStateOf(0.0) } + var montante by remember { mutableStateOf(0.0) } + + Box( + modifier = Modifier.padding(16.dp), + contentAlignment = Alignment.Center + ) { + Column { + Text( + text = "Cálculo de Juros Simples", + modifier = Modifier.fillMaxWidth(), + fontSize = 20.sp, + color = Color.Red, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center + ) + Spacer(modifier = Modifier.height(32.dp)) + // Formulário para entrada de dados + Card( + modifier = Modifier + .fillMaxWidth() + ) { + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Dados do Investimento", + fontWeight = FontWeight.Bold + ) + // Caixas de entrada da Aplicação + CaixaDeEntrada( + value = capital, + placeholder = "Quanto deseja investir", + label = "Valor do investimento", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ){ + capital = it + } + CaixaDeEntrada( + value = taxa, + placeholder = "Qual a taxa de juros mensal?", + label = "Taxa de juros mensal", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ){ + taxa = it + } + CaixaDeEntrada( + value = tempo, + placeholder = "Qual o período do investimento em meses?", + label = "Período em meses", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ){ + tempo = it + } + Button( + onClick = { + juros = calcularJuros( + capital = capital.toDouble(), + taxa = taxa.toDouble(), + tempo = tempo.toDouble() + ) + montante = calcularMontante( + capital = capital.toDouble(), + juros = juros + ) + }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 32.dp) + ) { + Text(text = "CALCULAR") + } + } + } + Spacer(modifier = Modifier.height(16.dp)) + // Resultado da aplicação + CardResultado(juros = juros, montante = montante) + } + } +} +~~~ + +- neste exemplo, modularizamos a aplicação em pequenas partes. +- que tal criar uma função para componentizar o card com o formulário? + +## 1.2 Model View ViewModel – MVVM + +- já sabemos que é possível modularizar a aplicação de modo que cada componente seja uma pequena parte customizável que possuirá seu próprio estado e comportamento. +- agora vamos aplicar uma arquitetura que separe as responsabilidades do código para melhorar a manutenção e a escalabilidade da aplicação - precisamos começar a pensar nas arquiteturas e, no desenvolvimento Android, utilizaremos o padrão MVVM, Model-View-ViewMode. + +### 1.2.1 O que é o padrão MVVM? +- é um padrão arquitetural utilizado no desenvolvimento de aplicações Android. +- o objetivo principal é separar as responsabilidades da aplicação em camadas. +- MVVM é organizado em três partes: + - `Model`: + - aqui temos a representação da camada de dados do aplicativo. + - essa camada é responsável pelo acesso aos dados em um banco de dados ou requisições através da rede. + - é a camada responsável por fornecer os dados que serão exibidos pela IU. + - `View`: + - camada é responsável por exibir os dados ao usuário, além de permitir que o usuário interaja com a aplicação. + - é a IU da aplicação. + - `ViewModel`: + - conecta a View e a Model. + - fornece os dados que serão exibidos pela View, assim como processa as entradas de usuário que podem resultar em atualização dos dados na Model. + - também fornece suporte a dados observáveis através do LiveData, que atualiza os dados da View quando um dado é atualizado. + +
+
+Arquitetura MVVM.
+
+
+ +### 1.2.2 Utilizando o padrão MVVM +- para demonstrar a aplicação do padrão MVVM em um projeto Android, refatorar nossa calculadora de juros simples, adotando uma abordagem modular e organizada. +- iniciaremos criando um pacote chamado "juros", que abrigará os arquivos responsáveis pela renderização da interface e pela classe ViewModel da tela. + - ao dividir nossa implementação em camadas distintas, obteremos os benefícios: + - ***separação de responsabilidades***: com o pacote "juros", teremos um local dedicado para lidar com a lógica de apresentação e a interação com o ViewModel será responsável por fornecer os dados necessários para a interface, enquanto a tela (View) será responsável por exibir esses dados e responder às ações do usuário. + - ***manutenção facilitada***: com os arquivos organizados em pacotes distintos, será mais fácil localizar, modificar e adicionar novos recursos à calculadora de juros. Cada componente terá uma função bem definida, tornando o código mais legível e de fácil compreensão.T + - ***testes aprimorados***: com a separação entre a ViewModel e a tela, poderemos testar a lógica de negócios de forma isolada, sem a necessidade de simular interações com a interface do usuário. Isso permitirá criar testes unitários eficientes e garantir a qualidade do código. + +- recortar a função JurosScreen da classe MainActivity.kt e colar no arquivo JurosScreen.kt. + +~~~kotlin +package br.com.fiap.calculodejuros.juros + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.calculodejuros.calculos.calcularJuros +import br.com.fiap.calculodejuros.calculos.calcularMontante +import br.com.fiap.calculodejuros.components.CaixaDeEntrada +import br.com.fiap.calculodejuros.components.CardResultado + +@Composable +fun JurosScreen() { + + var capital by remember { mutableStateOf("") } + var taxa by remember { mutableStateOf("") } + var tempo by remember { mutableStateOf("") } + var juros by remember { mutableStateOf(0.0) } + var montante by remember { mutableStateOf(0.0) } + + Box( + modifier = Modifier.padding(16.dp), + contentAlignment = Alignment.Center + ) { + Column { + Text( + text = "Cálculo de Juros Simples", + modifier = Modifier.fillMaxWidth(), + fontSize = 20.sp, + color = Color.Red, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center + ) + Spacer(modifier = Modifier.height(32.dp)) + // Formulário para entrada de dados + Card( + modifier = Modifier + .fillMaxWidth() + ) { + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Dados do Investimento", + fontWeight = FontWeight.Bold + ) + // Caixas de entrada da Aplicação + CaixaDeEntrada( + value = capital, + placeholder = "Quanto deseja investir", + label = "Valor do investimento", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ){ + capital = it + } + CaixaDeEntrada( + value = taxa, + placeholder = "Qual a taxa de juros mensal?", + label = "Taxa de juros mensal", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ){ + taxa = it + } + CaixaDeEntrada( + value = tempo, + placeholder = "Qual o período do investimento em meses?", + label = "Período em meses", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ){ + tempo = it + } + Button( + onClick = { + juros = calcularJuros( + capital = capital.toDouble(), + taxa = taxa.toDouble(), + tempo = tempo.toDouble() + ) + montante = calcularMontante( + capital = capital.toDouble(), + juros = juros + ) + }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 32.dp) + ) { + Text(text = "CALCULAR") + } + } + } + Spacer(modifier = Modifier.height(16.dp)) + // Resultado da aplicação + CardResultado(juros = juros, montante = montante) + } + } +} +~~~ + +- na classe MainActivity.kt, importar a função JurosScreen. + +~~~kotlin +package br.com.fiap.calculodejuros + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.ui.Modifier +import br.com.fiap.calculodejuros.juros.JurosScreen +import br.com.fiap.calculodejuros.ui.theme.CalculoDeJurosTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + CalculoDeJurosTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + JurosScreen() + } + } + } + } +} +~~~ + +- o arquivo JurosScreen.kt representa a tela da aplicação, ou seja, uma "feature" que é responsável por renderizar a tela com o formulário da aplicação. + - se a aplicação tiver uma tela de login, por exemplo, criaríamos um pacote chamado login para armazenar a feature login, além da ViewModel para a tela de login. +- o arquivo JurosScreenViewModel será a classe responsável por toda a lógica da tela JurosScreen, ou seja, esta classe é a detentora do estado e da lógica de negócios. + - a classe JurosScreenViewModel deve estender a classe ViewModel. + +~~~kotlin +package br.com.fiap.calculodejuros.juros + +import androidx.lifecycle.ViewModel + +class JurosScreenViewModel: ViewModel() { + +} +~~~ + +- a utilização desta classe é possível por conta da dependência da biblioteca "lifecycle-runtime", que já está configurada no arquivo build.gradle em nível de módulo. + +~~~kotlin +dependencies { + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3:1.1.1' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' +} +~~~ + +### 1.2.3. Gerenciando o estado da aplicação com LiveData +- `LiveData` é uma classe que armazena dados observáveis, sendo assim, os atributos que estão observando um atributo do tipo LiveData serão notificados sempre que o valor de um LiveData for alterado. +- na classe JurosScreenViewModel, criaremos os atributos observáveis, e na função JurosScreen criaremos os atributos observadores e assim, vamos manter o estado na ViewModel, e não mais na tela. +- para utilizarmos o LiveData, adicionar uma dependência no arquivo build.gradle em nível de módulo. + +~~~kotlin +dependencies { + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3:1.1.1' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + // Dependência do LiveData + implementation "androidx.compose.runtime:runtime-livedata:1.4.3" +} +~~~ + +- começar criando um observável e um observador para o atributo capital. + - o observável deve ser criado na classe JurosScreenViewModel. + +~~~kotlin +package br.com.fiap.calculodejuros.juros + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class JurosScreenViewModel: ViewModel() { + + private val _capital = MutableLiveData() + val capital: LiveData = _capital + +} +~~~ + +- no código acima, criamos um atributo privado, que só pode ser acessado da "ViewModel" chamado "_capital". + - este atributo é do tipo MutableLiveData, ou seja, seu valor é mutável. + - utilizado caractere underscore (_) antes do nome do atributo, que é uma convenção adotada para indicar que este atributo é privado e que não deve ser acessado de outras classes. Essa convenção é chamada de `underscore prefix` ou `underscore notation`. + - o atributo "capital" foi definido de forma pública, ou seja, é através dele que os observadores saberão que a variável teve seu valor alterado; ele recebe o valor do atributo "_capital". +- a função JurosScreen é nossa função principal, ou seja, é responsável por manter o estado da tela, então, é necessário que ela receba um parâmetro com a sua ViewModel, que é a JurosScreenViewModel. + - alterar a função JurosScreen. + +~~~kotlin +@Composable +fun JurosScreen(jurosScreenViewModel: JurosScreenViewModel) { + + var capital by remember { mutableStateOf("") } + var taxa by remember { mutableStateOf("") } + // ... +} +~~~ + +- após este ajuste, começaremos a receber uma notificação de erro na classe MainActivity, responsável por chamar a função JurosScreen, o que ocorre devido ao fato da função JurosScreen pedir um parâmetro do tipo JurosScreenViewModel. +- abrir o arquivo MainActivity.kt e passar o parâmetro durante a chamada da função. + +~~~kotlin +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + CalculoDeJurosTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + JurosScreen(JurosScreenViewModel()) + } + } + } + } +} +~~~ + +- alterar a declaração do atributo capital da função JurosScreen para que utilize o LiveData. + +~~~kotlin +@Composable +fun JurosScreen(jurosScreenViewModel: JurosScreenViewModel) { + +// var capital by remember { mutableStateOf("") } + val capital by jurosScreenViewModel + .capital + .observeAsState(initial = "") + //... +} +~~~ + +- no código apresentado, temos a declaração de uma variável capital, que é inicializada com o valor observado do estado capitalState da função JurosScreenViewModel, referenciada pelo parâmetro jurosScreenViewModel. +- a função observeAsState é utilizada para criar um estado observável a partir do valor do estado capitalState e atribuí-lo à variável capital. + - essa função permite observar e acompanhar as mudanças de um estado ao longo do tempo. + - cria um estado que pode ser utilizado dentro de um composable para atualizar a interface do usuário automaticamente sempre que o valor do estado observado sofrer alterações. + - sempre que houver uma alteração no valor do estado capitalState em JurosScreenViewModel, o estado capital será atualizado e o composable que utiliza esse estado será recomposto, refletindo as alterações na interface do usuário. + - isso proporciona uma atualização automática da tela com base nas mudanças de estado, sem a necessidade de manipulação manual ou repetitiva. + +- após esse ajuste,vamos obter mais uma mensagem de erro. + - a função CaixaDeEntrada possui uma função lambda como parâmetro que é usada para atualizar o atributo value do composable OutlinedTextField, o que ocorre porque não podemos mudar o valor do atributo capital diretamente. Quem deve fazer isso é a ViewModel. + - criar uma função em JurosScreenViewModel que será responsável por atualizar o estado do atributo capitalState e consequentemente do atributo capital da função JurosScreen, que é o observador. + - abrir o arquivo JurosScreenViewModel e acrescentar a função responsável por atualizar o valo de capitalState. + +~~~kotlin +class JurosScreenViewModel: ViewModel() { + + private val _capital = MutableLiveData() + val capitalState: LiveData = _capital + + fun onCapitalChanged(novoCapital: String){ + _capital.value = novoCapital + } + +} +~~~ + +- a função onCapitalChanged recebe o parâmetro novoCapital do tipo String, que será atribuído ao objeto MutableLiveData, referenciado pela variável _capital, que por sua vez irá atualizar o valor do atributo capitalState que está sendo observado pelo atributo capital da função JurosScreen. +- alterar a chamada para a função CaixaDeEntrada responsável pela entrada do capital. + +~~~kotlin +CaixaDeEntrada( + value = capital, + placeholder = "Quanto deseja investir", + label = "Valor do investimento", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +){ + jurosScreenViewModel.onCapitalChanged(it) +} +~~~ + +- modificar as variáveis taxa e tempo da função JurosScreen para que utilizem a ViewModel. +- código da JurosScreenViewModel: + +~~~kotlin +class JurosScreenViewModel: ViewModel() { + + private val _capital = MutableLiveData() + val capitalState: LiveData = _capital + + private val _taxa = MutableLiveData() + val taxaState: LiveData = _taxa + + private val _tempo = MutableLiveData() + val tempoState: LiveData = _tempo + + fun onCapitalChanged(novoCapital: String){ + _capital.value = novoCapital + } + + fun onTaxaChanged(novaTaxa: String){ + _taxa.value = novaTaxa + } + + fun onTempoChanged(novoTempo: String) { + _tempo.value = novoTempo + } +} +~~~ + +- ajustar os atributos de estado na função JurosScreen: + +~~~kotlin +@Composable +fun JurosScreen(jurosScreenViewModel: JurosScreenViewModel) { + +// var capital by remember { mutableStateOf("") } + val capital by jurosScreenViewModel + .capitalState + .observeAsState(initial = "") + +// var taxa by remember { mutableStateOf("") } + val taxa by jurosScreenViewModel + .taxaState + .observeAsState(initial = "") + +// var tempo by remember { mutableStateOf("") } + val tempo by jurosScreenViewModel + .tempoState + .observeAsState(initial = "") +//... +} +~~~ + +- não esquecer de ajustar a chamada para as funções CaixaDeEntrada que estão renderizando a entrada do usuário. +- no arquivo JurosScreen: + +~~~kotlin +CaixaDeEntrada( + value = taxa, + placeholder = "Qual a taxa de juros mensal?", + label = "Taxa de juros mensal", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +){ + jurosScreenViewModel.onTaxaChanged(it) +} +CaixaDeEntrada( + value = tempo, + placeholder = "Qual o período do investimento em meses?", + label = "Período em meses", + modifier = Modifier, + keyboardType = KeyboardType.Decimal +){ + jurosScreenViewModel.onTempoChanged(it) +} +~~~ + +- refatorar o código do botão responsável por efetuar o cálculo dos juros e montante: + +~~~kotlin +Button( + onClick = { + juros = calcularJuros( + capital = capital.toDouble(), + taxa = taxa.toDouble(), + tempo = tempo.toDouble() + ) + montante = calcularMontante( + capital = capital.toDouble(), + juros = juros + ) + }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 32.dp) +) { + Text(text = "CALCULAR") +} +~~~ + +- a lógica de negócio para efetivação dos cálculos está sendo implementada na função JurosScreen, e, apesar de ser um código simples, devemos nos lembrar que a lógica de negócios também deve ser implementada na ViewModel. +- portanto, faremos os ajustes necessários começando pela ViewModel. +- abrir o arquivo JurosScreenViewModel e implementar as alterações: + +~~~kotlin +class JurosScreenViewModel: ViewModel() { + + private val _capital = MutableLiveData() + val capitalState: LiveData = _capital + + private val _taxa = MutableLiveData() + val taxaState: LiveData = _taxa + + private val _tempo = MutableLiveData() + val tempoState: LiveData = _tempo + + private val _juros = MutableLiveData() + val jurosState: LiveData = _juros + + private val _montante = MutableLiveData() + val montanteState: LiveData = _montante + + fun onCapitalChanged(novoCapital: String){ + _capital.value = novoCapital + } + + fun onTaxaChanged(novaTaxa: String){ + _taxa.value = novaTaxa + } + + fun onTempoChanged(novoTempo: String) { + _tempo.value = novoTempo + } + + fun calcularJurosInvestimento(){ + _juros.value = calcularJuros( + capital = _capital.value!!.toDouble(), + taxa = _taxa.value!!.toDouble(), + tempo = _tempo.value!!.toDouble() + ) + } + + fun calcularMontanteInvestimento(){ + _montante.value = calcularMontante( + _capital.value!!.toDouble(), + _juros.value!!.toDouble() + ) + } +} +~~~ + +- com a ViewModel refatorada, ajustar a função JurosScreen. + +~~~kotlin +// var juros by remember { mutableStateOf(0.0) } + val juros by jurosScreenViewModel + .jurosState + .observeAsState(initial = 0.0) + +// var montante by remember { mutableStateOf(0.0) } + val montante by jurosScreenViewModel + .montanteState + .observeAsState(initial = 0.0) +~~~ + +- alterar o evento de clique do botão Calcular: + +~~~kotlin +Button( + onClick = { + jurosScreenViewModel.calcularJurosInvestimento() + jurosScreenViewModel.calcularMontanteInvestimento() + }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 32.dp) +) { + Text(text = "CALCULAR") +} +~~~ + +
+

2. CONCLUSÃO

+
+ +- a utilização de padrões de projeto proporciona benefícios significativos em termos de manutenção e escalabilidade. +- esses padrões orientam na criação de aplicações que podem aproveitar efetivamente a reutilização de código. +- Model-View-ViewModel (MVVM) promove o desacoplamento entre interface do usuário, estado e lógica de negócios. + - a camada ViewModel é responsável por gerenciar o estado e a lógica, + - enquanto a View representa a interface do usuário. + - camada Model é responsável por fornecer o acesso aos dados utilizados pelo aplicativo. +- benefícios do MVVM: + - permite criação de interfaces de usuário mais modularizadas e testáveis, + - facilita manutenção e a evolução do código. + - desacoplamento entre a interface do usuário e a lógica de negócios também torna mais simples a adição de novos recursos e a personalização da interface. + - incentiva a separação de responsabilidades, melhorando a legibilidade e a organização do código. + - promove uma arquitetura mais limpa e facilita a colaboração entre membros da equipe de desenvolvimento. + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/.gitignore b/fase01/trilha-android/projects/Animacao/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/fase01/trilha-android/projects/Animacao/.idea/.gitignore b/fase01/trilha-android/projects/Animacao/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/fase01/trilha-android/projects/Animacao/.idea/compiler.xml b/fase01/trilha-android/projects/Animacao/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/.idea/gradle.xml b/fase01/trilha-android/projects/Animacao/.idea/gradle.xml new file mode 100644 index 0000000..a9f4e52 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/.idea/kotlinc.xml b/fase01/trilha-android/projects/Animacao/.idea/kotlinc.xml new file mode 100644 index 0000000..e1eea1d --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/.idea/misc.xml b/fase01/trilha-android/projects/Animacao/.idea/misc.xml new file mode 100644 index 0000000..0ad17cb --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/.gitignore b/fase01/trilha-android/projects/Animacao/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/build.gradle b/fase01/trilha-android/projects/Animacao/app/build.gradle new file mode 100644 index 0000000..89a7501 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/build.gradle @@ -0,0 +1,67 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'br.com.fiap.animacao' + compileSdk 33 + + defaultConfig { + applicationId "br.com.fiap.animacao" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.3.2' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/proguard-rules.pro b/fase01/trilha-android/projects/Animacao/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/androidTest/java/br/com/fiap/animacao/ExampleInstrumentedTest.kt b/fase01/trilha-android/projects/Animacao/app/src/androidTest/java/br/com/fiap/animacao/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..747a4e9 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/androidTest/java/br/com/fiap/animacao/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package br.com.fiap.animacao + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("br.com.fiap.animacao", appContext.packageName) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/AndroidManifest.xml b/fase01/trilha-android/projects/Animacao/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..81f66d6 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/MainActivity.kt b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/MainActivity.kt new file mode 100644 index 0000000..c971800 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/MainActivity.kt @@ -0,0 +1,138 @@ +package br.com.fiap.animacao + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.ExitTransition +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.tween +import androidx.compose.animation.expandHorizontally +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut +import androidx.compose.animation.shrinkHorizontally +import androidx.compose.animation.shrinkVertically +import androidx.compose.animation.slideInHorizontally +import androidx.compose.animation.slideOutHorizontally +import androidx.compose.animation.slideOutVertically +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Button +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import br.com.fiap.animacao.ui.theme.AnimacaoTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + AnimacaoTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + AnimacaoScreen() + } + } + } + } +} + +@OptIn(ExperimentalAnimationApi::class) +@Composable +fun AnimacaoScreen() { + var visible = remember { + mutableStateOf(false) + } + var enter = remember { + mutableStateOf(fadeIn()) + } + var exit = remember { + mutableStateOf(fadeOut()) + } + + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth() + ) { + Button(onClick = { + visible.value = !visible.value + enter.value = fadeIn(animationSpec = tween(3000)) + exit.value = fadeOut(animationSpec = tween(3000)) + }) { + Text(text = "Fade") + } + Button(onClick = { + visible.value = !visible.value + enter.value = slideInHorizontally() + exit.value = slideOutVertically() + fadeOut(animationSpec = tween(2000)) + }) { + Text(text = "Slide") + } + Button(onClick = { + visible.value = !visible.value + enter.value = scaleIn() + exit.value = scaleOut() + }) { + Text(text = "Scale") + } + Button(onClick = { + visible.value = !visible.value + enter.value = expandHorizontally() + exit.value = shrinkVertically() + }) { + Text(text = "Expand") + } + } + Spacer(modifier = Modifier.height(64.dp)) + BoxComponent( + visible = visible.value, + enter = enter.value, + exit = exit.value + ) + } +} + +@Composable +fun BoxComponent( + visible: Boolean, + enter: EnterTransition, + exit: ExitTransition +) { + AnimatedVisibility( + visible = visible, + enter = enter, + exit = exit + ) { + Box(modifier = Modifier + .size(200.dp) + .background(color = Color.Magenta)) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Color.kt b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Color.kt new file mode 100644 index 0000000..437dd0e --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package br.com.fiap.animacao.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Theme.kt b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Theme.kt new file mode 100644 index 0000000..1336589 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Theme.kt @@ -0,0 +1,70 @@ +package br.com.fiap.animacao.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView +import androidx.core.view.WindowCompat + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun AnimacaoTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme + } + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Type.kt b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Type.kt new file mode 100644 index 0000000..0f11e71 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/java/br/com/fiap/animacao/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package br.com.fiap.animacao.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/fase01/trilha-android/projects/Animacao/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/drawable/ic_launcher_background.xml b/fase01/trilha-android/projects/Animacao/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/Animacao/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/Animacao/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/Animacao/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..1343799 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Animacao + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Animacao/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/Animacao/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..94e4613 --- /dev/null +++ b/fase01/trilha-android/projects/Animacao/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/backup_rules.xml b/fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/data_extraction_rules.xml b/fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BasicComponents/app/src/test/java/br/com/fiap/basiccomponents/ExampleUnitTest.kt b/fase01/trilha-android/projects/BasicComponents/app/src/test/java/br/com/fiap/basiccomponents/ExampleUnitTest.kt new file mode 100644 index 0000000..9bd3538 --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/app/src/test/java/br/com/fiap/basiccomponents/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package br.com.fiap.basiccomponents + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BasicComponents/build.gradle b/fase01/trilha-android/projects/BasicComponents/build.gradle new file mode 100644 index 0000000..29c5abd --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/build.gradle @@ -0,0 +1,10 @@ +buildscript { + ext { + compose_ui_version = '1.2.0' + } +}// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false + id 'org.jetbrains.kotlin.android' version '1.7.0' apply false +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BasicComponents/gradle.properties b/fase01/trilha-android/projects/BasicComponents/gradle.properties new file mode 100644 index 0000000..3c5031e --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/fase01/trilha-android/projects/BasicComponents/gradle/wrapper/gradle-wrapper.jar b/fase01/trilha-android/projects/BasicComponents/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/BasicComponents/gradle/wrapper/gradle-wrapper.properties b/fase01/trilha-android/projects/BasicComponents/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..1cf9bc0 --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Feb 25 16:11:35 BRT 2024 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/fase01/trilha-android/projects/BasicComponents/gradlew b/fase01/trilha-android/projects/BasicComponents/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/fase01/trilha-android/projects/BasicComponents/gradlew.bat b/fase01/trilha-android/projects/BasicComponents/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fase01/trilha-android/projects/BasicComponents/settings.gradle b/fase01/trilha-android/projects/BasicComponents/settings.gradle new file mode 100644 index 0000000..0b78453 --- /dev/null +++ b/fase01/trilha-android/projects/BasicComponents/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} +rootProject.name = "BasicComponents" +include ':app' diff --git a/fase01/trilha-android/projects/BoxApp/.gitignore b/fase01/trilha-android/projects/BoxApp/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/fase01/trilha-android/projects/BoxApp/.idea/.gitignore b/fase01/trilha-android/projects/BoxApp/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/fase01/trilha-android/projects/BoxApp/.idea/compiler.xml b/fase01/trilha-android/projects/BoxApp/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/.idea/gradle.xml b/fase01/trilha-android/projects/BoxApp/.idea/gradle.xml new file mode 100644 index 0000000..a9f4e52 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/.idea/misc.xml b/fase01/trilha-android/projects/BoxApp/.idea/misc.xml new file mode 100644 index 0000000..bdd9278 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/.gitignore b/fase01/trilha-android/projects/BoxApp/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/build.gradle b/fase01/trilha-android/projects/BoxApp/app/build.gradle new file mode 100644 index 0000000..d72bb92 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/build.gradle @@ -0,0 +1,63 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'br.com.fiap.boxapp' + compileSdk 33 + + defaultConfig { + applicationId "br.com.fiap.boxapp" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.2.0' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.3.1' + implementation "androidx.compose.ui:ui:$compose_ui_version" + implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version" + implementation 'androidx.compose.material:material:1.2.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version" + debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version" + debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version" +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/proguard-rules.pro b/fase01/trilha-android/projects/BoxApp/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/androidTest/java/br/com/fiap/boxapp/ExampleInstrumentedTest.kt b/fase01/trilha-android/projects/BoxApp/app/src/androidTest/java/br/com/fiap/boxapp/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..5406bbb --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/androidTest/java/br/com/fiap/boxapp/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package br.com.fiap.boxapp + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("br.com.fiap.boxapp", appContext.packageName) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/AndroidManifest.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..27dc460 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/MainActivity.kt b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/MainActivity.kt new file mode 100644 index 0000000..0b2f7fd --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/MainActivity.kt @@ -0,0 +1,67 @@ +package br.com.fiap.boxapp + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.offset +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Surface +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import br.com.fiap.boxapp.ui.theme.BoxAppTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + BoxAppTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colors.background + ) { + BoxScreen() + } + } + } + } +} + +@Composable +fun BoxScreen() { + Box(contentAlignment = Alignment.TopEnd) { + Button( + onClick = { /*TODO*/ }, + modifier = Modifier.align(Alignment.BottomEnd) + ) { + Text(text = "Clique aqui") + } + Text( + text = "FIAP", + modifier = Modifier.align(Alignment.TopStart) + ) + Button( + onClick = { /*TODO*/ }, + modifier = Modifier + .align(Alignment.TopStart) + .offset(x = 150.dp, y=120.dp) + ) { + Text(text = "Outro botão") + } + Button( + onClick = { /*TODO*/ }, + modifier = Modifier + .align(Alignment.BottomEnd) + .offset(x = 20.dp, y = 10.dp) + ) { + Text(text = "Mais um botão") + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Color.kt b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Color.kt new file mode 100644 index 0000000..561a710 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Color.kt @@ -0,0 +1,8 @@ +package br.com.fiap.boxapp.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple200 = Color(0xFFBB86FC) +val Purple500 = Color(0xFF6200EE) +val Purple700 = Color(0xFF3700B3) +val Teal200 = Color(0xFF03DAC5) \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Shape.kt b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Shape.kt new file mode 100644 index 0000000..fccee5f --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Shape.kt @@ -0,0 +1,11 @@ +package br.com.fiap.boxapp.ui.theme + +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Shapes +import androidx.compose.ui.unit.dp + +val Shapes = Shapes( + small = RoundedCornerShape(4.dp), + medium = RoundedCornerShape(4.dp), + large = RoundedCornerShape(0.dp) +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Theme.kt b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Theme.kt new file mode 100644 index 0000000..d36ed0f --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Theme.kt @@ -0,0 +1,44 @@ +package br.com.fiap.boxapp.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.MaterialTheme +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.runtime.Composable + +private val DarkColorPalette = darkColors( + primary = Purple200, + primaryVariant = Purple700, + secondary = Teal200 +) + +private val LightColorPalette = lightColors( + primary = Purple500, + primaryVariant = Purple700, + secondary = Teal200 + + /* Other default colors to override + background = Color.White, + surface = Color.White, + onPrimary = Color.White, + onSecondary = Color.Black, + onBackground = Color.Black, + onSurface = Color.Black, + */ +) + +@Composable +fun BoxAppTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) { + val colors = if (darkTheme) { + DarkColorPalette + } else { + LightColorPalette + } + + MaterialTheme( + colors = colors, + typography = Typography, + shapes = Shapes, + content = content + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Type.kt b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Type.kt new file mode 100644 index 0000000..02be6bb --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/java/br/com/fiap/boxapp/ui/theme/Type.kt @@ -0,0 +1,28 @@ +package br.com.fiap.boxapp.ui.theme + +import androidx.compose.material.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + body1 = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp + ) + /* Other default text styles to override + button = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.W500, + fontSize = 14.sp + ), + caption = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 12.sp + ) + */ +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable/ic_launcher_background.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/BoxApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} zs4%E?srLW`CJh0GCIK@hTkrW7A15Iu%N&?Q^$0+!{Tv&|t^Y@u%!L zglTg&?Q5q#ijZ;&HBQ?FNPp;k3J5!&{^+SGq?AX~SiOM9jJMRpyP?RCr@z38AQyy&WRMaC;n4una$~nJKSp?q|s8F00c9?Q! zY_ovvjTFm+DeQM^LXJ#v0}6HRt3R1%5PT*}W!k8BEM;Jrj8dIceFo2fhzTqaB3KKk zGlCLI)gU25(#u6ch6GeB1k@eHq7l{EHXv0n6xE#ws#ri}08kkCf8hUt{|Ejb`2YW* zvg}0nSSX1m=76s?sZhRY$K=3dpJ+y*eDULGnL2}4>4nvW^7_<~wIM_5fjvwt4h1|g z)g0Z6ZFq9j<~9~b8((~TN{Z?ZQfw|is&Xp~AC61sj;xItKyCHdI|tCMC_LbXF>~vR z=w6V3^H=W4CbAgR4#xw}ETTwu2guW~=Crl@SMXv85jQ=%y!s^?m4PI0My7MWICO;- z175jm%&PcPWh8QdOU(#8bp4!N7ET-+)N}N2zk2)8ch|4Q&lPFNQgT-thu053`r*h3 z_8dI@G;`zn;lH$zX3RzIk`E8~`J=BBdR}qD%n@vVG1834)!pS1Y?zVkJGtsa(sB~y zNfMYKsOJb%5J(0ivK8d+l2D2y&5X!cg3BG!AJ}910|_${nF}sC1QF^nLIhzXk-Y#x z0)&1iK!O;Og0Ky!;`b~v%b$`S4E&fB)1NB4v@8wr( z&+NX4e^&o)ecb=)dd~C!{(1e6t?&9j{l8%U*k4)?`(L3;Qjw z#w7FS+U(94MaJKS!J9O8^$)36_J8;thW#2$y9i{bB{?M{QS_inZIJ!jwqAbfXYVd$ zQ5fC$6Nc9hFi8m^;oI-%C#BS|c8vy+@{jx6hFcf^_;2VRgkoN(0h!_VSGmgNPRsxI z8$rTo0LaYq-H5i&gtj81=&xU?H-Y2==G@uQV7E`@+2E9XQW@{&j`?EOktk|Ho{HU>ZqDzvgjwBmdex z&uZNd2C1h{{}2k6Ys9$*nFP3;K%u!MhW`uZy7Sn`1M1zs@Es&;z*Z>Gsh@-3Fe6pE zQD2@cqF((NrRevgvLsvM_8;;iNyJ5nyPyy?e!kvKjGj`6diRFBEe49Oa7wwkJFV7Z z$YT&DWloYu-H?3<0BKn9L&JYDT-SK~*6c5pi18P26$JESKRYj{T7Zk6KiRJcbvOO*{P56Q6s8msbeI3>|j>K9}Q9UBeq*inXKemCm`-<5|-$ZyN4u$(3 z&HcvqehFD%5Yrmykg-^d`=BSa8(i=>ZoC77^mWY{evp(km@aHqhUECBz76YiR+VYK zY_avFC~V3$=`6C4JhfHAQ@DZtUOwH`L;oYX6zK0-uI^?hS$ALfq}A7evR;ohJHij} zHSZdW?EKv9U1s4oD*<(0oQ*;MaQ6@cvGL zuHCPgm_NhVsgp^sfr*ia^Db}swo1?O(_Q2)y+S$CBm+g=9wCOUPbz(x)_GbaKa@A7 zuI&!ynLiZRT#V%_y_-D`0Z5lT*auoe{(U5NylTzFSJW()W-#F6*&A`LNO1bV#Y;QJ zSbLBnp|B^dtK|KIWC|No>JjWBWE@n7O)x{&^E(WMeMvp57#qA8m* zeTow*U@_86B#Fm*rxyYu5PRWaWHx8y> z*qmHEp(AMDl0v)ij(AY8fnH=~ZwwjVAbu*m5;xPfidh@ov6d8g zfJsi&!QyK53Es%sC39ts;54V68koALD4b|%tNHW0bIkZAJKa=W&FomJSEDT>W1xIX z1x%Z>AvNIsSPLcn3RTcHXb@KB?cuM)=x6fcIx>&(GxqZ8w3p#jJ(GVgc*`c0HG}dv zIop&Qim!K1NFwic%07KcjWgHBPUkq7f~lj;TPqVGTiT#cUeim>;nY`>h@a*S{qQex zQ`z62WK|Mj)Y{tfF{;T4P;c8$Q|KU?Joh zIkA^z%X7z|r>4aTh@|StTi!-r1D!g=zb#3d#{{&K3CqE$Iz-UH<%37c zRfkO`&uM%#AD3PHv`g5t0e^O%nVL0d{Xlx^EjEC3#skF@`zl-7PF^0oxW)1!C!JxR zWvuAHH?)61FKA1QeT*_sY7;_Id#!GmV4n`MO{~sv}VLSK` zXRw=Y=Clz*00B(5y^K;gCZMAzjT5+c3IC=)l(9VIDdatpxj3y89WwI|bH&$!ZEvp` zPR!T@#!(|KfI-w?!&+7$N3F6>tD{YO4Qg$d_`nNEdfVCha9vaPn0jI0`)`@*72hq! zpU5ND^P*RoEkbD5o#az(-g=Y)L>HH>Oc%}$ zT3Rs_ih0;4+Lv4Y;@Iv(;fUbQ=i-G(#>vghec~*j(I#r|5mqFiJBpzi&hzEcD{u$< zRsm0BVYn=pT;0>R(itW|*D&;O%bOc7et9ACaH#J>z3A1A~6fdP>pmbM%xzm4>|;c_?B+%sl;Qs2{t!60$^u zH1t@9^6>;?!FuusnISi$f5CL&;z?EqJN$FBuWDA#D5`cy_UvCFIVvf{c?4N0teh;d zET$7aVbj08KTQS!x?Nd1Is8q8qFzs}a=!@nJ;7FSfCY^T@D-gpw`w<6e#X3+;O}1h z$%I!M)0bg|EKUA04Qjn@+x{Rj8vt6Wn!R|3A92z}^$KfF5(#CWr4y#~re1CN4i4w0 z#GsypBR{xA3Er7sgAi(|}1-W?s~n$7?K|9WL8kpVfw-;#b9 z+mn;=ep!162U5R>_t}fOt~tE?s#m( zO-S$7>Ay6*hHdZ)7_oU915WYYCIX;hFI-U2EWYX!pllONr@Q--2o~`!isi6vTPLJ4@(|o=%NHYjo0_S&q*UQIROw@*N-By@PaQ&;YxFZ0aR zX&}LeOEz);#m~Hwm^VAY8DK}b$F4bo{jMN?d!lxKPhNklzr^Cd`0f4oJr^z=I|l`* zm8AHm*fPV`0=lF3Pnnp}&J0N1X@}-D94YvmUabFrLGSnTz7Mu^21F#O5tN#CuY9Vh zUZBH=ez%h*wkf0hBtXJh1SN3d+IF{gzT7lp)j}n?03lt;XSQRAh7qd&v;RwTYDuQ# zbI2*r<>?x-G0@hM{;%{VBD7nLKt~D`T~-HAt5;h%i0_=Ifs=yHma5dhJ+QMG?Ux(a z|E?1CMy1!~oA`FP!k~iG=t&5#>bVdz=peT8HMB6Y)#7PpETtNryT^+Rv3vpJaF^zP z{H}0-LyV9Fu21ID%wO9f1IKlFr1p4c{o-?03vyB-tr5duk^&L$;m_|f$vs`^Sl{j2 z95}oY{LlY+=ZS%J+tZoXCd0*sSU7w^gjovXn+g7uyra5{cU49@yHf#Z^Jl-$9cIfo z+AJuxH$VLb=#+uBbVmUjnx zxb1pZ@-O9=AIk4@S)m6fJ2?{HrNYwwnL3a45muuNjr;6$O`bGEM0T4A2_S$t=86*- zcO+0mywg*j#A4mU}enR_!cGmIYQ;qwfchWtFEXL)AK%*;=j znYne+hS4EMy3S)C*mZ1KI>!+)0V@9!N6H$Y}~MJ{rYuf zz^KljIWvFi-?#?V@LPR&c6Nn{!=XM z>}-h$S76;$H{E{Y%@^zlmOl^efBwa%UU+jJD9UVukQ3ti_kH-?H*RC0?M1W%FCvMB zM_+v6fk$6X2sx)-p~B3&Kl{nscK}pNLM*qjtpaf9>AU{-iPKQZR8yCg!TY}Qg*(;) z)gdvCcB%kppZc$VdvsK@)3l1{&DG!d_6OHOS`y=ITLEVu`unSKA2E%JD*DVX{LJ}K z9l>hMRDqxQh0lnpGHpVYneX}eA3Pt|2v%=q;rt)``R|#bDyB)OXY&vI_@|*}h}G?^ z@aZ4_!7cQPX`!fW_?{oT1NTwHs#l5L-0`E|y@48<3Q^HFf8=Idi zpJYD%1MkII!~|7I^WGo)IF=?{>ACnjJ_WUi39C}!Q{QnheVJqeKKqq5^o5CBde(g9 zvw$X6^jz_^E2$wSw4!q5*RG(C2_^XO$HBn_55vbl44OnTTRwRaePP0vo{K)U1#99& z<>rq7V&V(<&@I%MFoN5zrY}sz=(*-L&}1QQ*a%`u25h{cFj===17eB_uGuzG&byQ< zrm8BJZl4r_E$3k|Wo6FW0-6M7>qac5uFQsQcmkLWGfeH74S3Z_rJ!jgN++!@i=HW8 zkyjI(oPH-+-N#Qc^-mpNO`bc6r=2-<%&Wy5K1vfFJB(L_IkpS6fY^NmuL8qsgj>MD zn~BHH9WM~32_3vd=W&B)k7F9q%stJx+b_L_X-4zr^LVUMCmyCTA3sWtkvsmME?Xiy z?xOSfB=_$oY06~J-HcCq&)qcW{j;uP;?Dm}=hkq?zh&n!;m((-G-u_t|6x399Q;>A zgNpxoJNj{u|MFDH7Rhq@FCAl0dE|ddnl!oh9{Lq?@JDoR6L;C941IK`ISfdE$4S zE0AUQ8+2|Ncl_q5QkSp#AODp~(^mfP&%Au@@|TBQwoP`UU+V{6u8|)6ZA{~uKmQ*M zmrMTDU8S~8Eqi{^v0Ug&5Upcm#y7Z1(RbgZAG8jB$eRwCspQ)>5;U)oGZ&E5aeR*K z8Yt`Y0$G))Yd(Y3KH}tA4`-_QmNke5hU_|nq=xtyjwW(_o?itz>B>WM&^63bNdQ)k@-IgDHW*RW$Xo9#RzrTrCn7L2H{9Amq|qNg@#eZY=|P zCoI?2s+L)zsM%WX(NbVEY^`C>lFjIBYmJ6@DKJ0ZT4&F&WHW!dwa%QzOG!?jY_2(S zDcEzZbz*2Q!43|z))9yOP9X1Xt%DXzwY(3tl-TR=Qb_MbZYRrooh;dYYmS!U_as1(=YVB?Q_A|tNu5Ut&_q3jbfDM zoFxT^uEuH`nX3*sB%K?GuHUkweYReBwnHqh3P)~`+s3+Tj!rDA1e)8vuBv5J*IsxC zkd^~b(aGzArj08{>cnzOuy04C+C`}gb|Yz-1avxeWzev3NzcHbz_&4W@QCr$z3~w=8Ua- z`;vfG1~BP8CyLb=F7t1am~ph_#|O%$khSJ9%Vtcn)YmpgQxF?xM^_Vb+5fnpB^W0I`f%X8gb9#X{Q-yJG0{Z56aWeI&zPxnf5pdJA38bM`cYnS#x)% z`n1tFf$i)W-hGm(f9mde^=X@NcV_lFb=P`4&CI&H=IArijGwdCk&X@uQ$5xmj!~^? z#$ROCI)V-~t%L%GS#wo@U27ddR`4`3)WoB{R-4snfNrfee|kI8^bu#yDgYqOwas9# zmcb`3!kRJ`Cr=_tq)8aMt{aGtUZsqwVlj6DgCGre>AEt&x8H_in!x@uwgExIh|-mA zjdaC(29~CTVSaaF7HPbql&*9Uo8P@f)>LqCXclr}peS7_1BQ28u9PO8Eq1@`l3q9o zkfKCaO2?T?ZyA6loW<#9_c^O=m<&h}CA!ineAD@=(gbq`vyT|tiJ6#^B1$P;;qax` z55k&Q?wEh#87niLo*+n4L@65J(Nz~=Ya%7^(miLb(E>A3B@|Jjl;FU&D>o|9#7PJH z?|ago!o;WC^h=|T7PVBg(DAB}72cyUS zb(f>Bwbr!F1eTCO5fpj<{PqhY5>143p?~5ZA5H40);=@M#MYvrB6gqHbU_!GSY??i z%s=>-ciA4*zOOZHds0a(kWewZ4h(k8h(ua7HX)Au&mY~H8KY6(_cb$_&fA@QjIW-*heP3%$d!m5^AdnT}`12qA^c@!g3DOwZ5WwE2?)-yU z!)Vx#Mtxt?FzFTwK!77sy7)sMzUd->w4^bxtpM2j!b1pjgyk zGKwWGeb4)^zjy{9Es&PU1}gwg?|J#L$KJB7ett9@4M%-nGtIQr0>Fl@8-yh`-+1ed zS6r}(MeSvgSoFmH*_WPu@i?}!AB~2?;i&IxrkNg~cQ9Som98tcq)k^|eeER|Zl77t za-TVUc;DNvzVXJ%w52+#weN?+;i#{f#!Oc&z?81*N>^e~ltRS%ZI@lR{rs()HmqG! zx*}ZrI-EZ}ckJMiy>A^oofwDfC~IH)z8{VHKGT@#E5I(Ll&+MnMCl>~AV7+>Gi%mF zkU1QlKASdR0B80!YhP<$Ywi0?W2Ux45oPfxv9QolWzJPD^weBfvo4SONxP35106sAmh(e+vAs0GboFD@PvNs)jNPvarhW}0YliZEg{Gazv z+JDIpoojRVPr<*C|BTq<`6ga{5q^8^!|0cxe=rZ!zxH3%f5ZO0cQ*Z<^$Yt2{|Ek0 zyT|*F+CO@K;(owBKtGg!S^xj-Z~rga2m6nxKl9J=fBSuNKW_dLKWhJKeg^-Xe`^1? z`TyJj)8E!#>_3Y?uKrwqq3LJ#SGU>AzUO|6`nR^u&3FNN_jGOc zw)Nw`wr3yIKhgcee6IaN=ws>M{6677%)hPwx&HzC(f&u~&)6@b2kNRzBDQAP0*H73 zq%McOmRk{B3i47qRe=DA*$&odrbEJZ*pV9XXa&p@wlW~@Yfs>V{yiTtplMhgM*-Bz zsSnlq&pG;z0OUN%$~$3=g1UF+G*>+17eRbBf3=y79J}KR8owon@$1Z7MIrvvWWH)34nK2SD)GsrJ{l z1Cl#oVo3A8qY3e=aF)qzms~FG#2$LzT=gs&aVMOj>(%{y<&O0cG!nCiESl~x=^dF{ zKvj8F1K8Ng171wwM5Fh4KoQw`_c6#y$(5cAm7e}~nJ#A*fx+c9;y#&W!#VukR)ugk zKp3=+;Ut+IYn%m+r4d*<`L2h%aDnX5}^!5R|H;(34AoVWjRx(msBZvk;rCI*|~ zdOijqI@9Z{Vu!~jvHW{lBa$rnl4+!s_5sfK3bCGk-B%iDe&@-}+%fOKU|(9?V1 zHE8&@4z)Kx!RAvAs z!Wic9=o#(bg?kc-G68-m(jZ`^=XGUXb)}t(%&~sjFnV^sEX%hSy6UKC4iOhgV=BHV z2w`4g7Y=s#Vu2B_?#VQ|hP39@eArgfX>-0S+dd&^mx0*wp}>)x;c4RUgxz%;oNe?& z-7-lJ@Y^2^C;=qJsxx5|xF)*pTGhch2B&kxtn;f!7=gznk}I3}Dh}(CoMXgA5-p&kS202!l?!fT3t|HG*rIP~mS* z$Wjo}jq3}z$Qq!9yrtd3fM0N629ZM?LU$nv@Tv9b7I;D|;0H2dsA~g7Z7zp1| zB)XmrkMgF6OQr|R)HHD^TE{Y#j!~SR?b`Xt3Qs`B+x<hxexYeAjMUWdZ-*n9%(1)Wb(n2U<><7&9dwGJmrob)4%H? zlQ%z+L-^$dFhhH|@u$%97Qz?*Ynh2VG@q|?8vY&L74&fs&_b&3$x&Oyjl~LQDRRap zJU4U*R+(2Dd!G+lh8!V{pT_UJn+^1Qg6$` zqkNm(a#hWyc6SP+p5=C4HL8-m`pO`5o~`-LI?_h5CsH?F_%?nDodmz&pWR20WTpJE z?N|wSzLjMUK8E)a2tI}Lf;+;*M|h3Y(U#>)g1>zk9|Hd}oZAa2 zLYBWBoSW!Ts!RwXr^8h+U*@{9{zqS^iH)Op<;r`Uw~nc}<^$V~_i%$GFjaG?X1@E|M`h)nekvFKt`Dh-f>@|0-`Xoq)o` zx;JmzDfOV9qCx|EVpogEe0LK~tGS?5$$L_i6P$P6wIsCQaP_;d{{N=iV@+8LI}o#( zvo*Ejy=IIn{rdIQh1&q-{EuohpVOjJ^Q3lD*YTp37$^RRgn8ihpdu5{Ct%5-KO!VL zcNB6dUajXI9jkm-P|i3~GB-A(X`P1Oqqb$tcku)UJw0w3GeUijb__#QT4j%64z%EeB7S?jlWwx_7&+EEvB|6N=kV}DwnyAlX=?j`) zmU#!$*^@NIu#n_d7;WoJV@*Fbv9|yJO4;n|BNF2xy(54RyB>t~8lUOUW$&2%Nwi1y zx6JxW88>U2$#qhl^6KUbtmg9}D0o5vYDT7kWJthLGkpGnN4T>{St^_EU>4;DmLF9o zr|LqsA8_MoNLQ=}w?8u!ziSZ@PC#Y<#9uJFo-ozVo6D;<8j^1$c|qAE3ZTE5i~zmE z$BU5lw6l=EWsg^y^;8>r9qH{xfL|~PZYK#md$zZ0?o11gV<*WSW~cgy2GYGQir%wf zt4iW8D+;s*;RGrmd(-T<@2&j(Cb9xhV*l-x`TpK`xq|7p?5R%5*s!69?2c!cC*VY* z2DE^9pvOPLU!1e}wA8S8opcTJ3`NB>hY=JQnL~QFXR4K8A$BqJnoEB$wn-%u@E6Mh zCfMF4kusv3N!(aHC}4)Xs^xoOwXd%e^6pi5|DZo=Q25j+6HlJ^7FodH6y1bMROR^q zGu6)fopS`h%Sw<;ZH%TEPf+#81-#_v+@8nlR0jLcIDKQtLleOC)6yLZgC!D9X3GgS zohwU{v$jl=quD#Go^hB{`@Qw*a%`(^jyT~=q^bWgGzRj;|12J55HWdCWV}EB|K=%N z3Nq-qxJJ`>^|1MNN+q}zTB&ooE3j==AgK@^UW<^oSbeALa2peF)Th6{@sj0KyMNHZ zksk1+MXN2tv+22A%cQOGpS9)77(uP9mh+!5T5ERLvF@b}$+WvXM45Z?-kCa)fb~f1 znVbTD$Gx-0Zxc`0D@YgHakge6SL0H`-vN_x?AP0>iGH0_EE&=v83hMJgaKAI0jJXm zVxVz;X<$v6WW7}fxROO7vr#YLP;;lij5VrX{;>7kK6TtOH&6|Ar^xo>00%+u$C4@# z>!jOt6*3><171+WxoZnKDTzJtDRw+T030;yI}~uV@9fCnei^I*j>Bp&mzP2d=FPb_ zCM*l_+$LDR3B*a!A$g#>xsrZvw0lckxmMg>0aQd7tPyN=t{dgXb;Ie+T8{fZH=gdu zM7Rg9c(kg(Jg0?ARRRl=AONFKrvFj)lTY$KfT%6^6s`mk*ABGhsce*LsoD>K{z_M2 ziPpnu+lw22PfF!CoId^6n*G4H(Ix+#+N{C(da7t1BYMGEaE#PdpOLxsVD5riQXHp@OX;`S`8VnpM~)I920w~<3|mo0 zf8~Az`*?2?H&gZ&*K&bRkV@qzvMlRHXys8*Ze2+1c?5o!^+$&MHxB@4Ee5cke52R! zmn7AZtY6ST%ixgU5)%$%QcwHj7Es-Qu^kLAPwy%7pGBw_4Q9#da^W2$}axNHr03)_nw z5?yuNmXrI5HgS46)c5&}B)Tts49oU92>3xBLLy}FMUW=84DQbVq^;7_e7|(Sdz|&J z73N+M`rc2rt*oSWu#7S{*s~nH6HRHJS1SmzeXk|;CA)FI4bat3<%}nkB%;;?=F>B7ms9QSxv#@+69;@>QaR?REYX4&)=itG>rM{<{A79Rmk)`5ON#GL`*KX%}Ihk3w(RtM-WLt z?f&FLF}4N^yE!(pZ&Yj&Bc`~K0@4_}*0Om?wN|}4WJ>WL;G^H2*QpgEkGA~OET-Km zkwz|5{6dnz1U<2Pe9DNL>3g5FEIvp1jzP&2K#z~j%g6!7B;^zF+o95?fV{3mnB8*RMhCDNp>Am-3e@jNfMj?jHV$MWjk!DDKP zkAz$Y?Sr)!GUOX}qTQ5aMh|wq1uq}~joWyKl=b_LboM#wi{CMuz5x6BKlA-qy++cM01D3b7`uD z#l6M4pI;JCypO8JZ6?U&wNxR!{4oB_ zlV!x9+-&Qy6{%MQ{~yoZGkKiTSC`YS_j22~G;xUV855g2&C(zm^V!(wpcm@zn{%!g z4}JGo(sGZ1O~to-}le

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..b52ad59 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + BoxApp + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..16e6423 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/values/themes.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/backup_rules.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/data_extraction_rules.xml b/fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/app/src/test/java/br/com/fiap/boxapp/ExampleUnitTest.kt b/fase01/trilha-android/projects/BoxApp/app/src/test/java/br/com/fiap/boxapp/ExampleUnitTest.kt new file mode 100644 index 0000000..0afcbbc --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/app/src/test/java/br/com/fiap/boxapp/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package br.com.fiap.boxapp + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/build.gradle b/fase01/trilha-android/projects/BoxApp/build.gradle new file mode 100644 index 0000000..29c5abd --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/build.gradle @@ -0,0 +1,10 @@ +buildscript { + ext { + compose_ui_version = '1.2.0' + } +}// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false + id 'org.jetbrains.kotlin.android' version '1.7.0' apply false +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/gradle.properties b/fase01/trilha-android/projects/BoxApp/gradle.properties new file mode 100644 index 0000000..3c5031e --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/fase01/trilha-android/projects/BoxApp/gradle/wrapper/gradle-wrapper.jar b/fase01/trilha-android/projects/BoxApp/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/BoxApp/gradle/wrapper/gradle-wrapper.properties b/fase01/trilha-android/projects/BoxApp/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..4af7f91 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sat Feb 24 13:46:43 BRT 2024 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/fase01/trilha-android/projects/BoxApp/gradlew b/fase01/trilha-android/projects/BoxApp/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/fase01/trilha-android/projects/BoxApp/gradlew.bat b/fase01/trilha-android/projects/BoxApp/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fase01/trilha-android/projects/BoxApp/settings.gradle b/fase01/trilha-android/projects/BoxApp/settings.gradle new file mode 100644 index 0000000..7fc5e1e --- /dev/null +++ b/fase01/trilha-android/projects/BoxApp/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} +rootProject.name = "BoxApp" +include ':app' diff --git a/fase01/trilha-android/projects/CalculodeJuros/.gitignore b/fase01/trilha-android/projects/CalculodeJuros/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/fase01/trilha-android/projects/CalculodeJuros/.idea/.gitignore b/fase01/trilha-android/projects/CalculodeJuros/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/fase01/trilha-android/projects/CalculodeJuros/.idea/.name b/fase01/trilha-android/projects/CalculodeJuros/.idea/.name new file mode 100644 index 0000000..4734dc0 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.idea/.name @@ -0,0 +1 @@ +Calculo de Juros \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/.idea/compiler.xml b/fase01/trilha-android/projects/CalculodeJuros/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/.idea/gradle.xml b/fase01/trilha-android/projects/CalculodeJuros/.idea/gradle.xml new file mode 100644 index 0000000..a2d7c21 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/.idea/inspectionProfiles/Project_Default.xml b/fase01/trilha-android/projects/CalculodeJuros/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..103e00c --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,32 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/.idea/kotlinc.xml b/fase01/trilha-android/projects/CalculodeJuros/.idea/kotlinc.xml new file mode 100644 index 0000000..e1eea1d --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/.idea/misc.xml b/fase01/trilha-android/projects/CalculodeJuros/.idea/misc.xml new file mode 100644 index 0000000..9f71c83 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/.gitignore b/fase01/trilha-android/projects/CalculodeJuros/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/build.gradle b/fase01/trilha-android/projects/CalculodeJuros/app/build.gradle new file mode 100644 index 0000000..f846aa2 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/build.gradle @@ -0,0 +1,70 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'br.com.fiap.calculodejuros' + compileSdk 33 + + defaultConfig { + applicationId "br.com.fiap.calculodejuros" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.3.2' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + // Dependência do LiveData + implementation "androidx.compose.runtime:runtime-livedata:1.4.3" +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/proguard-rules.pro b/fase01/trilha-android/projects/CalculodeJuros/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/androidTest/java/br/com/fiap/calculodejuros/ExampleInstrumentedTest.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/androidTest/java/br/com/fiap/calculodejuros/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..b6138a5 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/androidTest/java/br/com/fiap/calculodejuros/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package br.com.fiap.calculodejuros + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("br.com.fiap.calculodejuros", appContext.packageName) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/AndroidManifest.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..64b9048 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/MainActivity.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/MainActivity.kt new file mode 100644 index 0000000..454a149 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/MainActivity.kt @@ -0,0 +1,29 @@ +package br.com.fiap.calculodejuros + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.ui.Modifier +import br.com.fiap.calculodejuros.juros.JurosScreen +import br.com.fiap.calculodejuros.juros.JurosScreenViewModel +import br.com.fiap.calculodejuros.ui.theme.CalculoDeJurosTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + CalculoDeJurosTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + JurosScreen(JurosScreenViewModel()) + } + } + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/calculos/CalcularJuros.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/calculos/CalcularJuros.kt new file mode 100644 index 0000000..1d6178b --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/calculos/CalcularJuros.kt @@ -0,0 +1,9 @@ +package br.com.fiap.calculodejuros.calculos + +fun calcularJuros(capital: Double, taxa: Double, tempo: Double): Double { + return capital * taxa / 100 * tempo +} + +fun calcularMontante(capital: Double, juros: Double): Double { + return capital + juros +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CaixaDeEntrada.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CaixaDeEntrada.kt new file mode 100644 index 0000000..db98885 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CaixaDeEntrada.kt @@ -0,0 +1,40 @@ +package br.com.fiap.calculodejuros.components + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.unit.dp + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun CaixaDeEntrada ( + value: String, + placeholder: String, + label: String, + modifier: Modifier, + keyboardType: KeyboardType, + atualizarValor: (String) -> Unit +) { + OutlinedTextField ( + value = value, + onValueChange = { + atualizarValor(it) + }, + modifier = modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = placeholder) + }, + label = { + Text(text = label) + }, + keyboardOptions = KeyboardOptions(keyboardType = keyboardType) + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CardResultado.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CardResultado.kt new file mode 100644 index 0000000..d31a8f5 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/components/CardResultado.kt @@ -0,0 +1,73 @@ +package br.com.fiap.calculodejuros.components + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +@Composable +fun CardResultado (juros: Double, montante: Double) { + Card( + modifier = Modifier + .fillMaxWidth(), + colors = CardDefaults.cardColors( + containerColor = Color(0xFF4CAF50) + ) + ) { + Column( + modifier = Modifier + //.fillMaxSize() + .padding(16.dp) + ) { + Text( + text = "Resultado", + fontSize = 18.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Spacer(modifier = Modifier.height(16.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Juros", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = juros.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + Spacer(modifier = Modifier.height(8.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Montante", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = montante.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreen.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreen.kt new file mode 100644 index 0000000..2181554 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreen.kt @@ -0,0 +1,237 @@ +package br.com.fiap.calculodejuros.juros + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.calculodejuros.calculos.calcularJuros +import br.com.fiap.calculodejuros.calculos.calcularMontante +import br.com.fiap.calculodejuros.components.CaixaDeEntrada +import br.com.fiap.calculodejuros.components.CardResultado + +@Composable +fun JurosScreen(jurosScreenViewModel: JurosScreenViewModel) { + +// var capital by remember { mutableStateOf("") } + val capital by jurosScreenViewModel + .capitalState + .observeAsState(initial = "") + +// var taxa by remember { mutableStateOf("") } + val taxa by jurosScreenViewModel + .taxaState + .observeAsState(initial = "") + +// var tempo by remember { mutableStateOf("") } + val tempo by jurosScreenViewModel + .tempoState + .observeAsState(initial = "") + +// var juros by remember { mutableStateOf(0.0) } + val juros by jurosScreenViewModel + .jurosState + .observeAsState(initial = 0.0) + +// var montante by remember { mutableStateOf(0.0) } + val montante by jurosScreenViewModel + .montanteState + .observeAsState(initial = 0.0) + + Box( + modifier = Modifier.padding(16.dp), + contentAlignment = Alignment.Center + ) { + Column() { + Text( + text = "Cálculo de Juros Simples", + modifier = Modifier.fillMaxWidth(), + fontSize = 30.sp, + color = Color.DarkGray, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center + ) + Spacer(modifier = Modifier.height(32.dp)) + // Formulário para entrada de dados + Card( + modifier = Modifier + .fillMaxWidth() + ) { + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Dados do Investimento", + fontWeight = FontWeight.Bold + ) + + // Caixas de entrada da aplicação + /* + OutlinedTextField ( + value = capital, + onValueChange = { capital = it }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = "Quanto deseja investir?") + }, + label = { + Text(text = "Valor do investimento") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Decimal + ) + ) + + OutlinedTextField( + value = taxa, + onValueChange = { taxa = it }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = "Qual a taxa de juros mensal?") + }, + label = { + Text(text = "Taxa de juros mensal") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Decimal + ) + ) + OutlinedTextField ( + value = tempo, + onValueChange = { tempo = it }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + placeholder = { + Text(text = "Qual o tempo em meses?") + }, + label = { + Text(text = "Período em meses") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Decimal + ) + ) + */ + + // Caixas de entrada da Aplicação + CaixaDeEntrada ( + value = capital, + placeholder = "Quanto deseja investir?", + label = "Valor do investimento", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ) { + jurosScreenViewModel.onCapitalChanged(it) + } + + CaixaDeEntrada ( + value = taxa, + placeholder = "Qual a taxa de juros mensal?", + label = "Taxa de juros mensal", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ) { + jurosScreenViewModel.onTaxaChanged(it) + } + + CaixaDeEntrada ( + value = tempo, + placeholder = "Qual o período do investimento em meses?", + label = "Período em meses", + modifier = Modifier, + keyboardType = KeyboardType.Decimal + ) { + jurosScreenViewModel.onTempoChanged(it) + } + + Button( + onClick = { + jurosScreenViewModel.calcularJurosInvestimento() + jurosScreenViewModel.calcularMontanteInvestimento() + }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 32.dp) + ) { + Text(text = "CALCULAR") + } + } + } + Spacer(modifier = Modifier.height(16.dp)) + /* Resultado da aplicação + Card( + modifier = Modifier + .fillMaxWidth(), + colors = CardDefaults.cardColors( + containerColor = Color(0xFF4CAF50) + ) + ) { + Column( + modifier = Modifier + //.fillMaxSize() + .padding(16.dp) + ) { + Text( + text = "Resultado", + fontSize = 18.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Spacer(modifier = Modifier.height(16.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Juros", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = juros.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + } + Spacer(modifier = Modifier.height(8.dp)) + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = "Montante", + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = montante.toString(), + modifier = Modifier.padding(end = 8.dp), + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + */ + // Resultado da aplicação + CardResultado(juros = juros, montante = montante) + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreenViewModel.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreenViewModel.kt new file mode 100644 index 0000000..7b5717a --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/juros/JurosScreenViewModel.kt @@ -0,0 +1,52 @@ +package br.com.fiap.calculodejuros.juros + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import br.com.fiap.calculodejuros.calculos.calcularJuros +import br.com.fiap.calculodejuros.calculos.calcularMontante + +class JurosScreenViewModel: ViewModel() { + + private val _capital = MutableLiveData() + val capitalState: LiveData = _capital + + private val _taxa = MutableLiveData() + val taxaState: LiveData = _taxa + + private val _tempo = MutableLiveData() + val tempoState: LiveData = _tempo + + private val _juros = MutableLiveData() + val jurosState: LiveData = _juros + + private val _montante = MutableLiveData() + val montanteState: LiveData = _montante + + fun onCapitalChanged(novoCapital: String){ + _capital.value = novoCapital + } + + fun onTaxaChanged(novaTaxa: String){ + _taxa.value = novaTaxa + } + + fun onTempoChanged(novoTempo: String) { + _tempo.value = novoTempo + } + + fun calcularJurosInvestimento() { + _juros.value = calcularJuros( + capital = _capital.value!!.toDouble(), + taxa = _taxa.value!!.toDouble(), + tempo = _tempo.value!!.toDouble() + ) + } + + fun calcularMontanteInvestimento() { + _montante.value = calcularMontante( + _capital.value!!.toDouble(), + _juros.value!!.toDouble() + ) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Color.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Color.kt new file mode 100644 index 0000000..2cdcca0 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package br.com.fiap.calculodejuros.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Theme.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Theme.kt new file mode 100644 index 0000000..40a19f0 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Theme.kt @@ -0,0 +1,70 @@ +package br.com.fiap.calculodejuros.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView +import androidx.core.view.WindowCompat + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun CalculoDeJurosTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme + } + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Type.kt b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Type.kt new file mode 100644 index 0000000..f7175ea --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/java/br/com/fiap/calculodejuros/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package br.com.fiap.calculodejuros.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable/ic_launcher_background.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..8c860d5 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Calculo de Juros + \ No newline at end of file diff --git a/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..8d4c0b2 --- /dev/null +++ b/fase01/trilha-android/projects/CalculodeJuros/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/backup_rules.xml b/fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/data_extraction_rules.xml b/fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ColumnRow/app/src/test/java/br/com/fiap/columnrow/ExampleUnitTest.kt b/fase01/trilha-android/projects/ColumnRow/app/src/test/java/br/com/fiap/columnrow/ExampleUnitTest.kt new file mode 100644 index 0000000..c81afed --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/app/src/test/java/br/com/fiap/columnrow/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package br.com.fiap.columnrow + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ColumnRow/build.gradle b/fase01/trilha-android/projects/ColumnRow/build.gradle new file mode 100644 index 0000000..29c5abd --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/build.gradle @@ -0,0 +1,10 @@ +buildscript { + ext { + compose_ui_version = '1.2.0' + } +}// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false + id 'org.jetbrains.kotlin.android' version '1.7.0' apply false +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ColumnRow/gradle.properties b/fase01/trilha-android/projects/ColumnRow/gradle.properties new file mode 100644 index 0000000..3c5031e --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/fase01/trilha-android/projects/ColumnRow/gradle/wrapper/gradle-wrapper.jar b/fase01/trilha-android/projects/ColumnRow/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 zcma&O1CT9Y(k9%tZQHhO+qUh#ZQHhO+qmuS+qP|E@9xZO?0h@l{(r>DQ>P;GjjD{w zH}lENr;dU&FbEU?00aa80D$0M0RRB{U*7-#kbjS|qAG&4l5%47zyJ#WrfA#1$1Ctx zf&Z_d{GW=lf^w2#qRJ|CvSJUi(^E3iv~=^Z(zH}F)3Z%V3`@+rNB7gTVU{Bb~90p|f+0(v;nz01EG7yDMX9@S~__vVgv%rS$+?IH+oZ03D5zYrv|^ zC1J)SruYHmCki$jLBlTaE5&dFG9-kq3!^i>^UQL`%gn6)jz54$WDmeYdsBE9;PqZ_ zoGd=P4+|(-u4U1dbAVQrFWoNgNd;0nrghPFbQrJctO>nwDdI`Q^i0XJDUYm|T|RWc zZ3^Qgo_Qk$%Fvjj-G}1NB#ZJqIkh;kX%V{THPqOyiq)d)0+(r9o(qKlSp*hmK#iIY zA^)Vr$-Hz<#SF=0@tL@;dCQsm`V9s1vYNq}K1B)!XSK?=I1)tX+bUV52$YQu*0%fnWEukW>mxkz+%3-S!oguE8u#MGzST8_Dy^#U?fA@S#K$S@9msUiX!gd_ow>08w5)nX{-KxqMOo7d?k2&?Vf z&diGDtZr(0cwPe9z9FAUSD9KC)7(n^lMWuayCfxzy8EZsns%OEblHFSzP=cL6}?J| z0U$H!4S_TVjj<`6dy^2j`V`)mC;cB%* z8{>_%E1^FH!*{>4a7*C1v>~1*@TMcLK{7nEQ!_igZC}ikJ$*<$yHy>7)oy79A~#xE zWavoJOIOC$5b6*q*F_qN1>2#MY)AXVyr$6x4b=$x^*aqF*L?vmj>Mgv+|ITnw_BoW zO?jwHvNy^prH{9$rrik1#fhyU^MpFqF2fYEt(;4`Q&XWOGDH8k6M=%@fics4ajI;st# zCU^r1CK&|jzUhRMv;+W~6N;u<;#DI6cCw-otsc@IsN3MoSD^O`eNflIoR~l4*&-%RBYk@gb^|-JXs&~KuSEmMxB}xSb z@K76cXD=Y|=I&SNC2E+>Zg?R6E%DGCH5J1nU!A|@eX9oS(WPaMm==k2s_ueCqdZw| z&hqHp)47`c{BgwgvY2{xz%OIkY1xDwkw!<0veB#yF4ZKJyabhyyVS`gZepcFIk%e2 zTcrmt2@-8`7i-@5Nz>oQWFuMC_KlroCl(PLSodswHqJ3fn<;gxg9=}~3x_L3P`9Sn zChIf}8vCHvTriz~T2~FamRi?rh?>3bX1j}%bLH+uFX+p&+^aXbOK7clZxdU~6Uxgy z8R=obwO4dL%pmVo*Ktf=lH6hnlz_5k3cG;m8lgaPp~?eD!Yn2kf)tU6PF{kLyn|oI@eQ`F z3IF7~Blqg8-uwUuWZScRKn%c2_}dXB6Dx_&xR*n9M9LXasJhtZdr$vBY!rP{c@=)& z#!?L$2UrkvClwQO>U*fSMs67oSj2mxiJ$t;E|>q%Kh_GzzWWO&3;ufU%2z%ucBU8H z3WIwr$n)cfCXR&>tyB7BcSInK>=ByZA%;cVEJhcg<#6N{aZC4>K41XF>ZgjG`z_u& zGY?;Ad?-sgiOnI`oppF1o1Gurqbi*;#x2>+SSV6|1^G@ooVy@fg?wyf@0Y!UZ4!}nGuLeC^l)6pwkh|oRY`s1Pm$>zZ3u-83T|9 zGaKJIV3_x+u1>cRibsaJpJqhcm%?0-L;2 zitBrdRxNmb0OO2J%Y&Ym(6*`_P3&&5Bw157{o7LFguvxC$4&zTy#U=W*l&(Q2MNO} zfaUwYm{XtILD$3864IA_nn34oVa_g^FRuHL5wdUd)+W-p-iWCKe8m_cMHk+=? zeKX)M?Dt(|{r5t7IenkAXo%&EXIb-i^w+0CX0D=xApC=|Xy(`xy+QG^UyFe z+#J6h_&T5i#sV)hj3D4WN%z;2+jJcZxcI3*CHXGmOF3^)JD5j&wfX)e?-|V0GPuA+ zQFot%aEqGNJJHn$!_}#PaAvQ^{3-Ye7b}rWwrUmX53(|~i0v{}G_sI9uDch_brX&6 zWl5Ndj-AYg(W9CGfQf<6!YmY>Ey)+uYd_JNXH=>|`OH-CDCmcH(0%iD_aLlNHKH z7bcW-^5+QV$jK?R*)wZ>r9t}loM@XN&M-Pw=F#xn(;u3!(3SXXY^@=aoj70;_=QE9 zGghsG3ekq#N||u{4We_25U=y#T*S{4I{++Ku)> zQ!DZW;pVcn>b;&g2;YE#+V`v*Bl&Y-i@X6D*OpNA{G@JAXho&aOk(_j^weW{#3X5Y z%$q_wpb07EYPdmyH(1^09i$ca{O<}7) zRWncXdSPgBE%BM#by!E>tdnc$8RwUJg1*x($6$}ae$e9Knj8gvVZe#bLi!<+&BkFj zg@nOpDneyc+hU9P-;jmOSMN|*H#>^Ez#?;%C3hg_65leSUm;iz)UkW)jX#p)e&S&M z1|a?wDzV5NVnlhRBCd_;F87wp>6c<&nkgvC+!@KGiIqWY4l}=&1w7|r6{oBN8xyzh zG$b#2=RJp_iq6)#t5%yLkKx(0@D=C3w+oiXtSuaQ%I1WIb-eiE$d~!)b@|4XLy!CZ z9p=t=%3ad@Ep+<9003D2KZ5VyP~_n$=;~r&YUg5UZ0KVD&tR1DHy9x)qWtKJp#Kq# zP*8p#W(8JJ_*h_3W}FlvRam?<4Z+-H77^$Lvi+#vmhL9J zJ<1SV45xi;SrO2f=-OB(7#iNA5)x1uNC-yNxUw|!00vcW2PufRm>e~toH;M0Q85MQLWd?3O{i8H+5VkR@l9Dg-ma ze2fZ%>G(u5(k9EHj2L6!;(KZ8%8|*-1V|B#EagbF(rc+5iL_5;Eu)L4Z-V;0HfK4d z*{utLse_rvHZeQ>V5H=f78M3Ntg1BPxFCVD{HbNA6?9*^YIq;B-DJd{Ca2L#)qWP? zvX^NhFmX?CTWw&Ns}lgs;r3i+Bq@y}Ul+U%pzOS0Fcv9~aB(0!>GT0)NO?p=25LjN z2bh>6RhgqD7bQj#k-KOm@JLgMa6>%-ok1WpOe)FS^XOU{c?d5shG(lIn3GiVBxmg`u%-j=)^v&pX1JecJics3&jvPI)mDut52? z3jEA)DM%}BYbxxKrizVYwq?(P&19EXlwD9^-6J+4!}9{ywR9Gk42jjAURAF&EO|~N z)?s>$Da@ikI4|^z0e{r`J8zIs>SpM~Vn^{3fArRu;?+43>lD+^XtUcY1HidJwnR6+ z!;oG2=B6Z_=M%*{z-RaHc(n|1RTKQdNjjV!Pn9lFt^4w|AeN06*j}ZyhqZ^!-=cyGP_ShV1rGxkx8t zB;8`h!S{LD%ot``700d0@Grql(DTt4Awgmi+Yr0@#jbe=2#UkK%rv=OLqF)9D7D1j z!~McAwMYkeaL$~kI~90)5vBhBzWYc3Cj1WI0RS`z000R8-@ET0dA~*r(gSiCJmQMN&4%1D zyVNf0?}sBH8zNbBLn>~(W{d3%@kL_eQ6jEcR{l>C|JK z(R-fA!z|TTRG40|zv}7E@PqCAXP3n`;%|SCQ|ZS%ym$I{`}t3KPL&^l5`3>yah4*6 zifO#{VNz3)?ZL$be;NEaAk9b#{tV?V7 zP|wf5YA*1;s<)9A4~l3BHzG&HH`1xNr#%){4xZ!jq%o=7nN*wMuXlFV{HaiQLJ`5G zBhDi#D(m`Q1pLh@Tq+L;OwuC52RdW7b8}~60WCOK5iYMUad9}7aWBuILb({5=z~YF zt?*Jr5NG+WadM{mDL>GyiByCuR)hd zA=HM?J6l1Xv0Dl+LW@w$OTcEoOda^nFCw*Sy^I@$sSuneMl{4ys)|RY#9&NxW4S)9 zq|%83IpslTLoz~&vTo!Ga@?rj_kw{|k{nv+w&Ku?fyk4Ki4I?);M|5Axm)t+BaE)D zm(`AQ#k^DWrjbuXoJf2{Aj^KT zFb1zMSqxq|vceV+Mf-)$oPflsO$@*A0n0Z!R{&(xh8s}=;t(lIy zv$S8x>m;vQNHuRzoaOo?eiWFe{0;$s`Bc+Osz~}Van${u;g(su`3lJ^TEfo~nERfP z)?aFzpDgnLYiERsKPu|0tq4l2wT)Atr6Qb%m-AUn6HnCue*yWICp7TjW$@sO zm5rm4aTcPQ(rfi7a`xP7cKCFrJD}*&_~xgLyr^-bmsL}y;A5P|al8J3WUoBSjqu%v zxC;mK!g(7r6RRJ852Z~feoC&sD3(6}^5-uLK8o)9{8L_%%rItZK9C){UxB|;G>JbP zsRRtS4-3B*5c+K2kvmgZK8472%l>3cntWUOVHxB|{Ay~aOg5RN;{PJgeVD*H%ac+y!h#wi%o2bF2Ca8IyMyH{>4#{E_8u^@+l-+n=V}Sq?$O z{091@v%Bd*3pk0^2UtiF9Z+(a@wy6 zUdw8J*ze$K#=$48IBi1U%;hmhO>lu!uU;+RS}p&6@rQila7WftH->*A4=5W|Fmtze z)7E}jh@cbmr9iup^i%*(uF%LG&!+Fyl@LFA-}Ca#bxRfDJAiR2dt6644TaYw1Ma79 zt8&DYj31j^5WPNf5P&{)J?WlCe@<3u^78wnd(Ja4^a>{^Tw}W>|Cjt^If|7l^l)^Q zbz|7~CF(k_9~n|h;ysZ+jHzkXf(*O*@5m zLzUmbHp=x!Q|!9NVXyipZ3)^GuIG$k;D)EK!a5=8MFLI_lpf`HPKl=-Ww%z8H_0$j ztJ||IfFG1lE9nmQ0+jPQy zCBdKkjArH@K7jVcMNz);Q(Q^R{d5G?-kk;Uu_IXSyWB)~KGIizZL(^&qF;|1PI7!E zTP`%l)gpX|OFn&)M%txpQ2F!hdA~hX1Cm5)IrdljqzRg!f{mN%G~H1&oqe`5eJCIF zHdD7O;AX-{XEV(a`gBFJ9ews#CVS2y!&>Cm_dm3C8*n3MA*e67(WC?uP@8TXuMroq z{#w$%z@CBIkRM7?}Xib+>hRjy?%G!fiw8! z8(gB+8J~KOU}yO7UGm&1g_MDJ$IXS!`+*b*QW2x)9>K~Y*E&bYMnjl6h!{17_8d!%&9D`a7r&LKZjC<&XOvTRaKJ1 zUY@hl5^R&kZl3lU3njk`3dPzxj$2foOL26r(9zsVF3n_F#v)s5vv3@dgs|lP#eylq62{<-vczqP!RpVBTgI>@O6&sU>W|do17+#OzQ7o5A$ICH z?GqwqnK^n2%LR;$^oZM;)+>$X3s2n}2jZ7CdWIW0lnGK-b#EG01)P@aU`pg}th&J-TrU`tIpb5t((0eu|!u zQz+3ZiOQ^?RxxK4;zs=l8q!-n7X{@jSwK(iqNFiRColuEOg}!7cyZi`iBX4g1pNBj zAPzL?P^Ljhn;1$r8?bc=#n|Ed7wB&oHcw()&*k#SS#h}jO?ZB246EGItsz*;^&tzp zu^YJ0=lwsi`eP_pU8}6JA7MS;9pfD;DsSsLo~ogzMNP70@@;Fm8f0^;>$Z>~}GWRw!W5J3tNX*^2+1f3hz{~rIzJo z6W%J(H!g-eI_J1>0juX$X4Cl6i+3wbc~k146UIX&G22}WE>0ga#WLsn9tY(&29zBvH1$`iWtTe zG2jYl@P!P)eb<5DsR72BdI7-zP&cZNI{7q3e@?N8IKc4DE#UVr->|-ryuJXk^u^>4 z$3wE~=q390;XuOQP~TNoDR?#|NSPJ%sTMInA6*rJ%go|=YjGe!B>z6u$IhgQSwoV* zjy3F2#I>uK{42{&IqP59)Y(1*Z>>#W8rCf4_eVsH)`v!P#^;BgzKDR`ARGEZzkNX+ zJUQu=*-ol=Xqqt5=`=pA@BIn@6a9G8C{c&`i^(i+BxQO9?YZ3iu%$$da&Kb?2kCCo zo7t$UpSFWqmydXf@l3bVJ=%K?SSw)|?srhJ-1ZdFu*5QhL$~-IQS!K1s@XzAtv6*Y zl8@(5BlWYLt1yAWy?rMD&bwze8bC3-GfNH=p zynNFCdxyX?K&G(ZZ)afguQ2|r;XoV^=^(;Cku#qYn4Lus`UeKt6rAlFo_rU`|Rq z&G?~iWMBio<78of-2X(ZYHx~=U0Vz4btyXkctMKdc9UM!vYr~B-(>)(Hc|D zMzkN4!PBg%tZoh+=Gba!0++d193gbMk2&krfDgcbx0jI92cq?FFESVg0D$>F+bil} zY~$)|>1HZsX=5sAZ2WgPB5P=8X#TI+NQ(M~GqyVB53c6IdX=k>Wu@A0Svf5#?uHaF zsYn|koIi3$(%GZ2+G+7Fv^lHTb#5b8sAHSTnL^qWZLM<(1|9|QFw9pnRU{svj}_Al zL)b9>fN{QiA($8peNEJyy`(a{&uh-T4_kdZFIVsKKVM(?05}76EEz?#W za^fiZOAd14IJ4zLX-n7Lq0qlQ^lW8Cvz4UKkV9~P}>sq0?xD3vg+$4vLm~C(+ zM{-3Z#qnZ09bJ>}j?6ry^h+@PfaD7*jZxBEY4)UG&daWb??6)TP+|3#Z&?GL?1i+280CFsE|vIXQbm| zM}Pk!U`U5NsNbyKzkrul-DzwB{X?n3E6?TUHr{M&+R*2%yOiXdW-_2Yd6?38M9Vy^ z*lE%gA{wwoSR~vN0=no}tP2Ul5Gk5M(Xq`$nw#ndFk`tcpd5A=Idue`XZ!FS>Q zG^0w#>P4pPG+*NC9gLP4x2m=cKP}YuS!l^?sHSFftZy{4CoQrb_ z^20(NnG`wAhMI=eq)SsIE~&Gp9Ne0nD4%Xiu|0Fj1UFk?6avDqjdXz{O1nKao*46y zT8~iA%Exu=G#{x=KD;_C&M+Zx4+n`sHT>^>=-1YM;H<72k>$py1?F3#T1*ef9mLZw z5naLQr?n7K;2l+{_uIw*_1nsTn~I|kkCgrn;|G~##hM;9l7Jy$yJfmk+&}W@JeKcF zx@@Woiz8qdi|D%aH3XTx5*wDlbs?dC1_nrFpm^QbG@wM=i2?Zg;$VK!c^Dp8<}BTI zyRhAq@#%2pGV49*Y5_mV4+OICP|%I(dQ7x=6Ob}>EjnB_-_18*xrY?b%-yEDT(wrO z9RY2QT0`_OpGfMObKHV;QLVnrK%mc?$WAdIT`kJQT^n%GuzE7|9@k3ci5fYOh(287 zuIbg!GB3xLg$YN=n)^pHGB0jH+_iIiC=nUcD;G6LuJsjn2VI1cyZx=a?ShCsF==QK z;q~*m&}L<-cb+mDDXzvvrRsybcgQ;Vg21P(uLv5I+eGc7o7tc6`;OA9{soHFOz zT~2?>Ts}gprIX$wRBb4yE>ot<8+*Bv`qbSDv*VtRi|cyWS>)Fjs>fkNOH-+PX&4(~ z&)T8Zam2L6puQl?;5zg9h<}k4#|yH9czHw;1jw-pwBM*O2hUR6yvHATrI%^mvs9q_ z&ccT0>f#eDG<^WG^q@oVqlJrhxH)dcq2cty@l3~|5#UDdExyXUmLQ}f4#;6fI{f^t zDCsgIJ~0`af%YR%Ma5VQq-p21k`vaBu6WE?66+5=XUd%Ay%D$irN>5LhluRWt7 zov-=f>QbMk*G##&DTQyou$s7UqjjW@k6=!I@!k+S{pP8R(2=e@io;N8E`EOB;OGoI zw6Q+{X1_I{OO0HPpBz!X!@`5YQ2)t{+!?M_iH25X(d~-Zx~cXnS9z>u?+If|iNJbx zyFU2d1!ITX64D|lE0Z{dLRqL1Ajj=CCMfC4lD3&mYR_R_VZ>_7_~|<^o*%_&jevU+ zQ4|qzci=0}Jydw|LXLCrOl1_P6Xf@c0$ieK2^7@A9UbF{@V_0p%lqW|L?5k>bVM8|p5v&2g;~r>B8uo<4N+`B zH{J)h;SYiIVx@#jI&p-v3dwL5QNV1oxPr8J%ooezTnLW>i*3Isb49%5i!&ac_dEXv zvXmVUck^QHmyrF8>CGXijC_R-y(Qr{3Zt~EmW)-nC!tiH`wlw5D*W7Pip;T?&j%kX z6DkZX4&}iw>hE(boLyjOoupf6JpvBG8}jIh!!VhnD0>}KSMMo{1#uU6kiFcA04~|7 zVO8eI&x1`g4CZ<2cYUI(n#wz2MtVFHx47yE5eL~8bot~>EHbevSt}LLMQX?odD{Ux zJMnam{d)W4da{l7&y-JrgiU~qY3$~}_F#G7|MxT)e;G{U`In&?`j<5D->}cb{}{T(4DF0BOk-=1195KB-E*o@c?`>y#4=dMtYtSY=&L{!TAjFVcq0y@AH`vH! z$41+u!Ld&}F^COPgL(EE{0X7LY&%D7-(?!kjFF7=qw<;`V{nwWBq<)1QiGJgUc^Vz ztMUlq1bZqKn17|6x6iAHbWc~l1HcmAxr%$Puv!znW)!JiukwIrqQ00|H$Z)OmGG@= zv%A8*4cq}(?qn4rN6o`$Y))(MyXr8R<2S^J+v(wmFmtac!%VOfN?&(8Nr!T@kV`N; z*Q33V3t`^rN&aBiHet)18wy{*wi1=W!B%B-Q6}SCrUl$~Hl{@!95ydml@FK8P=u4s z4e*7gV2s=YxEvskw2Ju!2%{8h01rx-3`NCPc(O zH&J0VH5etNB2KY6k4R@2Wvl^Ck$MoR3=)|SEclT2ccJ!RI9Nuter7u9@;sWf-%um;GfI!=eEIQ2l2p_YWUd{|6EG ze{yO6;lMc>;2tPrsNdi@&1K6(1;|$xe8vLgiouj%QD%gYk`4p{Ktv9|j+!OF-P?@p z;}SV|oIK)iwlBs+`ROXkhd&NK zzo__r!B>tOXpBJMDcv!Mq54P+n4(@dijL^EpO1wdg~q+!DT3lB<>9AANSe!T1XgC=J^)IP0XEZ()_vpu!!3HQyJhwh?r`Ae%Yr~b% zO*NY9t9#qWa@GCPYOF9aron7thfWT`eujS4`t2uG6)~JRTI;f(ZuoRQwjZjp5Pg34 z)rp$)Kr?R+KdJ;IO;pM{$6|2y=k_siqvp%)2||cHTe|b5Ht8&A{wazGNca zX$Ol?H)E_R@SDi~4{d-|8nGFhZPW;Cts1;08TwUvLLv&_2$O6Vt=M)X;g%HUr$&06 zISZb(6)Q3%?;3r~*3~USIg=HcJhFtHhIV(siOwV&QkQe#J%H9&E21!C*d@ln3E@J* zVqRO^<)V^ky-R|%{(9`l-(JXq9J)1r$`uQ8a}$vr9E^nNiI*thK8=&UZ0dsFN_eSl z(q~lnD?EymWLsNa3|1{CRPW60>DSkY9YQ;$4o3W7Ms&@&lv9eH!tk~N&dhqX&>K@} zi1g~GqglxkZ5pEFkllJ)Ta1I^c&Bt6#r(QLQ02yHTaJB~- zCcE=5tmi`UA>@P=1LBfBiqk)HB4t8D?02;9eXj~kVPwv?m{5&!&TFYhu>3=_ zsGmYZ^mo*-j69-42y&Jj0cBLLEulNRZ9vXE)8~mt9C#;tZs;=#M=1*hebkS;7(aGf zcs7zH(I8Eui9UU4L--))yy`&d&$In&VA2?DAEss4LAPCLd>-$i?lpXvn!gu^JJ$(DoUlc6wE98VLZ*z`QGQov5l4Fm_h?V-;mHLYDVOwKz7>e4+%AzeO>P6v}ndPW| zM>m#6Tnp7K?0mbK=>gV}=@k*0Mr_PVAgGMu$j+pWxzq4MAa&jpCDU&-5eH27Iz>m^ zax1?*HhG%pJ((tkR(V(O(L%7v7L%!_X->IjS3H5kuXQT2!ow(;%FDE>16&3r){!ex zhf==oJ!}YU89C9@mfDq!P3S4yx$aGB?rbtVH?sHpg?J5C->!_FHM%Hl3#D4eplxzQ zRA+<@LD%LKSkTk2NyWCg7u=$%F#;SIL44~S_OGR}JqX}X+=bc@swpiClB`Zbz|f!4 z7Ysah7OkR8liXfI`}IIwtEoL}(URrGe;IM8%{>b1SsqXh)~w}P>yiFRaE>}rEnNkT z!HXZUtxUp1NmFm)Dm@-{FI^aRQqpSkz}ZSyKR%Y}YHNzBk)ZIp} zMtS=aMvkgWKm9&oTcU0?S|L~CDqA+sHpOxwnswF-fEG)cXCzUR?ps@tZa$=O)=L+5 zf%m58cq8g_o}3?Bhh+c!w4(7AjxwQ3>WnVi<{{38g7yFboo>q|+7qs<$8CPXUFAN< zG&}BHbbyQ5n|qqSr?U~GY{@GJ{(Jny{bMaOG{|IkUj7tj^9pa9|FB_<+KHLxSxR;@ zHpS$4V)PP+tx}22fWx(Ku9y+}Ap;VZqD0AZW4gCDTPCG=zgJmF{|x;(rvdM|2|9a}cex6xrMkERnkE;}jvU-kmzd%_J50$M`lIPCKf+^*zL=@LW`1SaEc%=m zQ+lT06Gw+wVwvQ9fZ~#qd430v2HndFsBa9WjD0P}K(rZYdAt^5WQIvb%D^Q|pkVE^ zte$&#~zmULFACGfS#g=2OLOnIf2Of-k!(BIHjs77nr!5Q1*I9 z1%?=~#Oss!rV~?-6Gm~BWJiA4mJ5TY&iPm_$)H1_rTltuU1F3I(qTQ^U$S>%$l z)Wx1}R?ij0idp@8w-p!Oz{&*W;v*IA;JFHA9%nUvVDy7Q8woheC#|8QuDZb-L_5@R zOqHwrh|mVL9b=+$nJxM`3eE{O$sCt$UK^2@L$R(r^-_+z?lOo+me-VW=Zw z-Bn>$4ovfWd%SPY`ab-u9{INc*k2h+yH%toDHIyqQ zO68=u`N}RIIs7lsn1D){)~%>ByF<>i@qFb<-axvu(Z+6t7v<^z&gm9McRB~BIaDn$ z#xSGT!rzgad8o>~kyj#h1?7g96tOcCJniQ+*#=b7wPio>|6a1Z?_(TS{)KrPe}(8j z!#&A=k(&Pj^F;r)CI=Z{LVu>uj!_W1q4b`N1}E(i%;BWjbEcnD=mv$FL$l?zS6bW!{$7j1GR5ocn94P2u{ z70tAAcpqtQo<@cXw~@i-@6B23;317|l~S>CB?hR5qJ%J3EFgyBdJd^fHZu7AzHF(BQ!tyAz^L0`X z23S4Fe{2X$W0$zu9gm%rg~A>ijaE#GlYlrF9$ds^QtaszE#4M(OLVP2O-;XdT(XIC zatwzF*)1c+t~c{L=fMG8Z=k5lv>U0;C{caN1NItnuSMp)6G3mbahu>E#sj&oy94KC zpH}8oEw{G@N3pvHhp{^-YaZeH;K+T_1AUv;IKD<=mv^&Ueegrb!yf`4VlRl$M?wsl zZyFol(2|_QM`e_2lYSABpKR{{NlxlDSYQNkS;J66aT#MSiTx~;tUmvs-b*CrR4w=f z8+0;*th6kfZ3|5!Icx3RV11sp=?`0Jy3Fs0N4GZQMN=8HmT6%x9@{Dza)k}UwL6JT zHRDh;%!XwXr6yuuy`4;Xsn0zlR$k%r%9abS1;_v?`HX_hI|+EibVnlyE@3aL5vhQq zlIG?tN^w@0(v9M*&L+{_+RQZw=o|&BRPGB>e5=ys7H`nc8nx)|-g;s7mRc7hg{GJC zAe^vCIJhajmm7C6g! zL&!WAQ~5d_5)00?w_*|*H>3$loHrvFbitw#WvLB!JASO?#5Ig5$Ys10n>e4|3d;tS zELJ0|R4n3Az(Fl3-r^QiV_C;)lQ1_CW{5bKS15U|E9?ZgLec@%kXr84>5jV2a5v=w z?pB1GPdxD$IQL4)G||B_lI+A=08MUFFR4MxfGOu07vfIm+j=z9tp~5i_6jb`tR>qV z$#`=BQ*jpCjm$F0+F)L%xRlnS%#&gro6PiRfu^l!EVan|r3y}AHJQOORGx4~ z&<)3=K-tx518DZyp%|!EqpU!+X3Et7n2AaC5(AtrkW>_57i}$eqs$rupubg0a1+WO zGHZKLN2L0D;ab%{_S1Plm|hx8R?O14*w*f&2&bB050n!R2by zw!@XOQx$SqZ5I<(Qu$V6g>o#A!JVwErWv#(Pjx=KeS0@hxr4?13zj#oWwPS(7Ro|v z>Mp@Kmxo79q|}!5qtX2-O@U&&@6s~!I&)1WQIl?lTnh6UdKT_1R640S4~f=_xoN3- zI+O)$R@RjV$F=>Ti7BlnG1-cFKCC(t|Qjm{SalS~V-tX#+2ekRhwmN zZr`8{QF6y~Z!D|{=1*2D-JUa<(1Z=;!Ei!KiRNH?o{p5o3crFF=_pX9O-YyJchr$~ zRC`+G+8kx~fD2k*ZIiiIGR<8r&M@3H?%JVOfE>)})7ScOd&?OjgAGT@WVNSCZ8N(p zuQG~76GE3%(%h1*vUXg$vH{ua0b`sQ4f0*y=u~lgyb^!#CcPJa2mkSEHGLsnO^kb$ zru5_l#nu=Y{rSMWiYx?nO{8I!gH+?wEj~UM?IrG}E|bRIBUM>UlY<`T1EHpRr36vv zBi&dG8oxS|J$!zoaq{+JpJy+O^W(nt*|#g32bd&K^w-t>!Vu9N!k9eA8r!Xc{utY> zg9aZ(D2E0gL#W0MdjwES-7~Wa8iubPrd?8-$C4BP?*wok&O8+ykOx{P=Izx+G~hM8 z*9?BYz!T8~dzcZr#ux8kS7u7r@A#DogBH8km8Ry4slyie^n|GrTbO|cLhpqgMdsjX zJ_LdmM#I&4LqqsOUIXK8gW;V0B(7^$y#h3h>J0k^WJfAMeYek%Y-Dcb_+0zPJez!GM zAmJ1u;*rK=FNM0Nf}Y!!P9c4)HIkMnq^b;JFd!S3?_Qi2G#LIQ)TF|iHl~WKK6JmK zbv7rPE6VkYr_%_BT}CK8h=?%pk@3cz(UrZ{@h40%XgThP*-Oeo`T0eq9 zA8BnWZKzCy5e&&_GEsU4*;_k}(8l_&al5K-V*BFM=O~;MgRkYsOs%9eOY6s6AtE*<7GQAR2ulC3RAJrG_P1iQK5Z~&B z&f8X<>yJV6)oDGIlS$Y*D^Rj(cszTy5c81a5IwBr`BtnC6_e`ArI8CaTX_%rx7;cn zR-0?J_LFg*?(#n~G8cXut(1nVF0Oka$A$1FGcERU<^ggx;p@CZc?3UB41RY+wLS`LWFNSs~YP zuw1@DNN3lTd|jDL7gjBsd9}wIw}4xT2+8dBQzI00m<@?c2L%>}QLfK5%r!a-iII`p zX@`VEUH)uj^$;7jVUYdADQ2k*!1O3WdfgF?OMtUXNpQ1}QINamBTKDuv19^{$`8A1 zeq%q*O0mi@(%sZU>Xdb0Ru96CFqk9-L3pzLVsMQ`Xpa~N6CR{9Rm2)A|CI21L(%GW zh&)Y$BNHa=FD+=mBw3{qTgw)j0b!Eahs!rZnpu)z!!E$*eXE~##yaXz`KE5(nQM`s zD!$vW9XH)iMxu9R>r$VlLk9oIR%HxpUiW=BK@4U)|1WNQ=mz9a z^!KkO=>GaJ!GBXm{KJj^;kh-MkUlEQ%lza`-G&}C5y1>La1sR6hT=d*NeCnuK%_LV zOXt$}iP6(YJKc9j-Fxq~*ItVUqljQ8?oaysB-EYtFQp9oxZ|5m0^Hq(qV!S+hq#g( z?|i*H2MIr^Kxgz+3vIljQ*Feejy6S4v~jKEPTF~Qhq!(ms5>NGtRgO5vfPPc4Z^AM zTj!`5xEreIN)vaNxa|q6qWdg>+T`Ol0Uz)ckXBXEGvPNEL3R8hB3=C5`@=SYgAju1 z!)UBr{2~=~xa{b8>x2@C7weRAEuatC)3pkRhT#pMPTpSbA|tan%U7NGMvzmF?c!V8 z=pEWxbdXbTAGtWTyI?Fml%lEr-^AE}w#l(<7OIw;ctw}imYax&vR4UYNJZK6P7ZOd zP87XfhnUHxCUHhM@b*NbTi#(-8|wcv%3BGNs#zRCVV(W?1Qj6^PPQa<{yaBwZ`+<`w|;rqUY_C z&AeyKwwf*q#OW-F()lir=T^<^wjK65Lif$puuU5+tk$;e_EJ;Lu+pH>=-8=PDhkBg z8cWt%@$Sc#C6F$Vd+0507;{OOyT7Hs%nKS88q-W!$f~9*WGBpHGgNp}=C*7!RiZ5s zn1L_DbKF@B8kwhDiLKRB@lsXVVLK|ph=w%_`#owlf@s@V(pa`GY$8h%;-#h@TsO|Y8V=n@*!Rog7<7Cid%apR|x zOjhHCyfbIt%+*PCveTEcuiDi%Wx;O;+K=W?OFUV%)%~6;gl?<0%)?snDDqIvkHF{ zyI02)+lI9ov42^hL>ZRrh*HhjF9B$A@=H94iaBESBF=eC_KT$8A@uB^6$~o?3Wm5t1OIaqF^~><2?4e3c&)@wKn9bD? zoeCs;H>b8DL^F&>Xw-xjZEUFFTv>JD^O#1E#)CMBaG4DX9bD(Wtc8Rzq}9soQ8`jf zeSnHOL}<+WVSKp4kkq&?SbETjq6yr@4%SAqOG=9E(3YeLG9dtV+8vmzq+6PFPk{L; z(&d++iu=^F%b+ea$i2UeTC{R*0Isk;vFK!no<;L+(`y`3&H-~VTdKROkdyowo1iqR zbVW(3`+(PQ2>TKY>N!jGmGo7oeoB8O|P_!Ic@ zZ^;3dnuXo;WJ?S+)%P>{Hcg!Jz#2SI(s&dY4QAy_vRlmOh)QHvs_7c&zkJCmJGVvV zX;Mtb>QE+xp`KyciG$Cn*0?AK%-a|=o!+7x&&yzHQOS>8=B*R=niSnta^Pxp1`=md z#;$pS$4WCT?mbiCYU?FcHGZ#)kHVJTTBt^%XE(Q};aaO=Zik0UgLcc0I(tUpt(>|& zcxB_|fxCF7>&~5eJ=Dpn&5Aj{A^cV^^}(7w#p;HG&Q)EaN~~EqrE1qKrMAc&WXIE;>@<&)5;gD2?={Xf@Mvn@OJKw=8Mgn z!JUFMwD+s==JpjhroT&d{$kQAy%+d`a*XxDEVxy3`NHzmITrE`o!;5ClXNPb4t*8P zzAivdr{j_v!=9!^?T3y?gzmqDWX6mkzhIzJ-3S{T5bcCFMr&RPDryMcdwbBuZbsgN zGrp@^i?rcfN7v0NKGzDPGE#4yszxu=I_`MI%Z|10nFjU-UjQXXA?k8Pk|OE<(?ae) zE%vG#eZAlj*E7_3dx#Zz4kMLj>H^;}33UAankJiDy5ZvEhrjr`!9eMD8COp}U*hP+ zF}KIYx@pkccIgyxFm#LNw~G&`;o&5)2`5aogs`1~7cMZQ7zj!%L4E`2yzlQN6REX20&O<9 zKV6fyr)TScJPPzNTC2gL+0x#=u>(({{D7j)c-%tvqls3#Y?Z1m zV5WUE)zdJ{$p>yX;^P!UcXP?UD~YM;IRa#Rs5~l+*$&nO(;Ers`G=0D!twR(0GF@c zHl9E5DQI}Oz74n zfKP>&$q0($T4y$6w(p=ERAFh+>n%iaeRA%!T%<^+pg?M)@ucY<&59$x9M#n+V&>}=nO9wCV{O~lg&v#+jcUj(tQ z`0u1YH)-`U$15a{pBkGyPL0THv1P|4e@pf@3IBZS4dVJPo#H>pWq%Lr0YS-SeWash z8R7=jb28KPMI|_lo#GEO|5B?N_e``H*23{~a!AmUJ+fb4HX-%QI@lSEUxKlGV7z7Q zSKw@-TR>@1RL%w{x}dW#k1NgW+q4yt2Xf1J62Bx*O^WG8OJ|FqI4&@d3_o8Id@*)4 zYrk=>@!wv~mh7YWv*bZhxqSmFh2Xq)o=m;%n$I?GSz49l1$xRpPu_^N(vZ>*>Z<04 z2+rP70oM=NDysd!@fQdM2OcyT?3T^Eb@lIC-UG=Bw{BjQ&P`KCv$AcJ;?`vdZ4){d z&gkoUK{$!$$K`3*O-jyM1~p-7T*qb)Ys>Myt^;#1&a%O@x8A+E>! zY8=eD`ZG)LVagDLBeHg>=atOG?Kr%h4B%E6m@J^C+U|y)XX@f z8oyJDW|9g=<#f<{JRr{y#~euMnv)`7j=%cHWLc}ngjq~7k**6%4u>Px&W%4D94(r* z+akunK}O0DC2A%Xo9jyF;DobX?!1I(7%}@7F>i%&nk*LMO)bMGg2N+1iqtg+r(70q zF5{Msgsm5GS7DT`kBsjMvOrkx&|EU!{{~gL4d2MWrAT=KBQ-^zQCUq{5PD1orxlIL zq;CvlWx#f1NWvh`hg011I%?T_s!e38l*lWVt|~z-PO4~~1g)SrJ|>*tXh=QfXT)%( z+ex+inPvD&O4Ur;JGz>$sUOnWdpSLcm1X%aQDw4{dB!cnj`^muI$CJ2%p&-kULVCE z>$eMR36kN$wCPR+OFDM3-U(VOrp9k3)lI&YVFqd;Kpz~K)@Fa&FRw}L(SoD z9B4a+hQzZT-BnVltst&=kq6Y(f^S4hIGNKYBgMxGJ^;2yrO}P3;r)(-I-CZ)26Y6? z&rzHI_1GCvGkgy-t1E;r^3Le30|%$ebDRu2+gdLG)r=A~Qz`}~&L@aGJ{}vVs_GE* zVUjFnzHiXfKQbpv&bR&}l2bzIjAooB)=-XNcYmrGmBh(&iu@o!^hn0^#}m2yZZUK8 zufVm7Gq0y`Mj;9b>`c?&PZkU0j4>IL=UL&-Lp3j&47B5pAW4JceG{!XCA)kT<%2nqCxj<)uy6XR_uws~>_MEKPOpAQ!H zkn>FKh)<9DwwS*|Y(q?$^N!6(51O0 z^JM~Ax{AI1Oj$fs-S5d4T7Z_i1?{%0SsIuQ&r8#(JA=2iLcTN+?>wOL532%&dMYkT z*T5xepC+V6zxhS@vNbMoi|i)=rpli@R9~P!39tWbSSb904ekv7D#quKbgFEMTb48P zuq(VJ+&L8aWU(_FCD$3^uD!YM%O^K(dvy~Wm2hUuh6bD|#(I39Xt>N1Y{ZqXL`Fg6 zKQ?T2htHN!(Bx;tV2bfTtIj7e)liN-29s1kew>v(D^@)#v;}C4-G=7x#;-dM4yRWm zyY`cS21ulzMK{PoaQ6xChEZ}o_#}X-o}<&0)$1#3we?+QeLt;aVCjeA)hn!}UaKt< zat1fHEx13y-rXNMvpUUmCVzocPmN~-Y4(YJvQ#db)4|%B!rBsgAe+*yor~}FrNH08 z3V!97S}D7d$zbSD{$z;@IYMxM6aHdypIuS*pr_U6;#Y!_?0i|&yU*@16l z*dcMqDQgfNBf}?quiu4e>H)yTVfsp#f+Du0@=Kc41QockXkCkvu>FBd6Q+@FL!(Yx z2`YuX#eMEiLEDhp+9uFqME_E^faV&~9qjBHJkIp~%$x^bN=N)K@kvSVEMdDuzA0sn z88CBG?`RX1@#hQNd`o^V{37)!w|nA)QfiYBE^m=yQKv-fQF+UCMcuEe1d4BH7$?>b zJl-r9@0^Ie=)guO1vOd=i$_4sz>y3x^R7n4ED!5oXL3@5**h(xr%Hv)_gILarO46q+MaDOF%ChaymKoI6JU5Pg;7#2n9-18|S1;AK+ zgsn6;k6-%!QD>D?cFy}8F;r@z8H9xN1jsOBw2vQONVqBVEbkiNUqgw~*!^##ht>w0 zUOykwH=$LwX2j&nLy=@{hr)2O&-wm-NyjW7n~Zs9UlH;P7iP3 zI}S(r0YFVYacnKH(+{*)Tbw)@;6>%=&Th=+Z6NHo_tR|JCI8TJiXv2N7ei7M^Q+RM z?9o`meH$5Yi;@9XaNR#jIK^&{N|DYNNbtdb)XW1Lv2k{E>;?F`#Pq|&_;gm~&~Zc9 zf+6ZE%{x4|{YdtE?a^gKyzr}dA>OxQv+pq|@IXL%WS0CiX!V zm$fCePA%lU{%pTKD7|5NJHeXg=I0jL@$tOF@K*MI$)f?om)D63K*M|r`gb9edD1~Y zc|w7N)Y%do7=0{RC|AziW7#am$)9jciRJ?IWl9PE{G3U+$%FcyKs_0Cgq`=K3@ttV z9g;M!3z~f_?P%y3-ph%vBMeS@p7P&Ea8M@97+%XEj*(1E6vHj==d zjsoviB>j^$_^OI_DEPvFkVo(BGRo%cJeD){6Uckei=~1}>sp299|IRjhXe)%?uP0I zF5+>?0#Ye}T^Y$u_rc4=lPcq4K^D(TZG-w30-YiEM=dcK+4#o*>lJ8&JLi+3UcpZk z!^?95S^C0ja^jwP`|{<+3cBVog$(mRdQmadS+Vh~z zS@|P}=|z3P6uS+&@QsMp0no9Od&27O&14zHXGAOEy zh~OKpymK5C%;LLb467@KgIiVwYbYd6wFxI{0-~MOGfTq$nBTB!{SrWmL9Hs}C&l&l#m?s*{tA?BHS4mVKHAVMqm63H<|c5n0~k)-kbg zXidai&9ZUy0~WFYYKT;oe~rytRk?)r8bptITsWj(@HLI;@=v5|XUnSls7$uaxFRL+ zRVMGuL3w}NbV1`^=Pw*0?>bm8+xfeY(1PikW*PB>>Tq(FR`91N0c2&>lL2sZo5=VD zQY{>7dh_TX98L2)n{2OV=T10~*YzX27i2Q7W86M4$?gZIXZaBq#sA*{PH8){|GUi;oM>e?ua7eF4WFuFYZSG| zze?srg|5Ti8Og{O zeFxuw9!U+zhyk?@w zjsA6(oKD=Ka;A>Ca)oPORxK+kxH#O@zhC!!XS4@=swnuMk>t+JmLmFiE^1aX3f<)D@`%K0FGK^gg1a1j>zi z2KhV>sjU7AX3F$SEqrXSC}fRx64GDoc%!u2Yag68Lw@w9v;xOONf@o)Lc|Uh3<21ctTYu-mFZuHk*+R{GjXHIGq3p)tFtQp%TYqD=j1&y)>@zxoxUJ!G@ zgI0XKmP6MNzw>nRxK$-Gbzs}dyfFzt>#5;f6oR27ql!%+{tr+(`(>%51|k`ML} zY4eE)Lxq|JMas(;JibNQds1bUB&r}ydMQXBY4x(^&fY_&LlQC)3hylc$~8&~|06-D z#T+%66rYbHX%^KuqJED_wuGB+=h`nWA!>1n0)3wZrBG3%`b^Ozv6__dNa@%V14|!D zQ?o$z5u0^8`giv%qE!BzZ!3j;BlDlJDk)h@9{nSQeEk!z9RGW) z${RSF3phEM*ce*>Xdp}585vj$|40=&S{S-GTiE?Op*vY&Lvr9}BO$XWy80IF+6@%n z5*2ueT_g@ofP#u5pxb7n*fv^Xtt7&?SRc{*2Ka-*!BuOpf}neHGCiHy$@Ka1^Dint z;DkmIL$-e)rj4o2WQV%Gy;Xg(_Bh#qeOsTM2f@KEe~4kJ8kNLQ+;(!j^bgJMcNhvklP5Z6I+9Fq@c&D~8Fb-4rmDT!MB5QC{Dsb;BharP*O;SF4& zc$wj-7Oep7#$WZN!1nznc@Vb<_Dn%ga-O#J(l=OGB`dy=Sy&$(5-n3zzu%d7E#^8`T@}V+5B;PP8J14#4cCPw-SQTdGa2gWL0*zKM z#DfSXs_iWOMt)0*+Y>Lkd=LlyoHjublNLefhKBv@JoC>P7N1_#> zv=mLWe96%EY;!ZGSQDbZWb#;tzqAGgx~uk+-$+2_8U`!ypbwXl z^2E-FkM1?lY@yt8=J3%QK+xaZ6ok=-y%=KXCD^0r!5vUneW>95PzCkOPO*t}p$;-> ze5j-BLT_;)cZQzR2CEsm@rU7GZfFtdp*a|g4wDr%8?2QkIGasRfDWT-Dvy*U{?IHT z*}wGnzdlSptl#ZF^sf)KT|BJs&kLG91^A6ls{CzFprZ6-Y!V0Xysh%9p%iMd7HLsS zN+^Un$tDV)T@i!v?3o0Fsx2qI(AX_$dDkBzQ@fRM%n zRXk6hb9Py#JXUs+7)w@eo;g%QQ95Yq!K_d=z{0dGS+pToEI6=Bo8+{k$7&Z zo4>PH(`ce8E-Ps&uv`NQ;U$%t;w~|@E3WVOCi~R4oj5wP?%<*1C%}Jq%a^q~T7u>K zML5AKfQDv6>PuT`{SrKHRAF+^&edg6+5R_#H?Lz3iGoWo#PCEd0DS;)2U({{X#zU^ zw_xv{4x7|t!S)>44J;KfA|DC?;uQ($l+5Vp7oeqf7{GBF9356nx|&B~gs+@N^gSdd zvb*>&W)|u#F{Z_b`f#GVtQ`pYv3#||N{xj1NgB<#=Odt6{eB%#9RLt5v zIi|0u70`#ai}9fJjKv7dE!9ZrOIX!3{$z_K5FBd-Kp-&e4(J$LD-)NMTp^_pB`RT; zftVVlK2g@+1Ahv2$D){@Y#cL#dUj9*&%#6 zd2m9{1NYp>)6=oAvqdCn5#cx{AJ%S8skUgMglu2*IAtd+z1>B&`MuEAS(D(<6X#Lj z?f4CFx$)M&$=7*>9v1ER4b6!SIz-m0e{o0BfkySREchp?WdVPpQCh!q$t>?rL!&Jg zd#heM;&~A}VEm8Dvy&P|J*eAV&w!&Nx6HFV&B8jJFVTmgLaswn!cx$&%JbTsloz!3 zMEz1d`k==`Ueub_JAy_&`!ogbwx27^ZXgFNAbx=g_I~5nO^r)}&myw~+yY*cJl4$I znNJ32M&K=0(2Dj_>@39`3=FX!v3nZHno_@q^!y}%(yw0PqOo=);6Y@&ylVe>nMOZ~ zd>j#QQSBn3oaWd;qy$&5(5H$Ayi)0haAYO6TH>FR?rhqHmNOO+(})NB zLI@B@v0)eq!ug`>G<@htRlp3n!EpU|n+G+AvXFrWSUsLMBfL*ZB`CRsIVHNTR&b?K zxBgsN0BjfB>UVcJ|x%=-zb%OV7lmZc& zxiupadZVF7)6QuhoY;;FK2b*qL0J-Rn-8!X4ZY$-ZSUXV5DFd7`T41c(#lAeLMoeT z4%g655v@7AqT!i@)Edt5JMbN(=Q-6{=L4iG8RA%}w;&pKmtWvI4?G9pVRp|RTw`g0 zD5c12B&A2&P6Ng~8WM2eIW=wxd?r7A*N+&!Be7PX3s|7~z=APxm=A?5 zt>xB4WG|*Td@VX{Rs)PV0|yK`oI3^xn(4c_j&vgxk_Y3o(-`_5o`V zRTghg6%l@(qodXN;dB#+OKJEEvhfcnc#BeO2|E(5df-!fKDZ!%9!^BJ_4)9P+9Dq5 zK1=(v?KmIp34r?z{NEWnLB3Px{XYwy-akun4F7xTRr2^zeYW{gcK9)>aJDdU5;w5@ zak=<+-PLH-|04pelTb%ULpuuuJC7DgyT@D|p{!V!0v3KpDnRjANN12q6SUR3mb9<- z>2r~IApQGhstZ!3*?5V z8#)hJ0TdZg0M-BK#nGFP>$i=qk82DO z7h;Ft!D5E15OgW)&%lej*?^1~2=*Z5$2VX>V{x8SC+{i10BbtUk9@I#Vi&hX)q

Q!LwySI{Bnv%Sm)yh{^sSVJ8&h_D-BJ_YZe5eCaAWU9b$O2c z$T|{vWVRtOL!xC0DTc(Qbe`ItNtt5hr<)VijD0{U;T#bUEp381_y`%ZIav?kuYG{iyYdEBPW=*xNSc;Rlt6~F4M`5G+VtOjc z*0qGzCb@gME5udTjJA-9O<&TWd~}ysBd(eVT1-H82-doyH9RST)|+Pb{o*;$j9Tjs zhU!IlsPsj8=(x3bAKJTopW3^6AKROHR^7wZ185wJGVhA~hEc|LP;k7NEz-@4p5o}F z`AD6naG3(n=NF9HTH81=F+Q|JOz$7wm9I<+#BSmB@o_cLt2GkW9|?7mM;r!JZp89l zbo!Hp8=n!XH1{GwaDU+k)pGp`C|cXkCU5%vcH)+v@0eK>%7gWxmuMu9YLlChA|_D@ zi#5zovN_!a-0?~pUV-Rj*1P)KwdU-LguR>YM&*Nen+ln8Q$?WFCJg%DY%K}2!!1FE zDv-A%Cbwo^p(lzac&_TZ-l#9kq`mhLcY3h9ZTUVCM(Ad&=EriQY5{jJv<5K&g|*Lk zgV%ILnf1%8V2B0E&;Sp4sYbYOvvMebLwYwzkRQ#F8GpTQq#uv=J`uaSJ34OWITeSGo6+-8Xw znCk*n{kdDEi)Hi&u^)~cs@iyCkFWB2SWZU|Uc%^43ZIZQ-vWNExCCtDWjqHs;;tWf$v{}0{p0Rvxkq``)*>+Akq%|Na zA`@~-Vfe|+(AIlqru+7Ceh4nsVmO9p9jc8}HX^W&ViBDXT+uXbT#R#idPn&L>+#b6 zflC-4C5-X;kUnR~L>PSLh*gvL68}RBsu#2l`s_9KjUWRhiqF`j)`y`2`YU(>3bdBj z?>iyjEhe-~$^I5!nn%B6Wh+I`FvLNvauve~eX<+Ipl&04 zT}};W&1a3%W?dJ2=N#0t?e+aK+%t}5q%jSLvp3jZ%?&F}nOOWr>+{GFIa%wO_2`et z=JzoRR~}iKuuR+azPI8;Gf9)z3kyA4EIOSl!sRR$DlW}0>&?GbgPojmjmnln;cTqCt=ADbE zZ8GAnoM+S1(5$i8^O4t`ue;vO4i}z0wz-QEIVe5_u03;}-!G1NyY8;h^}y;tzY}i5 zqQr#Ur3Fy8sSa$Q0ys+f`!`+>9WbvU_I`Sj;$4{S>O3?#inLHCrtLy~!s#WXV=oVP zeE93*Nc`PBi4q@%Ao$x4lw9vLHM!6mn3-b_cebF|n-2vt-zYVF_&sDE--J-P;2WHo z+@n2areE0o$LjvjlV2X7ZU@j+`{*8zq`JR3gKF#EW|#+{nMyo-a>nFFTg&vhyT=b} zDa8+v0(Dgx0yRL@ZXOYIlVSZ0|MFizy0VPW8;AfA5|pe!#j zX}Py^8fl5SyS4g1WSKKtnyP+_PoOwMMwu`(i@Z)diJp~U54*-miOchy7Z35eL>^M z4p<-aIxH4VUZgS783@H%M7P9hX>t{|RU7$n4T(brCG#h9e9p! z+o`i;EGGq3&pF;~5V~eBD}lC)>if$w%Vf}AFxGqO88|ApfHf&Bvu+xdG)@vuF}Yvk z)o;~k-%+0K0g+L`Wala!$=ZV|z$e%>f0%XoLib%)!R^RoS+{!#X?h-6uu zF&&KxORdZU&EwQFITIRLo(7TA3W}y6X{?Y%y2j0It!ekU#<)$qghZtpcS>L3uh`Uj z7GY;6f$9qKynP#oS3$$a{p^{D+0oJQ71`1?OAn_m8)UGZmj3l*ZI)`V-a>MKGGFG< z&^jg#Ok%(hhm>hSrZ5;Qga4u(?^i>GiW_j9%_7M>j(^|Om$#{k+^*ULnEgzW_1gCICtAD^WpC`A z{9&DXkG#01Xo)U$OC(L5Y$DQ|Q4C6CjUKk1UkPj$nXH##J{c8e#K|&{mA*;b$r0E4 zUNo0jthwA(c&N1l=PEe8Rw_8cEl|-eya9z&H3#n`B$t#+aJ03RFMzrV@gowbe8v(c zIFM60^0&lCFO10NU4w@|61xiZ4CVXeaKjd;d?sv52XM*lS8XiVjgWpRB;&U_C0g+`6B5V&w|O6B*_q zsATxL!M}+$He)1eOWECce#eS@2n^xhlB4<_Nn?yCVEQWDs(r`|@2GqLe<#(|&P0U? z$7V5IgpWf09uIf_RazRwC?qEqRaHyL?iiS05UiGesJy%^>-C{{ypTBI&B0-iUYhk> zIk<5xpsuV@g|z(AZD+C-;A!fTG=df1=<%nxy(a(IS+U{ME4ZbDEBtcD_3V=icT6*_ z)>|J?>&6%nvHhZERBtjK+s4xnut*@>GAmA5m*OTp$!^CHTr}vM4n(X1Q*;{e-Rd2BCF-u@1ZGm z!S8hJ6L=Gl4T_SDa7Xx|-{4mxveJg=ctf`BJ*fy!yF6Dz&?w(Q_6B}WQVtNI!BVBC zKfX<>7vd6C96}XAQmF-Jd?1Q4eTfRB3q7hCh0f!(JkdWT5<{iAE#dKy*Jxq&3a1@~ z8C||Dn2mFNyrUV|<-)C^_y7@8c2Fz+2jrae9deBDu;U}tJ{^xAdxCD248(k;dCJ%o z`y3sADe>U%suxwwv~8A1+R$VB=Q?%U?4joI$um;aH+eCrBqpn- z%79D_7rb;R-;-9RTrwi9dPlg8&@tfWhhZ(Vx&1PQ+6(huX`;M9x~LrW~~#3{j0Bh2kDU$}@!fFQej4VGkJv?M4rU^x!RU zEwhu$!CA_iDjFjrJa`aocySDX16?~;+wgav;}Zut6Mg%C4>}8FL?8)Kgwc(Qlj{@#2Pt0?G`$h7P#M+qoXtlV@d}%c&OzO+QYKK`kyXaK{U(O^2DyIXCZlNQjt0^8~8JzNGrIxhj}}M z&~QZlbx%t;MJ(Vux;2tgNKGlAqphLq%pd}JG9uoVHUo?|hN{pLQ6Em%r*+7t^<);X zm~6=qChlNAVXNN*Sow->*4;}T;l;D1I-5T{Bif@4_}=>l`tK;qqDdt5zvisCKhMAH z#r}`)7VW?LZqfdmXQ%zo5bJ00{Xb9^YKrk0Nf|oIW*K@(=`o2Vndz}ZDyk{!u}PVx zzd--+_WC*U{~DH3{?GI64IB+@On&@9X>EUAo&L+G{L^dozaI4C3G#2wr~hseW@K&g zKWs{uHu-9Je!3;4pE>eBltKUXb^*hG8I&413)$J&{D4N%7PcloU6bn%jPxJyQL?g* z9g+YFFEDiE`8rW^laCNzQmi7CTnPfwyg3VDHRAl>h=In6jeaVOP@!-CP60j3+#vpL zEYmh_oP0{-gTe7Or`L6x)6w?77QVi~jD8lWN@3RHcm80iV%M1A!+Y6iHM)05iC64tb$X2lV_%Txk@0l^hZqi^%Z?#- zE;LE0uFx)R08_S-#(wC=dS&}vj6P4>5ZWjhthP=*Hht&TdLtKDR;rXEX4*z0h74FA zMCINqrh3Vq;s%3MC1YL`{WjIAPkVL#3rj^9Pj9Ss7>7duy!9H0vYF%>1jh)EPqvlr6h%R%CxDsk| z!BACz7E%j?bm=pH6Eaw{+suniuY7C9Ut~1cWfOX9KW9=H><&kQlinPV3h9R>3nJvK z4L9(DRM=x;R&d#a@oFY7mB|m8h4692U5eYfcw|QKwqRsshN(q^v$4$)HgPpAJDJ`I zkqjq(8Cd!K!+wCd=d@w%~e$=gdUgD&wj$LQ1r>-E=O@c ze+Z$x{>6(JA-fNVr)X;*)40Eym1TtUZI1Pwwx1hUi+G1Jlk~vCYeXMNYtr)1?qwyg zsX_e*$h?380O00ou?0R@7-Fc59o$UvyVs4cUbujHUA>sH!}L54>`e` zHUx#Q+Hn&Og#YVOuo*niy*GU3rH;%f``nk#NN5-xrZ34NeH$l`4@t);4(+0|Z#I>Y z)~Kzs#exIAaf--65L0UHT_SvV8O2WYeD>Mq^Y6L!Xu8%vnpofG@w!}R7M28?i1*T&zp3X4^OMCY6(Dg<-! zXmcGQrRgHXGYre7GfTJ)rhl|rs%abKT_Nt24_Q``XH{88NVPW+`x4ZdrMuO0iZ0g` z%p}y};~T5gbb9SeL8BSc`SO#ixC$@QhXxZ=B}L`tP}&k?1oSPS=4%{UOHe0<_XWln zwbl5cn(j-qK`)vGHY5B5C|QZd5)W7c@{bNVXqJ!!n$^ufc?N9C-BF2QK1(kv++h!>$QbAjq)_b$$PcJdV+F7hz0Hu@ zqj+}m0qn{t^tD3DfBb~0B36|Q`bs*xs|$i^G4uNUEBl4g;op-;Wl~iThgga?+dL7s zUP(8lMO?g{GcYpDS{NM!UA8Hco?#}eNEioRBHy4`mq!Pd-9@-97|k$hpEX>xoX+dY zDr$wfm^P&}Wu{!%?)U_(%Mn79$(ywvu*kJ9r4u|MyYLI_67U7%6Gd_vb##Nerf@>& z8W11z$$~xEZt$dPG}+*IZky+os5Ju2eRi;1=rUEeIn>t-AzC_IGM-IXWK3^6QNU+2pe=MBn4I*R@A%-iLDCOHTE-O^wo$sL_h{dcPl=^muAQb`_BRm};=cy{qSkui;`WSsj9%c^+bIDQ z0`_?KX0<-=o!t{u(Ln)v>%VGL z0pC=GB7*AQ?N7N{ut*a%MH-tdtNmNC+Yf$|KS)BW(gQJ*z$d{+{j?(e&hgTy^2|AR9vx1Xre2fagGv0YXWqtNkg*v%40v?BJBt|f9wX5 z{QTlCM}b-0{mV?IG>TW_BdviUKhtosrBqdfq&Frdz>cF~yK{P@(w{Vr7z2qKFwLhc zQuogKO@~YwyS9%+d-zD7mJG~@?EFJLSn!a&mhE5$_4xBl&6QHMzL?CdzEnC~C3$X@ zvY!{_GR06ep5;<#cKCSJ%srxX=+pn?ywDwtJ2{TV;0DKBO2t++B(tIO4)Wh`rD13P z4fE$#%zkd=UzOB74gi=-*CuID&Z3zI^-`4U^S?dHxK8fP*;fE|a(KYMgMUo`THIS1f!*6dOI2 zFjC3O=-AL`6=9pp;`CYPTdVX z8(*?V&%QoipuH0>WKlL8A*zTKckD!paN@~hh zmXzm~qZhMGVdQGd=AG8&20HW0RGV8X{$9LldFZYm zE?}`Q3i?xJRz43S?VFMmqRyvWaS#(~Lempg9nTM$EFDP(Gzx#$r)W&lpFKqcAoJh-AxEw$-bjW>`_+gEi z2w`99#UbFZGiQjS8kj~@PGqpsPX`T{YOj`CaEqTFag;$jY z8_{Wzz>HXx&G*Dx<5skhpETxIdhKH?DtY@b9l8$l?UkM#J-Snmts7bd7xayKTFJ(u zyAT&@6cAYcs{PBfpqZa%sxhJ5nSZBPji?Zlf&}#L?t)vC4X5VLp%~fz2Sx<*oN<7` z?ge=k<=X7r<~F7Tvp9#HB{!mA!QWBOf%EiSJ6KIF8QZNjg&x~-%e*tflL(ji_S^sO ztmib1rp09uon}RcsFi#k)oLs@$?vs(i>5k3YN%$T(5Or(TZ5JW9mA6mIMD08=749$ z!d+l*iu{Il7^Yu}H;lgw=En1sJpCKPSqTCHy4(f&NPelr31^*l%KHq^QE>z>Ks_bH zjbD?({~8Din7IvZeJ>8Ey=e;I?thpzD=zE5UHeO|neioJwG;IyLk?xOz(yO&0DTU~ z^#)xcs|s>Flgmp;SmYJ4g(|HMu3v7#;c*Aa8iF#UZo7CvDq4>8#qLJ|YdZ!AsH%^_7N1IQjCro

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ColumnRow/gradle/wrapper/gradle-wrapper.properties b/fase01/trilha-android/projects/ColumnRow/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..5b0e78f --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sat Feb 24 15:21:19 BRT 2024 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/fase01/trilha-android/projects/ColumnRow/gradlew b/fase01/trilha-android/projects/ColumnRow/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/fase01/trilha-android/projects/ColumnRow/gradlew.bat b/fase01/trilha-android/projects/ColumnRow/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fase01/trilha-android/projects/ColumnRow/settings.gradle b/fase01/trilha-android/projects/ColumnRow/settings.gradle new file mode 100644 index 0000000..7111b32 --- /dev/null +++ b/fase01/trilha-android/projects/ColumnRow/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} +rootProject.name = "Column Row" +include ':app' diff --git a/fase01/trilha-android/projects/ConsultaCEP/.gitignore b/fase01/trilha-android/projects/ConsultaCEP/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/fase01/trilha-android/projects/ConsultaCEP/.idea/.gitignore b/fase01/trilha-android/projects/ConsultaCEP/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/fase01/trilha-android/projects/ConsultaCEP/.idea/.name b/fase01/trilha-android/projects/ConsultaCEP/.idea/.name new file mode 100644 index 0000000..ff3c348 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.idea/.name @@ -0,0 +1 @@ +Consulta CEP \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/.idea/compiler.xml b/fase01/trilha-android/projects/ConsultaCEP/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/.idea/gradle.xml b/fase01/trilha-android/projects/ConsultaCEP/.idea/gradle.xml new file mode 100644 index 0000000..a2d7c21 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/.idea/inspectionProfiles/Project_Default.xml b/fase01/trilha-android/projects/ConsultaCEP/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..44ca2d9 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,41 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/.idea/kotlinc.xml b/fase01/trilha-android/projects/ConsultaCEP/.idea/kotlinc.xml new file mode 100644 index 0000000..e1eea1d --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/.idea/misc.xml b/fase01/trilha-android/projects/ConsultaCEP/.idea/misc.xml new file mode 100644 index 0000000..9f71c83 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/.gitignore b/fase01/trilha-android/projects/ConsultaCEP/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/build.gradle b/fase01/trilha-android/projects/ConsultaCEP/app/build.gradle new file mode 100644 index 0000000..8b11d63 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/build.gradle @@ -0,0 +1,72 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'br.com.fiap.consultacep' + compileSdk 33 + + defaultConfig { + applicationId "br.com.fiap.consultacep" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.3.2' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + // Dependências do Retrofit + implementation 'com.squareup.retrofit2:retrofit:2.9.0' + implementation 'com.squareup.retrofit2:converter-gson:2.9.0' + +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/proguard-rules.pro b/fase01/trilha-android/projects/ConsultaCEP/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/androidTest/java/br/com/fiap/consultacep/ExampleInstrumentedTest.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/androidTest/java/br/com/fiap/consultacep/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..2c3e1b8 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/androidTest/java/br/com/fiap/consultacep/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package br.com.fiap.consultacep + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("br.com.fiap.consultacep", appContext.packageName) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/AndroidManifest.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..23ba3c6 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/AndroidManifest.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/MainActivity.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/MainActivity.kt new file mode 100644 index 0000000..68e9a22 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/MainActivity.kt @@ -0,0 +1,225 @@ +package br.com.fiap.consultacep + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Search +import androidx.compose.material3.Card +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardCapitalization +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.consultacep.model.Endereco +import br.com.fiap.consultacep.service.RetrofitFactory +import br.com.fiap.consultacep.ui.theme.ConsultaCEPTheme +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + ConsultaCEPTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + CepScreen() + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun CepScreen() { + + var cepState by remember { mutableStateOf("") } + var ufState by remember { mutableStateOf("") } + var cidadeState by remember { mutableStateOf("") } + var ruaState by remember { mutableStateOf("") } + + var listaEnderecoState by remember { mutableStateOf(listOf()) } + + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Card(modifier = Modifier.fillMaxWidth()) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Text(text = "CONSULTA CEP", fontSize = 24.sp) + Text( + text = "Encontre o seu endereço", + fontSize = 20.sp + ) + Spacer(modifier = Modifier.height(32.dp)) + OutlinedTextField( + value = cepState, + onValueChange = { + cepState = it + }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Qual o CEP procurado?") + }, + trailingIcon = { + IconButton(onClick = { + val call = RetrofitFactory().getCepService().getEndereco(cepState) + call.enqueue(object : Callback>{ + override fun onResponse( + call: Call>, + response: Response> + ) { + listaEnderecoState = response.body()!! + } + override fun onFailure(call: Call>, t: Throwable) { + TODO("Not yet implemented") + } + }) + }) { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "" + ) + } + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Number + ) + ) + Spacer(modifier = Modifier.height(32.dp)) + Text( + text = "Não sabe o CEP?", + fontWeight = FontWeight.Bold + ) + Spacer(modifier = Modifier.height(8.dp)) + Row() { + OutlinedTextField( + value = ufState, + onValueChange = { + ufState = it + }, + modifier = Modifier + .weight(1f) + .padding(end = 4.dp), + label = { + Text(text = "UF?") + }, + keyboardOptions = KeyboardOptions( + capitalization = KeyboardCapitalization.Characters, + keyboardType = KeyboardType.Text + ) + ) + Spacer(modifier = Modifier.height(8.dp)) + OutlinedTextField( + value = cidadeState, + onValueChange = { + cidadeState = it + }, + modifier = Modifier.weight(2f), + label = { + Text(text = "Qual a cidade?") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + capitalization = KeyboardCapitalization.Words + ) + ) + } + Spacer(modifier = Modifier.height(8.dp)) + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + value = ruaState, + onValueChange = { + ruaState = it + }, + modifier = Modifier.weight(2f), + label = { + Text(text = "O que lembra do nome da rua?") + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Text, + capitalization = KeyboardCapitalization.Words + ) + ) + IconButton(onClick = { + val call = RetrofitFactory().getCepService().getEnderecos(ufState, cidadeState, ruaState) + call.enqueue(object : Callback>{ + override fun onResponse( + call: Call>, + response: Response> + ) { + listaEnderecoState = response.body()!! + } + override fun onFailure(call: Call>, t: Throwable) { + TODO("Not yet implemented") + } + }) + }) { + Icon(imageVector = Icons.Default.Search, contentDescription = "") + } + } + } + } + Spacer(modifier = Modifier.height(8.dp)) + LazyColumn() { + items(listaEnderecoState) { + CardEndereco(it) + } + } + } +} + +@Composable +fun CardEndereco(endereco: Endereco) { + Card(modifier = Modifier + .fillMaxWidth() + .padding(bottom = 4.dp)) { + Column(modifier = Modifier + .fillMaxWidth() + .padding(8.dp) + ) { + Text(text = "CEP: ${endereco.cep}") + Text(text = "Rua: ${endereco.rua}") + Text(text = "Cidade: ${endereco.cidade}") + Text(text = "Bairro: ${endereco.bairro}") + Text(text = "UF: ${endereco.uf}") + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/model/Cep.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/model/Cep.kt new file mode 100644 index 0000000..9b534f4 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/model/Cep.kt @@ -0,0 +1,11 @@ +package br.com.fiap.consultacep.model + +import com.google.gson.annotations.SerializedName + +data class Endereco ( + val cep: String = "", + @SerializedName("logradouro") val rua: String = "", + @SerializedName("localidade") val cidade: String = "", + val bairro: String = "", + val uf: String = "" +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/CepService.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/CepService.kt new file mode 100644 index 0000000..09a2af9 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/CepService.kt @@ -0,0 +1,23 @@ +package br.com.fiap.consultacep.service + +import br.com.fiap.consultacep.model.Endereco +import retrofit2.Call +import retrofit2.http.GET +import retrofit2.http.Path + +interface CepService { + + //https://viacep.com.br/ws/01001000/json/ + @GET("{cep}/json/") + + fun getEndereco(@Path("cep") cep: String): Call> + + //https://viacep.com.br/ws/RS/Porto%20Alegre/Domingos/json/ + @GET("{uf}/{cidade}/{rua}/json/") + + fun getEnderecos( + @Path("uf") uf: String, + @Path("cidade") cidade: String, + @Path("rua") rua: String + ): Call> +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/RetrofitFactory.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/RetrofitFactory.kt new file mode 100644 index 0000000..86295cd --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/service/RetrofitFactory.kt @@ -0,0 +1,20 @@ +package br.com.fiap.consultacep.service + +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory + +class RetrofitFactory { + + private val URL = "https://viacep.com.br/ws/" + + private val retrofitFactory = Retrofit + .Builder() + .baseUrl(URL) + .addConverterFactory(GsonConverterFactory.create()) + .build() + + fun getCepService(): CepService { + return retrofitFactory.create(CepService::class.java) + } + +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Color.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Color.kt new file mode 100644 index 0000000..e51e475 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package br.com.fiap.consultacep.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Theme.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Theme.kt new file mode 100644 index 0000000..803e74f --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Theme.kt @@ -0,0 +1,70 @@ +package br.com.fiap.consultacep.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView +import androidx.core.view.WindowCompat + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun ConsultaCEPTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme + } + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Type.kt b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Type.kt new file mode 100644 index 0000000..9d70528 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/java/br/com/fiap/consultacep/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package br.com.fiap.consultacep.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable/ic_launcher_background.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..de33274 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Consulta CEP + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..c749658 --- /dev/null +++ b/fase01/trilha-android/projects/ConsultaCEP/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..2673a8e --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Hello World + \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..24ade30 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/values/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/backup_rules.xml b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/data_extraction_rules.xml b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/app/src/test/java/br/com/fiap/helloworld/ExampleUnitTest.kt b/fase01/trilha-android/projects/HelloWorld/app/src/test/java/br/com/fiap/helloworld/ExampleUnitTest.kt new file mode 100644 index 0000000..a2d3037 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/app/src/test/java/br/com/fiap/helloworld/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package br.com.fiap.helloworld + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/build.gradle b/fase01/trilha-android/projects/HelloWorld/build.gradle new file mode 100644 index 0000000..ab2b874 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/build.gradle @@ -0,0 +1,6 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false + id 'org.jetbrains.kotlin.android' version '1.8.0' apply false +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/gradle.properties b/fase01/trilha-android/projects/HelloWorld/gradle.properties new file mode 100644 index 0000000..3c5031e --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/fase01/trilha-android/projects/HelloWorld/gradle/wrapper/gradle-wrapper.jar b/fase01/trilha-android/projects/HelloWorld/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/HelloWorld/gradle/wrapper/gradle-wrapper.properties b/fase01/trilha-android/projects/HelloWorld/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..6c9cea6 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Feb 13 22:44:59 BRT 2024 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/fase01/trilha-android/projects/HelloWorld/gradlew b/fase01/trilha-android/projects/HelloWorld/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/fase01/trilha-android/projects/HelloWorld/gradlew.bat b/fase01/trilha-android/projects/HelloWorld/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fase01/trilha-android/projects/HelloWorld/settings.gradle b/fase01/trilha-android/projects/HelloWorld/settings.gradle new file mode 100644 index 0000000..13c2e95 --- /dev/null +++ b/fase01/trilha-android/projects/HelloWorld/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} +rootProject.name = "Hello World" +include ':app' diff --git a/fase01/trilha-android/projects/IMCApp/.gitignore b/fase01/trilha-android/projects/IMCApp/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/fase01/trilha-android/projects/IMCApp/.idea/.gitignore b/fase01/trilha-android/projects/IMCApp/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/fase01/trilha-android/projects/IMCApp/.idea/.name b/fase01/trilha-android/projects/IMCApp/.idea/.name new file mode 100644 index 0000000..bc1c923 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.idea/.name @@ -0,0 +1 @@ +IMC App \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/.idea/compiler.xml b/fase01/trilha-android/projects/IMCApp/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/.idea/deploymentTargetDropDown.xml b/fase01/trilha-android/projects/IMCApp/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..f067426 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/.idea/gradle.xml b/fase01/trilha-android/projects/IMCApp/.idea/gradle.xml new file mode 100644 index 0000000..a2d7c21 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/.idea/inspectionProfiles/Project_Default.xml b/fase01/trilha-android/projects/IMCApp/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..44ca2d9 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,41 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/.idea/misc.xml b/fase01/trilha-android/projects/IMCApp/.idea/misc.xml new file mode 100644 index 0000000..bdd9278 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/.gitignore b/fase01/trilha-android/projects/IMCApp/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/build.gradle b/fase01/trilha-android/projects/IMCApp/app/build.gradle new file mode 100644 index 0000000..7cbde86 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/build.gradle @@ -0,0 +1,63 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'br.com.fiap.imcapp' + compileSdk 33 + + defaultConfig { + applicationId "br.com.fiap.imcapp" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.2.0' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.3.1' + implementation "androidx.compose.ui:ui:$compose_ui_version" + implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version" + implementation 'androidx.compose.material:material:1.2.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version" + debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version" + debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version" +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/proguard-rules.pro b/fase01/trilha-android/projects/IMCApp/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/androidTest/java/br/com/fiap/imcapp/ExampleInstrumentedTest.kt b/fase01/trilha-android/projects/IMCApp/app/src/androidTest/java/br/com/fiap/imcapp/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..cb1ca99 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/androidTest/java/br/com/fiap/imcapp/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package br.com.fiap.imcapp + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("br.com.fiap.imcapp", appContext.packageName) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/AndroidManifest.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..43bd005 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/CalculoIMC.kt b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/CalculoIMC.kt new file mode 100644 index 0000000..1a31630 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/CalculoIMC.kt @@ -0,0 +1,21 @@ +package br.com.fiap.imcapp + +import kotlin.math.pow + +fun calcularIMC(altura: Double, peso: Double) : Double { + return peso / (altura / 100).pow(2.0) +} + +fun determinarClassificacaoIMC(imc: Double): String { + return if(imc < 18.5) { + "Abaixo do peso" + } else if (imc >= 18.5 && imc < 25.0) { + "Peso Ideal" + } else if (imc >= 25.0 && imc < 30.0) { + "Levemente acima do peso" + } else if (imc >= 30.0 && imc < 35.0) { + "Obesidade Grau I" + } else if (imc >= 35.0 && imc < 40.0) { + "Obesidade Grau II" + } else {"Obesidade Grau III"} +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/MainActivity.kt b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/MainActivity.kt new file mode 100644 index 0000000..caaae40 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/MainActivity.kt @@ -0,0 +1,248 @@ +package br.com.fiap.imcapp + +import android.media.Image +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.* +import androidx.compose.material.icons.Icons +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.ImageShader +import androidx.compose.ui.modifier.modifierLocalConsumer +import androidx.compose.ui.modifier.modifierLocalOf +import androidx.compose.ui.res.colorResource +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.semantics.Role.Companion.Button +import androidx.compose.ui.semantics.Role.Companion.Image +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.imcapp.ui.theme.IMCAppTheme +import kotlin.math.round + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + IMCAppTheme { + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colors.background + ) { + IMCScreen() + } + } + } + } +} + +@Composable +fun IMCScreen() { + + var peso = remember { + mutableStateOf("") + } + + var altura = remember { + mutableStateOf("") + } + + var imc = remember { + mutableStateOf(0.0) + } + + var statusImc = remember { + mutableStateOf("") + } + + Box( + modifier = Modifier.fillMaxSize() + ) { + Column( + modifier = Modifier.fillMaxWidth() + ) { + // header + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .height(160.dp) + .background(colorResource(id = R.color.vermelho_fiap)) + ) { + Image( + painter = painterResource(id = R.drawable.bmi), + contentDescription = "logo", + modifier = Modifier + .size(60.dp) + .padding(top = 16.dp) + ) + Text( + text = "Calculadora IMC", + fontSize = 24.sp, + color = Color.White, + fontWeight = FontWeight.Bold, + modifier = Modifier.padding(top = 12.dp, bottom = 24.dp) + ) + } + // formulário + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp) + ) { + Card( + modifier = Modifier + .offset(y = (-30).dp) + .fillMaxWidth(), + // .height(300.dp), + backgroundColor = Color(0xfff9f6f6), + elevation = 4.dp + ) { + Column( + modifier = Modifier.padding( + vertical = 16.dp, + horizontal = 32.dp + ) + ) { + Text( + text = "Seus dados", + modifier = Modifier.fillMaxWidth(), + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = colorResource(id = R.color.vermelho_fiap), + textAlign = TextAlign.Center + ) + Spacer(modifier = Modifier.height(32.dp)) + Text( + text = "Seu peso", + modifier = Modifier.padding(bottom = 8.dp), + fontSize = 12.sp, + fontWeight = FontWeight.Normal, + color = colorResource(id = R.color.vermelho_fiap) + ) + OutlinedTextField( + value = peso.value, + onValueChange = { peso.value = it }, + modifier = Modifier.fillMaxWidth(), + placeholder = { + Text(text = "Seu peso em kg.") + }, + colors = TextFieldDefaults.textFieldColors( + unfocusedIndicatorColor = colorResource(id = R.color.vermelho_fiap), + focusedIndicatorColor = colorResource(id = R.color.vermelho_fiap) + ), + shape = RoundedCornerShape(16.dp), + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) + ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = "Sua altura", + modifier = Modifier.padding(bottom = 8.dp), + fontSize = 12.sp, + fontWeight = FontWeight.Normal, + color = colorResource(id = R.color.vermelho_fiap) + ) + OutlinedTextField( + value = altura.value, + onValueChange = { altura.value = it }, + modifier = Modifier.fillMaxWidth(), + placeholder = { + Text(text = "Sua altura em cm.") + }, + colors = TextFieldDefaults.textFieldColors( + unfocusedIndicatorColor = colorResource(id = R.color.vermelho_fiap), + focusedIndicatorColor = colorResource(id = R.color.vermelho_fiap) + ), + shape = RoundedCornerShape(16.dp), + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Decimal) + ) + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { + imc.value = calcularIMC( + altura = altura.value.toDouble(), + peso = peso.value.toDouble() + ) + statusImc.value = determinarClassificacaoIMC(imc.value) + }, + modifier = Modifier + .fillMaxWidth() + .height(48.dp), + shape = RoundedCornerShape(16.dp), + colors = ButtonDefaults.buttonColors(backgroundColor = colorResource(id = R.color.vermelho_fiap)) + ) { + Text( + text = "CALCULAR", + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 14.sp + ) + } + } + + } + } + } + // card resultado + Card( + modifier = Modifier + .fillMaxWidth() + .height(200.dp) + .padding( + horizontal = 32.dp, + vertical = 24.dp + ) + .align(Alignment.BottomCenter), + backgroundColor = Color(0xff329F6B), + elevation = 4.dp, + // border = BorderStroke (width = 1.dp, Color(0xffed145b)) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .padding(horizontal = 32.dp) + .fillMaxSize() + ) { + Column() { + Text( + text = "Resultado", + color = Color.White, + fontSize = 14.sp + ) + Text( + text = statusImc.value, + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 20.sp + ) + } + Text( + text = String.format("%.1f", imc.value), + modifier = Modifier.fillMaxWidth(), + fontWeight = FontWeight.Bold, + color = Color.White, + fontSize = 36.sp, + textAlign = TextAlign.End + ) + } + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Color.kt b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Color.kt new file mode 100644 index 0000000..e84011b --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Color.kt @@ -0,0 +1,8 @@ +package br.com.fiap.imcapp.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple200 = Color(0xFFBB86FC) +val Purple500 = Color(0xFF6200EE) +val Purple700 = Color(0xFF3700B3) +val Teal200 = Color(0xFF03DAC5) \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Shape.kt b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Shape.kt new file mode 100644 index 0000000..1c309a3 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Shape.kt @@ -0,0 +1,11 @@ +package br.com.fiap.imcapp.ui.theme + +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Shapes +import androidx.compose.ui.unit.dp + +val Shapes = Shapes( + small = RoundedCornerShape(4.dp), + medium = RoundedCornerShape(4.dp), + large = RoundedCornerShape(0.dp) +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Theme.kt b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Theme.kt new file mode 100644 index 0000000..25318f9 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Theme.kt @@ -0,0 +1,44 @@ +package br.com.fiap.imcapp.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.MaterialTheme +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.runtime.Composable + +private val DarkColorPalette = darkColors( + primary = Purple200, + primaryVariant = Purple700, + secondary = Teal200 +) + +private val LightColorPalette = lightColors( + primary = Purple500, + primaryVariant = Purple700, + secondary = Teal200 + + /* Other default colors to override + background = Color.White, + surface = Color.White, + onPrimary = Color.White, + onSecondary = Color.Black, + onBackground = Color.Black, + onSurface = Color.Black, + */ +) + +@Composable +fun IMCAppTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) { + val colors = if (darkTheme) { + DarkColorPalette + } else { + LightColorPalette + } + + MaterialTheme( + colors = colors, + typography = Typography, + shapes = Shapes, + content = content + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Type.kt b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Type.kt new file mode 100644 index 0000000..f93688a --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/java/br/com/fiap/imcapp/ui/theme/Type.kt @@ -0,0 +1,28 @@ +package br.com.fiap.imcapp.ui.theme + +import androidx.compose.material.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + body1 = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp + ) + /* Other default text styles to override + button = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.W500, + fontSize = 14.sp + ), + caption = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 12.sp + ) + */ +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable/bmi.png b/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable/bmi.png new file mode 100644 index 0000000000000000000000000000000000000000..14984df17fffefe5cb18cbc594bc0bd8af4f4f9f GIT binary patch literal 48993 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 MqM#vP2{RA-KmIg4YXATM literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable/ic_launcher_background.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/IMCApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..c03bdd5 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/colors.xml @@ -0,0 +1,11 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + #FFED145B + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..96423ba --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + IMC App + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..7928d1c --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/values/themes.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/backup_rules.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/data_extraction_rules.xml b/fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/app/src/test/java/br/com/fiap/imcapp/ExampleUnitTest.kt b/fase01/trilha-android/projects/IMCApp/app/src/test/java/br/com/fiap/imcapp/ExampleUnitTest.kt new file mode 100644 index 0000000..c08d615 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/app/src/test/java/br/com/fiap/imcapp/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package br.com.fiap.imcapp + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/build.gradle b/fase01/trilha-android/projects/IMCApp/build.gradle new file mode 100644 index 0000000..29c5abd --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/build.gradle @@ -0,0 +1,10 @@ +buildscript { + ext { + compose_ui_version = '1.2.0' + } +}// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false + id 'org.jetbrains.kotlin.android' version '1.7.0' apply false +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/gradle.properties b/fase01/trilha-android/projects/IMCApp/gradle.properties new file mode 100644 index 0000000..3c5031e --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/fase01/trilha-android/projects/IMCApp/gradle/wrapper/gradle-wrapper.jar b/fase01/trilha-android/projects/IMCApp/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/IMCApp/gradle/wrapper/gradle-wrapper.properties b/fase01/trilha-android/projects/IMCApp/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..128c4c7 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sat Mar 02 14:46:51 BRT 2024 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/fase01/trilha-android/projects/IMCApp/gradlew b/fase01/trilha-android/projects/IMCApp/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/fase01/trilha-android/projects/IMCApp/gradlew.bat b/fase01/trilha-android/projects/IMCApp/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fase01/trilha-android/projects/IMCApp/settings.gradle b/fase01/trilha-android/projects/IMCApp/settings.gradle new file mode 100644 index 0000000..414ac9e --- /dev/null +++ b/fase01/trilha-android/projects/IMCApp/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} +rootProject.name = "IMC App" +include ':app' diff --git a/fase01/trilha-android/projects/ListasLazy/.gitignore b/fase01/trilha-android/projects/ListasLazy/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/fase01/trilha-android/projects/ListasLazy/.idea/.gitignore b/fase01/trilha-android/projects/ListasLazy/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/fase01/trilha-android/projects/ListasLazy/.idea/.name b/fase01/trilha-android/projects/ListasLazy/.idea/.name new file mode 100644 index 0000000..1e17192 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.idea/.name @@ -0,0 +1 @@ +Listas Lazy \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/.idea/compiler.xml b/fase01/trilha-android/projects/ListasLazy/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/.idea/gradle.xml b/fase01/trilha-android/projects/ListasLazy/.idea/gradle.xml new file mode 100644 index 0000000..a2d7c21 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/.idea/inspectionProfiles/Project_Default.xml b/fase01/trilha-android/projects/ListasLazy/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..44ca2d9 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,41 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/.idea/kotlinc.xml b/fase01/trilha-android/projects/ListasLazy/.idea/kotlinc.xml new file mode 100644 index 0000000..e1eea1d --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/.idea/misc.xml b/fase01/trilha-android/projects/ListasLazy/.idea/misc.xml new file mode 100644 index 0000000..8978d23 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/.gitignore b/fase01/trilha-android/projects/ListasLazy/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/build.gradle b/fase01/trilha-android/projects/ListasLazy/app/build.gradle new file mode 100644 index 0000000..9467afe --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/build.gradle @@ -0,0 +1,67 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'br.com.fiap.listaslazy' + compileSdk 33 + + defaultConfig { + applicationId "br.com.fiap.listaslazy" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.3.2' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/proguard-rules.pro b/fase01/trilha-android/projects/ListasLazy/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/androidTest/java/br/com/fiap/listaslazy/ExampleInstrumentedTest.kt b/fase01/trilha-android/projects/ListasLazy/app/src/androidTest/java/br/com/fiap/listaslazy/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..93549c3 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/androidTest/java/br/com/fiap/listaslazy/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package br.com.fiap.listaslazy + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("br.com.fiap.listaslazy", appContext.packageName) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/AndroidManifest.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a28148d --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/MainActivity.kt b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/MainActivity.kt new file mode 100644 index 0000000..f3beccb --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/MainActivity.kt @@ -0,0 +1,168 @@ +package br.com.fiap.listaslazy + +import android.os.Bundle +import android.util.Log +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Search +import androidx.compose.material3.Card +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import br.com.fiap.listaslazy.model.Game +import br.com.fiap.listaslazy.repository.getAllGames +import br.com.fiap.listaslazy.repository.getGamesByStudio +import br.com.fiap.listaslazy.ui.theme.ListasLazyTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + Log.i("aaa", getGamesByStudio("Capcom").toString()) + setContent { + ListasLazyTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + GamesScreen() + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun GamesScreen() { + + var searchTextState by remember { + mutableStateOf("") + } + + var gamesListState by remember { + mutableStateOf(getAllGames()) + } + + Column(modifier = Modifier.padding(16.dp)) { + Text( + text = "Meus jogos favoritos", + fontSize = 24.sp, + fontWeight = FontWeight.Bold + ) + Spacer(modifier = Modifier.height(16.dp)) + OutlinedTextField( + value = searchTextState, + onValueChange = { + gamesListState = getGamesByStudio(searchTextState) + searchTextState = it + }, + modifier = Modifier.fillMaxWidth(), + label = { + Text(text = "Nome do estúdio") + }, + trailingIcon = { + IconButton(onClick = { + gamesListState = getGamesByStudio(searchTextState) + }) { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "" + ) + } + } + ) + Spacer(modifier = Modifier.height(16.dp)) + LazyRow() { + items(gamesListState) { + StudioCard(game = it) + } + } + Spacer(modifier = Modifier.height(16.dp)) + LazyColumn() { + items (gamesListState) { + Column() { + GameCard(game = it) + } + } + } + } +} + +@Composable +fun GameCard(game: Game) { + Card(modifier = Modifier.padding(bottom = 8.dp)) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier + .fillMaxWidth() + ) { + Column(modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + .weight(3f)) { + Text( + text = game.title, + fontSize = 20.sp, + fontWeight = FontWeight.Bold + ) + Text( + text = game.studio, + fontSize = 14.sp, + fontWeight = FontWeight.Normal + ) + } + Text( + text = game.releaseYear.toString(), + modifier = Modifier + .weight(1f) + .fillMaxWidth(), + fontSize = 20.sp, + fontWeight = FontWeight.Bold, + color = Color.Blue + ) + } + } +} + +@Composable +fun StudioCard(game: Game) { + Card(modifier = Modifier.size(100.dp).padding(end = 4.dp)) { + Column( + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.fillMaxSize() + ) { + Text(text = game.studio) + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/model/Game.kt b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/model/Game.kt new file mode 100644 index 0000000..138a6bf --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/model/Game.kt @@ -0,0 +1,8 @@ +package br.com.fiap.listaslazy.model + +data class Game ( + val id: Long = 0, + val title: String = "", + val studio: String = "", + val releaseYear: Int = 0 +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/repository/GamesList.kt b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/repository/GamesList.kt new file mode 100644 index 0000000..667e375 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/repository/GamesList.kt @@ -0,0 +1,24 @@ +package br.com.fiap.listaslazy.repository + +import br.com.fiap.listaslazy.model.Game + +fun getAllGames(): List { + return listOf( + Game(id = 1, title = "Double Dragon", studio = "Technos", releaseYear = 1987), + Game(id = 2, title = "Batletoads", studio = "Tradewest", releaseYear = 1991), + Game(id = 3, title = "Enduro", studio = "Activision", releaseYear = 1983), + Game(id = 4, title = "Ikari Warriors", studio = "SNK", releaseYear = 1986), + Game(id = 5, title = "Captain Commando", studio = "Capcom", releaseYear = 1991), + Game(id = 6, title = "Mario Bros", studio = "Nintendo", releaseYear = 1983), + Game(id = 7, title = "Tiger Heli", studio = "Taito", releaseYear = 1985), + Game(id = 8, title = "Mega Man", studio = "Capcom", releaseYear = 1987), + Game(id = 9, title = "Gradius", studio = "Konami", releaseYear = 1985), + Game(id = 10, title = "Gun Fight", studio = "Taito", releaseYear = 1975) + ) +} + +fun getGamesByStudio(studio: String): List{ + return getAllGames().filter { + it.studio.startsWith(prefix = studio, ignoreCase = true) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Color.kt b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Color.kt new file mode 100644 index 0000000..04bf1bc --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package br.com.fiap.listaslazy.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Theme.kt b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Theme.kt new file mode 100644 index 0000000..b04f27a --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Theme.kt @@ -0,0 +1,70 @@ +package br.com.fiap.listaslazy.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView +import androidx.core.view.WindowCompat + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun ListasLazyTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme + } + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Type.kt b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Type.kt new file mode 100644 index 0000000..7a53a74 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/java/br/com/fiap/listaslazy/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package br.com.fiap.listaslazy.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable/ic_launcher_background.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..3a1f018 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Listas Lazy + \ No newline at end of file diff --git a/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..eb7ca34 --- /dev/null +++ b/fase01/trilha-android/projects/ListasLazy/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/backup_rules.xml b/fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/data_extraction_rules.xml b/fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Minhaidade/app/src/test/java/br/com/fiap/minhaidade/ExampleUnitTest.kt b/fase01/trilha-android/projects/Minhaidade/app/src/test/java/br/com/fiap/minhaidade/ExampleUnitTest.kt new file mode 100644 index 0000000..e097b17 --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/app/src/test/java/br/com/fiap/minhaidade/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package br.com.fiap.minhaidade + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Minhaidade/build.gradle b/fase01/trilha-android/projects/Minhaidade/build.gradle new file mode 100644 index 0000000..29c5abd --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/build.gradle @@ -0,0 +1,10 @@ +buildscript { + ext { + compose_ui_version = '1.2.0' + } +}// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false + id 'org.jetbrains.kotlin.android' version '1.7.0' apply false +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Minhaidade/gradle.properties b/fase01/trilha-android/projects/Minhaidade/gradle.properties new file mode 100644 index 0000000..3c5031e --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/fase01/trilha-android/projects/Minhaidade/gradle/wrapper/gradle-wrapper.jar b/fase01/trilha-android/projects/Minhaidade/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Minhaidade/gradle/wrapper/gradle-wrapper.properties b/fase01/trilha-android/projects/Minhaidade/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c65567c --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Feb 18 16:36:09 BRT 2024 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/fase01/trilha-android/projects/Minhaidade/gradlew b/fase01/trilha-android/projects/Minhaidade/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/fase01/trilha-android/projects/Minhaidade/gradlew.bat b/fase01/trilha-android/projects/Minhaidade/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fase01/trilha-android/projects/Minhaidade/settings.gradle b/fase01/trilha-android/projects/Minhaidade/settings.gradle new file mode 100644 index 0000000..6bd9492 --- /dev/null +++ b/fase01/trilha-android/projects/Minhaidade/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} +rootProject.name = "Minha idade" +include ':app' diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.gitignore b/fase01/trilha-android/projects/Navegandoentretelas/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.idea/.gitignore b/fase01/trilha-android/projects/Navegandoentretelas/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.idea/.name b/fase01/trilha-android/projects/Navegandoentretelas/.idea/.name new file mode 100644 index 0000000..2be77d8 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.idea/.name @@ -0,0 +1 @@ +Navegando entre telas \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.idea/compiler.xml b/fase01/trilha-android/projects/Navegandoentretelas/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.idea/gradle.xml b/fase01/trilha-android/projects/Navegandoentretelas/.idea/gradle.xml new file mode 100644 index 0000000..a2d7c21 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.idea/inspectionProfiles/Project_Default.xml b/fase01/trilha-android/projects/Navegandoentretelas/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..44ca2d9 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,41 @@ + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.idea/kotlinc.xml b/fase01/trilha-android/projects/Navegandoentretelas/.idea/kotlinc.xml new file mode 100644 index 0000000..e1eea1d --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/.idea/misc.xml b/fase01/trilha-android/projects/Navegandoentretelas/.idea/misc.xml new file mode 100644 index 0000000..773fe0f --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/.gitignore b/fase01/trilha-android/projects/Navegandoentretelas/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/build.gradle b/fase01/trilha-android/projects/Navegandoentretelas/app/build.gradle new file mode 100644 index 0000000..ab8c0d6 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/build.gradle @@ -0,0 +1,70 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'br.com.fiap.navegandoentretelas' + compileSdk 33 + + defaultConfig { + applicationId "br.com.fiap.navegandoentretelas" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.3.2' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.8.0' + implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + implementation 'androidx.activity:activity-compose:1.5.1' + implementation platform('androidx.compose:compose-bom:2022.10.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' + + implementation "androidx.navigation:navigation-compose:2.6.0" + implementation "com.google.accompanist:accompanist-navigation-animation:0.30.1" +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/proguard-rules.pro b/fase01/trilha-android/projects/Navegandoentretelas/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/androidTest/java/br/com/fiap/navegandoentretelas/ExampleInstrumentedTest.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/androidTest/java/br/com/fiap/navegandoentretelas/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..51b686a --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/androidTest/java/br/com/fiap/navegandoentretelas/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package br.com.fiap.navegandoentretelas + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("br.com.fiap.navegandoentretelas", appContext.packageName) + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/AndroidManifest.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7674fac --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/MainActivity.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/MainActivity.kt new file mode 100644 index 0000000..6854bc3 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/MainActivity.kt @@ -0,0 +1,89 @@ +package br.com.fiap.navegandoentretelas + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.animation.AnimatedContentScope +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.navigation.NavType +import androidx.navigation.compose.NavHost +// import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import br.com.fiap.navegandoentretelas.screens.LoginScreen +import br.com.fiap.navegandoentretelas.screens.MenuScreen +import br.com.fiap.navegandoentretelas.screens.PedidosScreen +import br.com.fiap.navegandoentretelas.screens.PerfilScreen +import br.com.fiap.navegandoentretelas.ui.theme.NavegandoEntreTelasTheme +import com.google.accompanist.navigation.animation.AnimatedNavHost +import com.google.accompanist.navigation.animation.rememberAnimatedNavController +import com.google.accompanist.navigation.animation.composable + +class MainActivity : ComponentActivity() { + @OptIn(ExperimentalAnimationApi::class) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + NavegandoEntreTelasTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + val navController = rememberAnimatedNavController() + AnimatedNavHost( + navController = navController, + startDestination = "login", + exitTransition = { + slideOutOfContainer(towards = + AnimatedContentScope.SlideDirection.End, + animationSpec = tween(1000) + ) + fadeOut(animationSpec = tween(1000))}, + enterTransition = { + slideIntoContainer(towards = + AnimatedContentScope.SlideDirection.Start, + animationSpec = tween(3000) + )} + ) { + composable(route = "login") { + LoginScreen(navController) } + composable(route = "menu") { + MenuScreen(navController) } + composable( + route = "pedidos?cliente={cliente}", + arguments = listOf(navArgument(name = "cliente") { + defaultValue = "Sem cliente" + }) + ) { + PedidosScreen(navController, it.arguments?.getString("cliente")) + } + composable( + route = "perfil/{nome}/{idade}", + arguments = listOf( + navArgument("nome") { + type = NavType.StringType + }, + navArgument("idade") { + type = NavType.IntType + } + ) + ) { + val nome: String? = + it.arguments?.getString("nome", "") + val idade: Int? = + it.arguments?.getInt("idade", 0) + PerfilScreen(navController, nome!!, idade!!) } + } + } + } + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/LoginScreen.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/LoginScreen.kt new file mode 100644 index 0000000..659f7a2 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/LoginScreen.kt @@ -0,0 +1,41 @@ +package br.com.fiap.navegandoentretelas.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController + +@Composable +fun LoginScreen(navController: NavController) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFED145B)) + .padding(32.dp) + ){ + Text( + text = "LOGIN", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "ENTRAR", fontSize = 20.sp, color = Color.Blue) + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/MenuScreen.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/MenuScreen.kt new file mode 100644 index 0000000..9d1ea35 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/MenuScreen.kt @@ -0,0 +1,68 @@ +package br.com.fiap.navegandoentretelas.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController + +@Composable +fun MenuScreen(navController: NavController) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF2C4EC7)) + .padding(32.dp) + ){ + Text( + text = "MENU", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.Center) + ) { + Button( + onClick = { navController.navigate("perfil/Mônica/32") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Perfil", fontSize = 20.sp, color = Color.Blue) + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { navController.navigate("pedidos?cliente=Testando") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Pedidos", fontSize = 20.sp, color = Color.Blue) + } + Spacer(modifier = Modifier.height(16.dp)) + Button( + onClick = { navController.navigate("login") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.size(width = 200.dp, height = 48.dp) + ) { + Text(text = "Sair", fontSize = 20.sp, color = Color.Blue) + } + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PedidosScreen.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PedidosScreen.kt new file mode 100644 index 0000000..4ae0fb4 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PedidosScreen.kt @@ -0,0 +1,40 @@ +package br.com.fiap.navegandoentretelas.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController + +@Composable +fun PedidosScreen(navController: NavController, cliente: String?) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFAFA9A9)) + .padding(32.dp) + ){ + Text( + text = "PEDIDOS - $cliente", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PerfilScreen.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PerfilScreen.kt new file mode 100644 index 0000000..76bb4f1 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/screens/PerfilScreen.kt @@ -0,0 +1,44 @@ +package br.com.fiap.navegandoentretelas.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController + +@Composable +fun PerfilScreen( + navController: NavController, + nome: String, + idade: Int +) { + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFF329F6B)) + .padding(32.dp) + ){ + Text( + text = "PERFIL - $nome tem $idade anos!", + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + Button( + onClick = { navController.navigate("menu") }, + colors = ButtonDefaults.buttonColors(Color.White), + modifier = Modifier.align(Alignment.Center) + ) { + Text(text = "Voltar", fontSize = 20.sp, color = Color.Blue) + } + } +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Color.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Color.kt new file mode 100644 index 0000000..8144d01 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package br.com.fiap.navegandoentretelas.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Theme.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Theme.kt new file mode 100644 index 0000000..c138291 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Theme.kt @@ -0,0 +1,70 @@ +package br.com.fiap.navegandoentretelas.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalView +import androidx.core.view.WindowCompat + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun NavegandoEntreTelasTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme + } + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Type.kt b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Type.kt new file mode 100644 index 0000000..fe99850 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/java/br/com/fiap/navegandoentretelas/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package br.com.fiap.navegandoentretelas.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable/ic_launcher_background.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/colors.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/strings.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..2b17f15 --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Navegando entre telas + \ No newline at end of file diff --git a/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/themes.xml b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..f594e2b --- /dev/null +++ b/fase01/trilha-android/projects/Navegandoentretelas/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + + + + +

Conteudo do arquivo CSV

+ {% for table in tables %} + {{ table|safe }} + {% endfor %} +
+ Enviar outro arquivo + + +~~~ + +- o arquivo requirements.txt contém as bibliotecas utilizadas na aplicação; é utilizado automaticamente para a instalação das bibliotecas no momento do deploy na nuvem. + +~~~ +Flask +pandas +~~~ + +- com os arquivos criados e armazenados no local correto, ***a próxima etapa é configurar o GitHub para armazenar o código-fonte da aplicação***. + - entre nos repositórios da conta do Github, e clicar em “New”. + - configure o nome do repositório, no caso “displaycsv”, deixando o acesso público e habilitando o Azure pipelines que poderá ser utilizado posteriormente. +- após criar o repositório, retorne à máquina local para enviar os arquivos previamente criados para o repositório Git. Execute os seguintes comandos: + +~~~ +echo "# displaycsv" >> README.md +git init +git add README.md +git commit -m "first commit" +git branch -M main +git remote add origin https://github.com/rksakai/displaycsv.git +git push -u origin main +~~~ + +- toda a parte de codificação e versionamento inicial foi realizada com sucesso. +- a próxima etapa é disponibilizar uma aplicação na nuvem Azure e integrar com o GitHub para poder executar o que foi descrito anteriormente como CI/CD. + +## 1.4 Azure WebApp Deploy + +- chegou a hora de levar o aplicativo do GitHub ou da sua máquina local para rodar na nuvem, utilizando o Azure WebApp. +- entre no portal Azure e siga as instruções para fazer o deploy da sua aplicação na Web. +- na tela inicial do portal Azure, procure por “Create Resource”, que é uma das formas mais simples de iniciar a implantação de um serviço na Azure, embora não seja a única. +- selecione WebApp (Aplicativo Web). +- complete a configuração básica, porém essencial, da aplicação conforme tabela abaixo: + +
+
+Dados Básicos do WebApp. +
+ +- a próxima parte a ser configurada está na guia “Deployment”. + - habilite o ‘Continuos deployment’ para possibilitar que a integração com a ferramenta de CI/CD (Github) seja automática. + - na seção ‘Github Account’ configure a conta pessoal e o repositório criado anteriormente. + - as abas não mencionadas podem manter a configuração padrão (default). + - clique em‘Create’. + - o processo de deployment da aplicação pode demorar um pouco e pode ser acompanhado. + - após a finalização do deployment da aplicação é possível navegar rapidamente até o recurso clicando em ‘Go to Resource’. + +- seguindo corretamente todos os passos até aqui, a aplicação em Python já esta entregue (deploy) no WebApp. +- navegando nos menus ‘Deployment’ e selecionando a opção ‘Deployment Center’, podem ser vistas as configurações de integração com o GitHub e os logs que indicam sucesso ou falha. +- em Deployment Center (settings), temos um botão “Browse” que ao ser clicado vai abrir outra aba no navegador com a aplicação que foi desenvolvida. A aplicação simples permite enviar um arquivo CSV (dados separados por ‘;’) para ser processado e visualizar os dados no navegador. +- após escolher o arquivo e clicar em enviar, o resultado será mostrado no navegador. + +--- + +## FAST TEST + +### 1. Leia a definição: "É uma estratégia de implantação de aplicação que mantém duas versões idênticas do ambiente de produção: uma versão ativa e outra inativa". Com base nessa definição, qual é a estratégia de implantação descrita? +> Blue-Green Deployment. + +### 2. Assinale a alternativa que completa corretamente a frase a seguir: "O _____________ de aplicação, refere-se ao processo de disponibilizar uma aplicação para uso em um ambiente específico, que pode ser de desenvolvimento, teste, homologação ou produção." +> deployment + +### 3. Assinale a alternativa que apresenta estratégias de implantação de uma aplicação. +> Rolling Deployment, Canary Deployment, Recreate Deployment. + +--- + +[Voltar ao início!](https://github.com/DigouO/Smart_Cities_FIAP_2024) \ No newline at end of file diff --git a/fase06/projects/displaycsv-main/.github/workflows/main_displaycsv.yml b/fase06/projects/displaycsv-main/.github/workflows/main_displaycsv.yml new file mode 100644 index 0000000..9dbc7f1 --- /dev/null +++ b/fase06/projects/displaycsv-main/.github/workflows/main_displaycsv.yml @@ -0,0 +1,67 @@ +# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy +# More GitHub Actions for Azure: https://github.com/Azure/actions +# More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions + +name: Build and deploy Python app to Azure Web App - displaycsv + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python version + uses: actions/setup-python@v1 + with: + python-version: '3.12' + + - name: Create and start virtual environment + run: | + python -m venv venv + source venv/bin/activate + + - name: Install dependencies + run: pip install -r requirements.txt + + # Optional: Add step to run tests here (PyTest, Django test suites, etc.) + - name: Zip artifact for deployment + run: zip release.zip ./* -r + + - name: Upload artifact for deployment jobs + uses: actions/upload-artifact@v3 + with: + name: python-app + path: | + release.zip + !venv/ + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'Production' + url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v3 + with: + name: python-app + + - name: Unzip artifact for deployment + run: unzip release.zip + + - name: 'Deploy to Azure Web App' + uses: azure/webapps-deploy@v2 + id: deploy-to-webapp + with: + app-name: 'displaycsv' + slot-name: 'Production' + publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_3D66FCFFABC641EE9332E8F114AE44CD }} diff --git a/fase06/projects/displaycsv-main/README.md b/fase06/projects/displaycsv-main/README.md new file mode 100644 index 0000000000000000000000000000000000000000..020324f0ae38760b9be32d858bffadd131c8478d GIT binary patch literal 78 zcmezWPnki1A%!86p_rk7A%`K6p^_mP$Swnl>H@I~Ln=@_A1G4^ + + + Visualização dos dados + + + +

Conteudo do arquivo CSV

+ {% for table in tables %} + {{ table|safe }} + {% endfor %} +
+ Enviar outro arquivo + + \ No newline at end of file diff --git a/fase06/projects/displaycsv-main/templates/index.html b/fase06/projects/displaycsv-main/templates/index.html new file mode 100644 index 0000000..01f1a04 --- /dev/null +++ b/fase06/projects/displaycsv-main/templates/index.html @@ -0,0 +1,13 @@ + + + + Visualização dos dados + + +

Enviar arquivo CSV

+
+ + +
+ + \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..7ace4b3 --- /dev/null +++ b/readme.md @@ -0,0 +1,198 @@ +
+

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS - FIAP ON

+

2°. ANO - 2024

+ + +
+ +

📱 FASE 1: APP WORLD (de 05/02 até 19/03)

+ +
+MOBILE APPLICATION DEVELOPMENT + +[Capítulo 01: O show tem que continuar!](./fase01/capitulo01.md)
+[Capítulo 03: Um mundo de oportunidades.](./fase01/capitulo03.md)
+ +
+ +
+ENTREPRENEURSHIP PROGRAM + +[Capítulo 02: Cidades inteligentes.](./fase01/capitulo02.md)
+ +
+

Trilhas

+ +
+Trilha Android +
+ +- [Cap 2A - Introdução ao Kotlin](./fase01/trilha-android/capitulo2a.md) +- [Cap 3A - A casa do Android](./fase01/trilha-android/capitulo3a.md) +- [Cap 4A - Introdução ao Jetpack Compose](./fase01/trilha-android/capitulo4a.md) +- [Cap 5A - Layouts e componentes básicos no Jetpack Compose](./fase01/trilha-android/capitulo5a.md) +- [Cap 6A - Componentes básicos com Jetpack Composes](./fase01/trilha-android/capitulo6a.md) +- [Cap 7A - Uso de Cards e Imagens](./fase01/trilha-android/capitulo7a.md) +- [Cap 8A - Navegação e Fluxo entre telas](./fase01/trilha-android/capitulo8a.md) +- [Cap 9A - Gestão de estado no Jetpack Compose](./fase01/trilha-android/capitulo9a.md) +- [Cap 10A - Internacionalização e Validação de entrada de dados](./fase01/trilha-android/capitulo10a.md) +- [Cap 11A - Persistência de dados locais](./fase01/trilha-android/capitulo11a.md) +- [Cap 12A - Listas e Consumo de API externa](./fase01/trilha-android/capitulo12a.md) +- [Cap 13A - Animação e Multimídia](./fase01/trilha-android/capitulo13a.md) + +
+
+Trilha IOS +
+ +- Cap 2B - A hora da maçã +- Cap 3B - Voe com Swift +- Cap 4B - A casa do iOS +- Cap 5B - Toda aplicação tem um ciclo +- Cap 6B - Beleza e usabilidade inteligentes +- Cap 7B - Gravando informações +- Cap 8B - Integrando a sua aplicação +- Cap 9B - O Ecossistema de Sensores e Multimídia + +
+
+ +

⌨️ FASE 2: DATABASE PROGRAMMING (de 20/03 até 23/04)

+ +
+MASTERING RELATIONAL AND NON-RELATIONAL DATABASE + +- [Cap 1 - Programar dentro do banco de dados, o sonho](./fase02/capitulo01.md) +- [Cap 2 - Programando dentro do banco de dados!](./fase02/capitulo02.md) +- [Cap 3 - O banco respeitando decisões](./fase02/capitulo03.md) +- [Cap 4 - Malabarismo dentro do Oracle](./fase02/capitulo04.md) +- [Cap 5 - Objetos no Oracle!](./fase02/capitulo05.md) +- [Cap 6 - Tratando exceções, desta vez no BD](./fase02/capitulo06.md) +- [Cap 7 - Muito a processar antes de persistir](./fase02/capitulo07.md) +- [Cap 8 - Crie suas próprias funções no Oracle](./fase02/capitulo08.md) +- [Cap 9 - Empacotando os elementos do banco](./fase02/capitulo09.md) +- [Cap 10 - Gatilhos Mágicos](./fase02/capitulo10.md) + +
+ +
+ENTREPRENEURSHIP PROGRAM + +- [Cap 11 - Identificando oportunidades](./fase02/capitulo11.md) +- [Cap 12 - Validating your startup!](./fase02/capitulo12.md) + +
+
+ +

💻 FASE 3: FRAMEWORKS JAVA (de 24/04 até 28/05)

+ +
+JAVA ADVANCED + +- [Cap 1 - Mergulhando no Java](./fase03/capitulo01.md) +- [Cap 2 - A Persistência de Dados](./fase03/capitulo02.md) +- [Cap 3 - O REST com Spring Boot](./fase03/capitulo03.md) +- [Cap 4 - O Spring Data JPA](./fase03/capitulo04.md) +- [Cap 5 - O Spring Security](./fase03/capitulo05.md) +- [Cap 6 - Nossa aplicação no contêiner](./fase03/capitulo06.md) +- [Cap 7 - Deploy da aplicação em cloud](./fase03/capitulo07.md) +- [Cap 8 - Microsserviços com Spring](./fase03/capitulo08.md) + +
+ +
+ENTREPRENEURSHIP PROGRAM + +- [Cap 9 - Startup: Modelo de Negócios](./fase03/capitulo09.md) +- [Cap 10 - Startup: Exploring the Canvas](./fase03/capitulo10.md) + +
+
+ +

💭 FASE 4 - FRAMEWORKS .NET (de 29/05 até 28/06)

+ +
+ADVANCED BUSINESS DEVELOPMENT WITH .NET + +- [Cap 1 - O Mundo .NET](./fase04/capitulo01.md) +- [Cap 2 - Preparando o Ambiente .NET](./fase04/capitulo02.md) +- [Cap 3 - Programando em C#](./fase04/capitulo03.md) +- [Cap 4 - Desenvolvimento Web com ASP.NET](./fase04/capitulo04.md) +- [Cap 5 - Persistência de Dados](./fase04/capitulo05.md) +- [Cap 6 - Padrões e Práticas Avançadas](./fase04/capitulo06.md) +- [Cap 7 - APIs e Integração de Sistemas](./fase04/capitulo07.md) + +
+ +
+ENTREPRENEURSHIP PROGRAM + +- [Cap 8 - Prototipação](./fase04/capitulo08.md) + +
+
+ +

🎲 FASE 5: DATA UNIVERSE (de 05/08 até 10/09)

+ +
+MASTERING RELATIONAL AND NON-RELATIONAL DATABASE + +- [Capítulo 01: A Evolução do Universo de Dados](./fase05/capitulo01.md) +- [Capítulo 02: NOT ONLY SQL](./fase05/capitulo02.md) +- [Capítulo 03: Conhecendo o MongoDB](./fase05/capitulo03.md) +- [Capítulo 04: MongoDB na Prática](./fase05/capitulo04.md) +- [Capítulo 05: Big Data](./fase05/capitulo05.md) +- [Capítulo 06: Business Intelligence com Tableau](./fase05/capitulo06.md) + +
+ +
+DevOps TOOLS & CLOUD COMPUTING + +- [Capítulo 07: Cloud Computing](./fase05/capitulo07.md) +- [Capítulo 08: Arquitetura e Aplicações Cloud](./fase05/capitulo08.md) + +
+ +
+ENTERPRENEURSHIP PROGRAM + +- [Capítulo 09: Startup - Validando a Solução](./fase05/capitulo09.md) +- [Capítulo 10: Startup - Viabilidade Financeira](./fase05/capitulo10.md) + +
+
+ +

⚙️ FASE 6: DEVOPS (de 11/09 até 15/10)

+ +
+DEVOPS TOOLS & CLOUD COMPUTING + +- [Capítulo 01: Navegando pelo Mundo DevOps](./fase06/capitulo01.md) +- [Capítulo 02: DevOps e sua Importância](./fase06/capitulo02.md) +- [Capítulo 03: Deployment na Nuvem](./fase06/capitulo03.md) +- [Capítulo 04:]() +- [Capítulo 05:]() +- [Capítulo 06:]() + +
+ +
+COMPLIANCE, QUALITY ASSURANCE & TESTS + +- [Capítulo 07:]() +- [Capítulo 08:]() + +
+ +
+ENTERPRENEURSHIP PROGRAM + +- [Capítulo 09:](./fase05/capitulo09.md) + +
+
+ +
\ No newline at end of file