Stack técnico y build
- Lenguaje: Kotlin
- UI: Jetpack Compose + Material 3 (
androidx.compose.material3) - Iconografía:
material-icons-extended(pares filled/outlined para cada tab) - Tipografía: Google Fonts en runtime vía
androidx.compose.ui.text.googlefonts(fuente Inter) - Splash:
androidx.core.splashscreen(SplashScreenAPI, compatible con Android 12+) - Build system: Gradle con Kotlin DSL (
build.gradle.kts) y version catalog (libs.versions.toml) - Sin backend, sin base de datos, sin
ViewModel: todo el estado vive enremember/rememberSaveabledentro de los composables (ver Arquitectura)
defaultConfig
Sección titulada «defaultConfig»android { namespace = "com.omar.act4racingcards" compileSdk = 37
defaultConfig { applicationId = "com.omar.act4racingcards" minSdk = 24 targetSdk = 37 versionCode = 1 versionName = "1.0" }}minSdk = 24(Android 7.0) — pero el splash system-level (SplashScreenAPI) sólo se ve en su forma “nativa” desde Android 12; en versiones anteriores, la librería de compatibilidad lo emula.compileSdk/targetSdk= 37, la versión más reciente de Android al momento de escribir esto.
Compilar el proyecto
Sección titulada «Compilar el proyecto»$env:JAVA_HOME = "C:\Program Files\Android\Android Studio\jbr".\gradlew.bat :app:assembleDebugPara una verificación rápida de tipos sin compilar el APK completo:
$env:JAVA_HOME = "C:\Program Files\Android\Android Studio\jbr".\gradlew.bat :app:compileDebugKotlin --offline--offline evita que Gradle intente resolver dependencias nuevas contra la red en cada
verificación — útil para iterar rápido una vez que el proyecto ya sincronizó al menos una vez.
Estructura de módulos
Sección titulada «Estructura de módulos»El proyecto tiene un único módulo de aplicación:
Act4RacingCards/├── app/ # único módulo Gradle│ ├── src/main/java/com/omar/act4racingcards/│ └── src/main/res/├── gradle/libs.versions.toml # version catalog├── settings.gradle.kts # rootProject.name = "Act4RacingCards"└── build.gradle.kts