El proyecto cubacadabra adopta una arquitectura de núcleo compartido en Rust para gestionar la lógica de negocio en sus aplicaciones para iOS, Android y la web. Este enfoque busca eliminar la duplicación de código y las inconsistencias que surgen al mantener tres implementaciones nativas separadas para funciones como la gestión de cuentas, la validación de formularios y el manejo de errores de red.
La estrategia consiste en mantener las capas de interfaz de usuario (SwiftUI, Compose, HTML) como "cascarones finos" que interactúan con el núcleo Rust a través de bindings (UniFFI, JNI, WASM). Esto permite que las reglas de negocio, como la validación de nombres de usuario o la gestión de sesiones, se definan en un solo lugar, asegurando una consistencia total entre plataformas. Aunque la integración inicial requiere esfuerzo en la configuración de bindings y serialización, los beneficios a largo plazo incluyen una base de código más mantenible y la capacidad de aplicar cambios globales instantáneamente.
El proyecto utiliza una interfaz C nativa para móviles y wasm-bindgen para el navegador, separando claramente la lógica de la aplicación de la renderización gráfica. Esta separación permite que módulos como la gestión de cuentas funcionen independientemente del motor de juego, optimizando el rendimiento y la seguridad de la memoria mediante las reglas de propiedad de Rust.
