¿Qué es una Activity?
Una Activity es una pantalla de tu app con la que el usuario puede interactuar. Cada pantalla que el usuario ve es, en general, una Activity distinta.
Técnicamente, es una clase Kotlin que extiende AppCompatActivity (o ComponentActivity si usás solo Compose). El sistema Android la instancia, la muestra y la destruye según el flujo de la app.
Estructura del proyecto
Cuando Android Studio crea un proyecto nuevo, genera esta estructura:
app/
├── manifests/
│ └── AndroidManifest.xml ← define la app y sus componentes
├── kotlin+java/
│ └── com.ejemplo.miapp/
│ └── MainActivity.kt ← tu Activity principal
└── res/
├── layout/
│ └── activity_main.xml ← el layout (UI) de MainActivity
├── values/
│ ├── strings.xml
│ └── themes.xml
└── drawable/
El código generado
Abrí MainActivity.kt. Vas a ver algo como esto:
package ar.pensa.miapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
Analicemos línea por línea:
class MainActivity : AppCompatActivity()— tu Activity hereda deAppCompatActivity, que es la base con soporte para versiones antiguas de Android.override fun onCreate(...)— el primer método del ciclo de vida. Se llama cuando el sistema crea la Activity por primera vez. Acá iniciás tu UI.super.onCreate(savedInstanceState)— siempre hay que llamar al padre antes de cualquier cosa enonCreate.setContentView(R.layout.activity_main)— le decís a la Activity qué layout XML debe inflar y mostrar.
¿Qué es R.layout.activity_main?
R es una clase autogenerada por Android Studio que contiene referencias a todos tus recursos. Cada vez que agregás un archivo en res/, Android genera un ID numérico en R. Así el código puede referenciar recursos sin hardcodear rutas.
// Estas tres referencias apuntan a recursos en res/
setContentView(R.layout.activity_main) // res/layout/activity_main.xml
getString(R.string.app_name) // res/values/strings.xml
getColor(R.color.primary) // res/values/colors.xml
ImportanteSi Android Studio muestra R en rojo, probablemente hay un error en algún archivo de recursos o el proyecto necesita ser sincronizado. Usá File → Sync Project with Gradle Files.
Ejecutar la app
Para correr la app necesitás un dispositivo físico conectado por USB (con USB Debugging habilitado) o un emulador configurado desde Device Manager en Android Studio.
Presioná el botón ▶ Run (Shift+F10). Android Studio compila el proyecto, genera un APK y lo instala en el dispositivo/emulador.
TipPara desarrollo cotidiano, un emulador con API 34 y arquitectura x86_64 es más rápido que ARM. Si tenés un Mac con Apple Silicon, usá emuladores ARM.