Un sistema completo de tutorial/onboarding para aplicaciones Flutter con animaciones Lottie interactivas. Perfecto para mostrar las características de tu app de manera visual y atractiva.
✅ 7 pantallas de tutorial pre-configuradas
✅ 35+ animaciones Lottie incluidas
✅ Interactividad completa (hover effects)
✅ Diseño responsive y adaptable
✅ Código modular y fácil de personalizar
✅ Soporte multiplataforma (Android, iOS, Web)
✅ Licencia MIT - Uso libre y gratuito
flutter --version # Flutter 3.19 o superior
dart --version # Dart 3.3 o superior# En tu pubspec.yaml
dependencies:
flutter:
sdk: flutter
lottie: ^3.3.2 # Animaciones Lottieflutter:
assets:
- assets/lottie/import 'package:flutter/material.dart';
import 'tutorial/TutorialScreen.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: TutorialScreen(
onCompleted: () {
// Navega a tu pantalla principal
},
showSkipButton: true,
),
);
}
}lib/
├── core/
│ └── utils/
│ ├── AppColors.dart # 🎨 Paleta de colores
│ └── Lotties.dart # 📁 Rutas de animaciones
├── widget/
│ └── HoverLottieAnimation.dart # 🖱️ Widget interactivo
└── tutorial/
├── data_tutorial.dart # 📋 Contenido del tutorial
└── TutorialPage.dart # 🖼️ Pantalla principal
HoverLottieAnimation(
assetPath: LottieAssets.chat(), // Animación a mostrar
width: 300,
height: 300,
onHover: () {
// Acción personalizada al hacer hover
},
)Características:
▶️ Animación inicial automática- 🔄 Replay al hacer hover
- 🛡️ Manejo seguro con
mountedchecks - 🗑️ Liberación correcta de recursos
// En data_tutorial.dart
TutorialData(
lottieAnimation: LottieAssets.yourAnimation(),
title: "Tu Título Personalizado",
description: "Descripción detallada\nde tu funcionalidad",
backgroundColor: Colors.blue.withOpacity(0.1),
),- Descarga el archivo
.jsonde Lottie - Colócalo en
assets/lottie/ - Agrega referencia en
Lotties.dart:
static String tuAnimacion() => '${_basePath}tu-animacion.json';// En AppColors.dart
class AppColors {
static const Color background = Color(0xFFF8F9FA);
static const Color accent = Color(0xFF007AFF);
static const Color textPrimary = Color(0xFF1C1C1E);
// Personaliza según tu branding
}| Plataforma | Animaciones Gratis | Formato | Destacado |
|---|---|---|---|
| LottieFiles | 800,000+ | .json |
Mayor colección |
| Lordicon | Limitado (39,500+ premium) | .json |
Calidad premium |
| IconScout | Cientos | .json |
Plugins integrados |
| Icons8 | 2,000+ | .json |
Categorizadas |
| Creattie | Colecciones temáticas | .json |
Diseño profesional |
- LottieFiles Community - Busca "flutter", "onboarding", "tutorial"
- Lordicon Free Icons - Icons animados gratuitos
- IconScout Lottie - Filtra por "Free"
- Icons8 Lottie - 2,000+ animaciones gratis
- Tamaño: Prefiere archivos < 500KB
- Estilo: Mantén consistencia visual
- Colores: Animaciones editables son mejores
- Licencia: Verifica uso comercial gratuito
- Rendimiento: Prueba en dispositivos antiguos
// ❌ INCORRECTO
frameRate: FrameRate.max,
// ✅ CORRECTO
frameRate: const FrameRate(60), // O elimina esta líneaProblema: El context no tiene un Navigator como ancestro.
Solución: Usa un widget separado o Builder:
// ✅ Solución con Builder
Builder(
builder: (BuildContext context) {
return ElevatedButton(
onPressed: () {
Navigator.push(context, ...); // Ahora funciona
},
);
},
)Lottie.asset(
'assets/animation.json',
renderCache: true, // ✅ Reduce CPU/GPU usage
frameRate: const FrameRate(30), // ✅ 30 FPS para animaciones simples
)Para probar el tutorial inmediatamente:
# Clona el repositorio
git clone https://github.com/tu-usuario/flutter-tutorial-lottie.git
# Navega al directorio
cd flutter-tutorial-lottie
# Instala dependencias
flutter pub get
# Ejecuta en tu dispositivo preferido
flutter run¡Contribuciones son bienvenidas!
- Fork el repositorio
- Crea una rama (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'Añade nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
- Sube archivos
.jsonaassets/lottie/ - Actualiza
Lotties.dartcon nuevas referencias - Añade ejemplos en
data_tutorial.dart
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
MIT License © 2024
Permisos:
✅ Uso comercial
✅ Modificación
✅ Distribución
✅ Uso privado
Restricciones:
❌ Responsabilidad
❌ Garantía
- Documentación Oficial de Lottie para Flutter
- Ejemplos de Animaciones Lottie
- Guía de Mejores Prácticas en Flutter
- Comunidad Flutter en Español
¿Encontraste un error o tienes una pregunta?
- Issues: Reportar un problema
- Discusiones: Foro de la comunidad
- Contacto:
andyclmentegago@gmail.com
⭐ Si este proyecto te fue útil, ¡dale una estrella en GitHub!
"Las mejores aplicaciones no solo funcionan bien, sino que también se explican bien."
