Introducción a Android Studio
¿Qué es Android Studio?
Android Studio es el entorno de desarrollo integrado (IDE) oficial para crear aplicaciones Android. Está basado en IntelliJ IDEA y proporciona todas las herramientas necesarias para desarrollar apps, incluyendo un sistema de compilación, un emulador rápido, soporte para varios idiomas como Kotlin y Java, y herramientas para optimizar y probar el rendimiento de las aplicaciones. Android Studio ofrece aún más funciones que mejoran su productividad cuando compilas apps para Android, como las siguientes.
Desarrollo Nativo
Android Studio está diseñado específicamente para el desarrollo de aplicaciones nativas de Android, utilizando Java, Kotlin y C++.
Rendimiento Optimizado
Incluye un emulador rápido y cargado de funciones, un sistema de compilación flexible y herramientas de desarrollo en tiempo real.
Herramientas Integradas
Proporciona un editor de diseño visual, APK Analyzer, sistema de depuración inteligente y perfiles de rendimiento integrados.
Características Principales
Editor de Código Inteligente
Android Studio incluye un editor de código avanzado capaz de completar código, refactorizar y analizar tu código para detectar problemas de rendimiento, compatibilidad y usabilidad.
Diseño Visual
Con el editor de diseño, puedes crear interfaces de usuario arrastrando y soltando elementos, previsualizando en múltiples configuraciones de pantalla y obteniendo una vista previa en tiempo real de tu diseño.
APK Analyzer
Reduce el tamaño de tu APK y depura problemas de composición inspeccionando el contenido de tus archivos APK.
Sistema de Compilación Flexible
Basado en Gradle, el sistema de compilación te permite personalizar la compilación para generar múltiples variantes de tu aplicación desde un solo proyecto.
Emulador Rápido y Rico en Características
El emulador de Android Studio se instala y arranca más rápido que un dispositivo físico y viene preconfigurado con varias configuraciones de dispositivos populares.
Primeros Pasos con Android Studio
1. Instalación
Se puede descargar Android Studio desde el sitio oficial de desarrolladores de Android. El instalador incluye el SDK de Android y todas las herramientas necesarias.
Para descargar Android Studio, puedes hacer click en la siguiente liga:
2. Configuración Inicial
Al abrir Android Studio por primera vez, se ejecuta una guia a través de un asistente de configuración que sirve de ayuda para descargar los componentes adicionales necesarios.
3. Crear Primer Proyecto
Seleccionar "Start a new Android Studio project" y eligir una plantilla. Para principiantes, "Empty Activity" es una buena opción para comenzar.
4. Estructura del Proyecto
Es importante estar familiarizado con la estructura de carpetas de un proyecto Android:
├── manifests/
│ └── AndroidManifest.xml
├── java/
│ └── com.example.myapp/
├── res/
│ ├── layout/
│ ├── values/
│ └── drawable/
└── Gradle Scripts
Cada proyecto de Android Studio incluye uno o más módulos con archivos de código fuente y archivo de recursos. Entre los tipos de módulos, se incluyen los siguientes:
- Módulos de apps para Android
 - Módulos de biblioteca
 - Modulos de Google App Engien
 
De forma predeterminada, Android Studio muestra los archivos de el proyecto en la vista Android. Esta vista está organizada en módulos para que puedas acceder rápidamente a los archivos fuente clave de tu proyecto. Puedes ver todos los archivos de compilación en el nivel superior, en Gradle Scripts
Cada módulo de app contienen las siguientes carpetas:
- manifest: Contiene el archivo AndroidManifest.xml
 - java: Contiene los archivos de código fuente de Kotlin y Java, incluido el código de prueba jUnit.
 - res: Contiene todos los recursos sin código , como cadenas de IU y, ademas imágenes de mapa de bits
 - La estructura del proyecto de Android en el disco difiere de esta representación plana.
 
