Instalar los targets de Rust:
rustup target add aarch64-linux-android # arm64-v8a
rustup target add armv7-linux-androideabi # armeabi-v7a
rustup target add i686-linux-android # x86
rustup target add x86_64-linux-android # x86_64Generar bindings Kotlin
cargo run --bin uniffi-bindgen generate src/lib.udl --language kotlin
Instala cargo NDK
Compila la lib para android
cargo ndk -t armeabi-v7a -t arm64-v8a -t x86 -t x86_64 -o ./android-libs build --releaseDentro de la carpeta raiz-proyecto/android-libs/ copia todas las carpetas de cada plataforma.
Para la integración en Android, crea la carpeta jniLibs en src/main/ y pega las carpetas de las plataformas (paso 5).
Agregamos los bindings (.kt) generados por UniFFI al proyecto de Android (en src/paquete/configurado/, como se menciona en la parte 2) y llamamos a nuestras funciones.
//Métodos expuestos por UniFfi val pwd = generatePassword( 100u, includeUppercase = true, includeNumbers = true, includeSymbols = true ) checkStrength(pwd)
Conclusión
En esta tercera parte logramos dar un paso clave: llevar nuestra librería escrita en Rust a Android Studio utilizando UniFFI.
Ya no solo tenemos nuestro código compilado en Rust, sino que ahora está empaquetado en un .so compatible con las arquitecturas de Android (armeabi-v7a, arm64-v8a, x86 y x86_64), listo para integrarse de manera nativa dentro de cualquier app Android.
Con esto abrimos la puerta a:
Reutilizar lógica crítica de Rust (seguridad, performance, criptografía, etc.) en aplicaciones Android.
Reducir duplicación de código al tener la misma librería disponible en múltiples plataformas.
Aprovechar UniFFI para generar bindings de forma automática, lo que simplifica la integración con Kotlin/Java.
En la siguiente parte de la serie veremos cómo usar la librería dentro de un proyecto iOS, importaremos las funciones expuestas desde Rust y construiremos un pequeño ejemplo funcional en swift.
Si te ha gustado este contenido y quieres apoyar la serie, considera dejar tu feedback o unirte como suscriptor. Así podremos seguir profundizando en Rust + UniFFI + Android/iOS con proyectos prácticos y avanzados.
