Ir al contenido

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 (SplashScreen API, 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 en remember / rememberSaveable dentro de los composables (ver Arquitectura)
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 (SplashScreen API) 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.
Ventana de terminal
$env:JAVA_HOME = "C:\Program Files\Android\Android Studio\jbr"
.\gradlew.bat :app:assembleDebug

Para una verificación rápida de tipos sin compilar el APK completo:

Ventana de terminal
$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.

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