Para ver la estructura real de los archivos del proyecto, selecciona Project en lugar de Android en el menú Project
Los archivos de compilación de Android Studio se denominan build.gradle.kts si usas Kotlin (recomendado) o build.gradle si usas Groovy. Son archivos de texto sin formato que usan la sintaxis de Kotlin o Groovy para configurar la compilación con elementos que proporciona el complemento de Android para Gradle. Cada proyecto tiene un archivo de compilación de nivel superior para todo el proyecto y archivos de compilación de nivel de módulo independientes para cada módulo. Cuando importas un proyecto existente, Android Studio genera automáticamente los archivos de compilación necesarios.
Un poco de sintaxis de Kotlin
Lo primero es entender lo que significa cada cosa en kotlin aplicada a android studio y que hace cada biblioteca.
Definir el namespace del archivo. En android studio, esto mapea a carpetas:
package
Traer tipos a al archivo para que se puedan usar sin el nombre completo. Android Studio los puede agregar automáticamente con Alt + Enter
import
Interface y anotaciones: Definir un contrato (un metodo sin implementacion concreta). Lo que hace retrofit es generar la implementacion en tiempo de ejecuacion cuando se llama a .create(ApiService::class.java) con:
interface ApiService
Anotaciones de Retofit:
@GET(“ruta”)
@POST(“ruta”)
@Body
Estos van encima de funciones o parametros para decribir la peticion HTTP, el tipo de retorno aquí es una Call<T> (de Retrofit), un envoltorio asincrono clasico
Call<ApiResponse>
Call<CreateBookingResponse>
La <T> indice el tipo de respesta que retrofit deserializara con el convertidor
Componentes Esenciales de Android
Activities
Representan una pantalla con una interfaz de usuario. Cada Activity tiene un ciclo de vida que gestiona su creación, pausa, reanudación y destrucción.
Services
Componentes que ejecutan operaciones en segundo plano sin interfaz de usuario, como reproducir música o descargar archivos.
Broadcast Receivers
Responden a anuncios del sistema, como cambios en la conectividad o batería baja, incluso cuando la aplicación no se está ejecutando.
Content Providers
Gestionan un conjunto compartido de datos de aplicaciones, permitiendo que otras aplicaciones consulten o modifiquen los datos.
Consejos para Desarrolladores Novatos
Aprende Kotlin
Kotlin es ahora el lenguaje preferido para el desarrollo de Android. Es más conciso y seguro que Java, y Google ofrece excelente documentación para aprenderlo.
Utiliza la Documentación Oficial
La documentación de desarrolladores de Android es extensa y está bien mantenida. Es tu mejor recurso para resolver dudas y aprender mejores prácticas.
Comienza con Proyectos Pequeños
No intentes construir una aplicación compleja desde el principio. Comienza con proyectos simples para entender los conceptos básicos.
Aprovecha las Plantillas
Android Studio incluye plantillas para patrones de diseño comunes como Navigation Drawer, Tabbed Activity y más. Úsalas para acelerar tu desarrollo.
Depura con Regularidad
Aprende a usar el depurador de Android Studio. Te ayudará a encontrar y corregir errores más rápidamente.
Prueba en Múltiples Dispositivos
Android tiene una gran fragmentación de dispositivos. Prueba tu aplicación en diferentes tamaños de pantalla y versiones de Android.
Configuración de un Service Manager para consumir datos de una API
El service magaer es una clase centralizada que se encarga de configurar retrofit y OkHttp, agregar headers (como lo pueden ser tokens), crear una instancia del servicio que define los endpoints. asi como ser el punto unico para consumir datos desde cualquier parte del proyecto
Para empezar con el desarrollo de nuestra app, agregar las siguientes dependencias en el build.gradle:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
Modelo de datos
En este punto tenemos que definir un modelo de datos.
En el contexto de las API y Android Studio, un modelo se refiere a la parte de una aplicación que se encarga de gestionar los datos y la lógica de negocio. Forma parte de un patrón de arquitectura de software, como el MVVM (Modelo-Vista-ViewModel), muy utilizado en el desarrollo de aplicaciones Android
Cuando una aplicación Android necesita obtener información de internet, utiliza una API (Interfaz de Programación de Aplicaciones). En este escenario, el modelo desempeña un papel crucial:
- Consumo de la API: El modelo se conecta a la API para solicitar los datos necesarios.
 - chatMapeo de datos: El modelo toma la respuesta de la API (por ejemplo, en formato JSON) y la convierte en objetos de datos comprensibles para la aplicación. Por ejemplo, si una API devuelve una lista de usuarios, el modelo creará una lista de objetos User en la aplicación.
 - Provisión de datos: El modelo proporciona estos datos procesados al ViewModel, que a su vez los hace disponibles para la Vista (la interfaz de usuario).
 
Ejemplo de modelo
// Archivo: Movie.kt
package com.example.myapp.models
// Usar la anotación @Serializable si se está trabajando con librerías como Kotlinx Serialization
// import kotlinx.serialization.Serializable
// @Serializable
data class Movie( //declarar la clase de datos con nombre Movie
val id: Int, //identificador unico de la pelicula
val title: String, //Representacion de el titulo de la pelicuñ
val overview: String,
val posterUrl: String,
val releaseDate: String
)
En Android Studio, los modelos (por ejemplo, clases que representan datos como usuarios, productos, etc.) suelen definirse dentro de la carpeta app/src/main/java siguiendo una estructura de paquetes organizada:
En la carpeta model se colocan las clases que representan entidades o estructuras de datos.
Porque usar modelos de datos al consumir una API.
Cuado una app consume datos desde una API (por ejemplo, en formato JSON), esos datos se deben de convertir a objetos que la app maneje de manera facil. En esta parte es donde entra el uso de modelos.
build.gradle
En esta parte estaremos viendo lo importante que sera build.gradle en el proyecto de android studio.
Gradle es el sitema de build que usa android studio, build.gardle es el script que describe como compilar el proyecto. En los proyectos android, normalmente hay dos tipos de este archivo
- Project-level (a la raíz del proyecto): configuración global (repositorios, versiones de plugins, classpath del Android Gradle Plugin - AGP).
 
Estructura:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:8.1.0" // AGP
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
- 
Module-level (por ejemplo app/build.gradle): configuración específica del módulo: android { ... }, dependencies { ... }, buildTypes, productFlavors, defaultConfig, etc.
 
Estructura:
plugins {
    id 'com.android.application'
    id 'kotlin-android'
}
android {
    compileSdk 34
    defaultConfig {
        applicationId "com.ejemplo.app"
        minSdk 24
        targetSdk 34
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            applicationIdSuffix ".debug"
            versionNameSuffix "-dev"
        }
    }
}
dependencies {
    implementation "androidx.core:core-ktx:1.10.0"
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.10"
    testImplementation "junit:junit:4.13.2"
}
Android Studio