Instruções Gerais:

  • Resolva as atividades em ordem progressiva de maturidade.
  • Cada nível adiciona requisitos técnicos, tratamento de erros e casos de borda reais.
  • Consulte o gabarito comentado ao final de cada questão para autoavaliação.

🎯 Nível 1: Fundamentos

Problema 1.1 — Configuração de Build Gradle KTS com Plugins do Compose

Contexto: Configuração de Build Gradle KTS com Plugins do Compose no contexto de Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto.

Requisitos de Execução:

  1. Configurar arquivo build.gradle.kts do módulo app habilitando Compose compiler e dependências essenciais.

Resultado Esperado

Gradle KTS sincronizado e configurado para compilação Compose.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_1_1_SeuNome
  2. Envie na tarefa: Atividade Cap 1 - Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto
🔑 Gabarito de Código & Solução Comentada
plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.android)
    alias(libs.plugins.kotlin.compose)
}

android {
    namespace = "com.empresa.mobile"
    compileSdk = 35

    defaultConfig {
        applicationId = "com.empresa.mobile"
        minSdk = 26
        targetSdk = 35
        versionCode = 1
        versionName = "1.0.0"
    }

    buildFeatures {
        compose = true
    }
}

🔍 Nível 2: Prática

Problema 1.2 — Entry Point MainActivity com ComponentActivity e setContent

Contexto: Entry Point MainActivity com ComponentActivity e setContent no contexto de Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto.

Requisitos de Execução:

  1. Estruturar MainActivity.kt estendendo ComponentActivity e inicializando a árvore Compose.

Resultado Esperado

Activity Android inicializada com surface theme.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_1_2_SeuNome
  2. Envie na tarefa: Atividade Cap 1 - Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto
🔑 Gabarito de Código & Solução Comentada
package com.empresa.mobile

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MaterialTheme {
                Surface {
                    Text(text = "Portal Mobile Android Inicializado com Sucesso")
                }
            }
        }
    }
}

⚡ Nível 3: Integração

Problema 1.3 — Version Catalog (libs.versions.toml) para Gestão Centralizada de Dependências

Contexto: Version Catalog (libs.versions.toml) para Gestão Centralizada de Dependências no contexto de Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto.

Requisitos de Execução:

  1. Declarar dependências do Compose BOM, Core KTX e Material3 no libs.versions.toml.

Resultado Esperado

Catálogo de versões centralizado e tipado para o Gradle.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_1_3_SeuNome
  2. Envie na tarefa: Atividade Cap 1 - Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto
🔑 Gabarito de Código & Solução Comentada
[versions]
agp = "8.7.2"
kotlin = "2.0.21"
composeBom = "2024.10.01"

[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version = "1.15.0" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

🏆 Nível 4: Desafio Corporativo

Problema 1.4 — Automação de Build Multi-Flavor (dev, staging, prod) no Gradle KTS

Contexto: Automação de Build Multi-Flavor (dev, staging, prod) no Gradle KTS no contexto de Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto.

Requisitos de Execução:

  1. Configurar Product Flavors com chaves de API e application IDs distintos.

Resultado Esperado

Flavors de compilação configurados para CI/CD corporativo.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_1_4_SeuNome
  2. Envie na tarefa: Atividade Cap 1 - Ecossistema Android, Kotlin 2.0, Gradle KTS e Estrutura de Projeto
🔑 Gabarito de Código & Solução Comentada
android {
    flavorDimensions += "ambiente"
    productFlavors {
        create("dev") {
            dimension = "ambiente"
            applicationIdSuffix = ".dev"
            buildConfigField("String", "API_BASE_URL", "\"https://dev.api.empresa.com\"")
        }
        create("prod") {
            dimension = "ambiente"
            buildConfigField("String", "API_BASE_URL", "\"https://api.empresa.com\"")
        }
    }
}

⬅️ Voltar ao Índice de Exercícios 📚 Sumário de Tópicos