Buenas Prácticas de Solana Mobile
25 prácticas para una experiencia de usuario de firma móvil fiable.
-
Pruebas en dispositivos físicos: Las intenciones MWA fallan de manera diferente en emuladores (Mobile Wallet Adapter).
-
Cliente de desarrollo de Expo para MWA: Expo Go es insuficiente para módulos de billetera nativos.
-
Identidad de autorización completa: Se requieren nombre, URI e icono para la confianza de la billetera.
-
El clúster coincide con RPC: Billetera devnet solo con RPC devnet.
-
Usar mensajes de @solana/kit 7.0.0: Misma canalización que la web; evitar el nuevo web3.js.
-
Minimizar el alcance de transact: Los callbacks largos agotan el tiempo de espera de la interfaz de usuario de la billetera.
-
Manejar la cancelación de autorización: Capturar errores; ofrecer reintentar (Deep Links & Manejo de Sesiones).
-
Almacenamiento seguro de tokens de autenticación:
expo-secure-store, noAsyncStoragesimple. -
Desautorizar al cerrar sesión: Borrar el token localmente y en la billetera cuando sea compatible.
-
Filtros de intención validados: La billetera debe regresar a tu esquema.
-
Clientes Codama compartidos en Monorepo: Una única fuente IDL para web + móvil.
-
Tarifas de prioridad en mainnet móvil: La congestión afecta a los usuarios móviles por igual.
-
Alertas nativas de UX de transacciones: Spinner + enlace al explorador al confirmar.
-
No incluir claves secretas: MWA solo para claves de usuario.
-
Liberar claves de firma en secretos de EAS: Nunca confirmar el keystore (The dApp Store).
-
Política de privacidad antes de la presentación en la dApp Store: Revelar RPC y analíticas.
-
Probar la ruta Seed Vault de Seeker: Historia de firma respaldada por hardware para la verdad del marketing.
-
Disciplina de versionCode de Android: Cada actualización de la tienda incrementa el código.
-
Errores de RPC sin conexión: Las redes móviles fluctúan - UI de reintento con backoff.
-
Arranque en frío de deep link: La aplicación se reabre desde la billetera después de cerrarse.
-
Reducir el tamaño del paquete: Tree-shake de clientes de programas para el tiempo de inicio.
-
Fallos biométricos: Educación del usuario cuando la billetera rechaza.
-
Compilaciones separadas de devnet: Diferente nombre de paquete o etiqueta para QA interno.
-
Registrar la versión del adaptador de billetera: Matriz de soporte por versión.
-
Runbook de incidentes: Deshabilitar funciones con muchas transacciones si se descubre un error en la billetera.
Preguntas Frecuentes
¿Estado de iOS?
Consulta la documentación de Solana Mobile; prioriza las pruebas de MWA de Android hoy.
¿La misma aplicación que Next.js?
Comparte paquetes de kit + Codama; capa de UI separada.
¿Seed Vault en todos los teléfonos?
Característica de hardware de Seeker; no reclamar en Android genérico.
Relacionados
- Conceptos Básicos de Solana Mobile - introducción
- Creación de una dApp Móvil - Expo
- Buenas Prácticas de Integración de Billeteras - UX compartida
Versiones de Stack: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.