Se ha creado una aplicación React Native completa dentro del directorio example/ que demuestra todas las funcionalidades del SDK de Yuno.
example/
├── 📱 App.tsx # Aplicación principal con UI completa
├── 📋 package.json # Dependencias y scripts
├── ⚙️ metro.config.js # Configuración de Metro (importa SDK local)
├── 🎨 babel.config.js # Configuración de Babel
├── 📘 tsconfig.json # Configuración de TypeScript
├── 📄 index.js # Entry point de React Native
├── 🎯 app.json # Configuración de la app
│
├── 🤖 android/ # Proyecto Android completo
│ ├── build.gradle # Configuración de Gradle (con repo de Yuno)
│ ├── settings.gradle # Incluye el módulo nativo del SDK
│ ├── gradle.properties # Propiedades de Gradle
│ └── app/
│ ├── build.gradle # Configuración de la app
│ ├── src/main/
│ │ ├── AndroidManifest.xml # Manifest de Android
│ │ ├── java/com/yunosdkexample/
│ │ │ ├── MainApplication.kt # Aplicación principal (inicializa SDK)
│ │ │ └── MainActivity.kt # Activity principal
│ │ └── res/ # Recursos (strings, styles, drawables)
│ └── debug.keystore # Keystore de debug
│
├── 🍎 ios/ # Proyecto iOS completo
│ ├── Podfile # CocoaPods (incluye YunoSDK)
│ ├── YunoSDKExample/
│ │ ├── AppDelegate.h # App Delegate header
│ │ ├── AppDelegate.mm # App Delegate implementation
│ │ ├── main.m # Entry point
│ │ ├── Info.plist # Configuración de iOS
│ │ ├── LaunchScreen.storyboard # Pantalla de splash
│ │ └── Images.xcassets/ # Assets e iconos
│ └── YunoSDKExampleTests/ # Tests de iOS
│
├── 📚 README.md # Documentación completa
├── 🛠️ SETUP.md # Guía de instalación detallada
└── 🔧 scripts/
└── setup.sh # Script automatizado de setup
- ✅ Header con branding de Yuno
- ✅ Dashboard de estado en tiempo real
- ✅ Formularios de configuración intuitivos
- ✅ Botones de acción para cada funcionalidad
- ✅ Indicadores visuales de loading y estado
- ✅ Mensajes de error claros y útiles
- ✅ Diseño responsive para iOS y Android
- Formulario para API Key
- Selector de código de país
- Botón de inicialización del SDK
- Validación de campos
- Iniciar Pago: Flujo completo con UI de Yuno
- Payment Lite: Pago con método guardado
- Seamless Payment: Pago sin UI (background)
- Continuar Pago: Continuar flujo interrumpido
- Guardar nuevos métodos de pago
- Validación de sesiones
- Feedback visual
- Estado del SDK (inicializado/no inicializado)
- Estado del último pago
- Estado de enrollment
- Tokens OTT generados
- Actualización en tiempo real
- Listener de estado de pago (
onPaymentStatus) - Listener de enrollment (
onEnrollmentStatus) - Listener de tokens OTT (
onOneTimeToken) - Alertas visuales para cada evento
- ✅ Gradle configurado con repositorio de Yuno
- ✅ Módulo nativo enlazado correctamente
- ✅ Permisos necesarios configurados
- ✅ ProGuard rules (si es necesario)
- ✅ Multi-architecture support
- ✅ CocoaPods configurado con YunoSDK
- ✅ Info.plist con permisos necesarios
- ✅ Launch screen personalizada
- ✅ App Transport Security configurado
- ✅ Workspace setup correcto
cd example
chmod +x scripts/setup.sh
./scripts/setup.shEste script:
- ✅ Verifica prerrequisitos
- ✅ Instala dependencias
- ✅ Compila el SDK
- ✅ Configura Android
- ✅ Instala pods de iOS (en macOS)
- ✅ Te deja listo para ejecutar
# 1. Instalar dependencias
cd example
npm install
# 2. Compilar el SDK
cd ..
npm run prepack
cd example
# 3. iOS (solo macOS)
cd ios
pod install
cd ..
# 4. Ejecutar
npm run android # o
npm run ios# Asegúrate de tener un emulador corriendo o dispositivo conectado
npm run androidnpm run iosO especificar simulador:
npm run ios -- --simulator="iPhone 14"- Abre la app
- Ingresa tu API Key de Yuno
- Ingresa el código de país (ej: CO, MX, BR)
- Presiona "Inicializar SDK"
- Verás el estado cambiar a "✓ Inicializado"
Ingresa las sesiones que obtienes desde tu backend:
- Customer Session: Para enrollment
- Checkout Session: Para pagos
- 💳 Iniciar Pago: Abre el flujo completo de Yuno
- ⚡ Payment Lite: Pago rápido (necesita checkout session)
- 🎯 Seamless: Pago en background
- 📝 Enrollment: Guardar método de pago (necesita customer session)
Los estados se actualizan en tiempo real en el dashboard:
- Estado del pago actual
- Tokens generados
- Resultados de enrollment
Android:
adb logcat | grep -E "Yuno|ReactNative"iOS:
# En Xcode: Window → Devices and Simulators → ConsoleAndroid:
cd android && ./gradlew clean && cd ..iOS:
cd ios && rm -rf Pods build && pod install && cd ..- README.md: Guía de uso de la app
- SETUP.md: Instrucciones detalladas de instalación
- EXAMPLE_APP_COMPLETE.md: Este archivo
Edita los estilos en App.tsx:
const styles = StyleSheet.create({
primaryButton: {
backgroundColor: '#4E3DD8', // Color principal de Yuno
},
// ... más estilos
});El código está bien estructurado y comentado. Para agregar features:
- Importa el método del SDK
- Crea un handler
- Agrega un botón en la UI
- Actualiza el estado según sea necesario
En la función handleInitialize:
await YunoSdk.initialize({
apiKey: apiKey,
countryCode: countryCode,
yunoConfig: {
lang: YunoLanguage.ES, // Cambiar idioma
cardFlow: CardFlow.MULTI_STEP, // ONE_STEP o MULTI_STEP
saveCardEnabled: true, // Permitir guardar tarjetas
keepLoader: false, // Mantener loader
isDynamicViewEnabled: true, // Vistas dinámicas
},
});-
Obtén credenciales de Yuno:
- API Key desde el dashboard
- Configura tu backend para generar sesiones
-
Ejecuta la app:
- Android:
npm run android - iOS:
npm run ios
- Android:
-
Prueba las funcionalidades:
- Inicializa con tu API Key
- Ingresa sesiones válidas
- Prueba cada flujo de pago
-
Revisa los logs:
- Todos los eventos se loguean
- Útil para debugging
-
Personaliza la UI:
- Adapta los estilos a tu marca
- Agrega funcionalidades específicas
Ahora tienes una aplicación React Native completamente funcional que demuestra todas las capacidades del SDK de Yuno. Esta app puede servir como:
- ✅ Referencia para implementar el SDK
- ✅ Testing de funcionalidades
- ✅ Demo para clientes o equipo
- ✅ Base para tu aplicación de producción
¿Preguntas? Consulta la documentación o abre un issue.
¡Feliz desarrollo! 🚀