Android UI Completado

SplashScreen Android 12

Implementación de la nueva SplashScreen API de Android 12 con animaciones personalizadas y transiciones fluidas

SplashScreen Android 12 Demo

Descripción del Proyecto

Android 12 introdujo la nueva SplashScreen API que permite crear animaciones de lanzamiento más atractivas y consistentes. Este proyecto demuestra la implementación completa de esta API con diferentes tipos de animaciones y personalizaciones.

La nueva API incluye una animación de entrada, una pantalla de splash que muestra el icono de la aplicación, y una transición hacia la aplicación principal. Todo esto se logra de manera nativa y optimizada.

Tecnologías Utilizadas

SplashScreen API

API nativa de Android 12+

🎨

Custom Animations

Animaciones personalizadas

🏗️

Kotlin

Lenguaje principal

📱

Android 12+

Compatibilidad moderna

Características Principales

🚀

Launch Animation

Animación fluida de lanzamiento que mejora la experiencia del usuario durante el inicio de la aplicación.

🎭

Custom Icon Animation

Personalización del icono de la aplicación con animaciones que reflejan la identidad de la marca.

⏱️

Duración Configurable

Control total sobre la duración de la splash screen para optimizar la experiencia de usuario.

🎨

Temas Personalizados

Soporte para temas claros y oscuros con transiciones suaves entre diferentes modos.

Alto Rendimiento

Implementación optimizada que no afecta el tiempo de carga de la aplicación.

🔄

Backward Compatibility

Compatibilidad con versiones anteriores de Android usando SplashScreen compat library.

Demostraciones Visuales

El proyecto incluye múltiples ejemplos de animaciones y transiciones:

Animación Básica

Implementación básica de la SplashScreen API con transición estándar.

Animación Personalizada

Splash screen con animación personalizada del icono y efectos visuales.

Transición Avanzada

Transición compleja con múltiples elementos animados y efectos de entrada.

Implementación Técnica

Configuración Básica

// En el tema de la aplicación (themes.xml)
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
    <item name="windowSplashScreenBackground">@color/splash_background</item>
    <item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_animated</item>
    <item name="windowSplashScreenAnimationDuration">1000</item>
    <item name="postSplashScreenTheme">@style/Theme.App</item>
</style>

Implementación en MainActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        // Instalar la splash screen
        val splashScreen = installSplashScreen()
        
        super.onCreate(savedInstanceState)
        
        // Personalizar la duración
        splashScreen.setKeepOnScreenCondition {
            // Mantener splash screen mientras se cargan los datos
            !dataLoaded
        }
        
        // Listener para animaciones personalizadas
        splashScreen.setOnExitAnimationListener { splashScreenView ->
            // Crear animación personalizada de salida
            createCustomExitAnimation(splashScreenView)
        }
        
        setContentView(R.layout.activity_main)
    }
}

Animaciones Personalizadas

private fun createCustomExitAnimation(splashScreenView: SplashScreenView) {
    val slideUp = ObjectAnimator.ofFloat(
        splashScreenView,
        View.TRANSLATION_Y,
        0f,
        -splashScreenView.height.toFloat()
    )
    
    val fadeOut = ObjectAnimator.ofFloat(
        splashScreenView,
        View.ALPHA,
        1f,
        0f
    )
    
    AnimatorSet().apply {
        interpolator = AnticipateInterpolator()
        duration = 500L
        playTogether(slideUp, fadeOut)
        doOnEnd { splashScreenView.remove() }
        start()
    }
}

Beneficios de la Implementación

  • Mejor UX: Transiciones más fluidas y profesionales
  • Consistencia: Comportamiento uniforme en todo el ecosistema Android
  • Performance: Optimizado por el sistema operativo
  • Facilidad: API simple y fácil de implementar
  • Personalización: Control total sobre la apariencia y comportamiento