domingo, 24 de mayo de 2026

Clase 07 - Product Flavors en Android

Product Flavors on Android

Los Product Flavors permiten crear varias versiones de una misma aplicación usando un solo proyecto.
Ejemplo:

free
pro

Cada flavor puede tener:

  • Nombre distinto
  • Ícono distinto
  • applicationId distinto
  • Backend distinto
  • Colores distintos
  • Funciones distintas
  • Publicación distinta en Play Store

Conceptos importantes

Build Type

Define cómo funciona técnicamente la app. Android por defecto crea:

debug
release

Debug: Usado para desarrollo y pruebas. Release: Usado para producción y publicar en Play Store.

Product Flavor

Define qué producto o variante estás creando. Ejemplo:

free
pro

Build Variants

Android combina:

Product Flavor + Build Type

Ejemplo:

Build Types

debug
release

Flavors

free
pro

Resultado final:

  • Free Debug
  • Free Release
  • Pro Debug
  • Pro Release
pp Real Build Types
App Real Products Flavor

Caso real aplicado (App Anibal Linux)

App Real Anibal Linux en playstore

Disponible en Play Store: AnibalLinux La idea es reutilizar un solo proyecto para crear múltiples apps.

Ejemplo:

  • Anibal Linux
  • Pepe Linux
  • Aji de Gallina

Todas usando el mismo código base.


Configuración de Product Flavors

Dentro de build.gradle.kts podemos configurar los flavors

Product Flavors configurados dentro de Android Studio
android {

    flavorDimensions += listOf("brand")

    productFlavors {

        create("anibal") {
            dimension = "brand"

            resValue("string", "app_name", "Anibal Linux")
            resValue("string", "name", "ANIBAL")
        }

        create("pepe") {
            dimension = "brand"

            applicationId = "com.anibalcopitan.pepelinux"

            resValue("string", "app_name", "Pepe Linux")
            resValue("string", "name", "PEPE")
        }

        create("ajidegallina") {
            dimension = "brand"

            applicationId = "com.anibalcopitan.ajidegallina"

            resValue("string", "app_name", "Aji de Gallina")
            resValue("string", "name", "Ajisito")
        }
    }
}

Explicación rápida del código

flavorDimensions

flavorDimensions += listOf("brand")

Agrupa los flavors por categorías. En este caso:

brand

porque estamos creando distintas marcas o productos.


create(“nombreFlavor”)

create("pepe")

Crea un nuevo flavor llamado:

pepe

applicationId

applicationId = "com.anibalcopitan.pepelinux"

Permite que Android vea la app como una aplicación diferente. Importante: cada app publicada en Play Store necesita un applicationId único.


resValue

resValue("string", "app_name", "Pepe Linux")

Crea valores dinámicos para cada flavor. Ejemplo:

Nombre distinto
Textos distintos
Configuraciones distintas

Sincronizar el proyecto

Después de modificar:

build.gradle.kts

debes sincronizar el proyecto. Android Studio mostrará:

Sync Now

Haz clic para que Android cree automáticamente los nuevos Build Variants.


Ejecutar los flavors

Después del Sync aparecerán los nuevos variants:

Anibal Linux Product Flavor
nibalLinux product flavors

Ahora podrás instalar:

  • anibalDebug
  • anibalRelease
  • pepeDebug
  • pepeRelease
  • ajidegallinaDebug
  • ajidegallinaRelease

en:

  • Emulador Android
  • Celular físico

Ventajas reales de Product Flavors

  • Reutilizar código: Un solo proyecto puede generar muchas apps.
  • Menor mantenimiento: Actualizas un solo proyecto y todas las apps reciben mejoras.
  • Escalable: Ideal para:
    • Apps SaaS
    • Apps para clientes
    • White label apps
    • Apps corporativas
    • Productos personalizados
  • Más rentable: Puedes vender múltiples productos usando una sola base de código.

Conclusión

Con Product Flavors puedes:

  • Crear múltiples apps
  • Reutilizar código
  • Reducir costos
  • Escalar más rápido
  • Mantener un solo proyecto profesional

Así trabajan muchas apps Android profesionales actualmente.

Autor: Anibal Copitan ()

No hay comentarios: