[Parte 3.1] De Rust a Android: creando u ...

[Parte 3.1] De Rust a Android: creando una librería en Kotlin para integrar safe_password

Aug 28, 2025

Prerrequisitos

  • Android Studio instalado

  • Cuenta en GitHub

  • Git instalado y configurado

  • Token de acceso personal de GitHub

  • Repositorio Github

Paso 1: Crear el proyecto de librería en Android Studio

1.1. Crear nuevo proyecto

  • Abre Android Studio

  • Selecciona "Empty Activity"

  • Configura el nombre del proyecto y package name

1.2. Crear módulo de librería

  • File → New → New Module

  • Selecciona "Android Library"

  • Define el nombre del módulo (ej: SafePasswordLib)

  • Configura el package name

  • Haz clic en Finish

Paso 2: Configurar la librería

2.1. Actualizar build.gradle.kts del módulo de librería

plugins {
    alias(libs.plugins.android.library)
    alias(libs.plugins.kotlin.android)
    id("maven-publish") // Plugin necesario para publicar
}
dependencies {
	//agregamos dependencia necesaria para la lib rust
	implementation("net.java.dev.jna:jna:5.17.0@aar")
}

afterEvaluate {
    publishing {
        publications {
            register<MavenPublication>("release") {
                groupId = "upinn.tech"
                artifactId = "safepasswordlib"
                version = "1.0.0"

                from(components["release"])

                pom {
                    name.set("Safe Password Rust Lib")
                    description.set("# SafePasswordApp \uD83D\uDD10\n" +
                            "\n" +
                            "Lib **Android** que utiliza la librería **Rust `safe_password`** creada en la **Parte 1**.  \n" +
                            "\n" +
                            "Permite:\n" +
                            "- Generar contraseñas seguras.  \n" +
                            "- Verificar la fuerza de las contraseñas (Weak, Moderate, Strong).  ")
                    url.set("URL_REPO")
                    licenses {
                        license {
                            name.set("Apache-2.0 license")
                            url.set("URL_REPO/blob/main/LICENSE")
                            distribution.set("repo")
                        }
                    }
                    developers {
                        developer {
                            id.set("wuilmerj24")
                            name.set("Wuilmer Medrano")
                        }
                    }
                    scm {
                        connection.set("scm:git:github.com/URL_REPO")
                        developerConnection.set("scm:git:ssh://URL_REPO")
                        url.set("URL_REPO/tree/main")
                    }
                }
            }
        }

        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://maven.pkg.github.com/USER/REPO")
                credentials {
                    username = project.findProperty("gpr.user") as String? ?: System.getenv("GITHUB_USERNAME")
                    password = project.findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN")
                }
            }
        }
    }
}

Paso 3: Configurar el token de acceso de GitHub en Android Studio

3.1. Configurar variables de entorno

En gradle.properties de tu proyecto

gpr.user=tu-usuario-github
gpr.token=tu-token-de-acceso

Paso 4: Crear repo en GitHub

Paso 5: Agrega los archivos de la lib rust a la lib android (Post 3)

Paso 6: Publicar la librería

6.1. Ejecutar tarea de publicación

En la carpeta raiz del proyecto, abre la terminal y ejecuta:

./gradlew publishReleasePublicationToGitHubPackagesRepository

Paso 7: Usar la librería en otro proyecto(1.1. Crear nuevo proyecto)

7.1. Configurar el repositorio en el proyecto consumidor

En settings.gradle.kts del proyecto:

maven {
	url = uri("https://maven.pkg.github.com/USER_GITHUB/REPO_NAME")
	credentials {
		username = System.getenv("GITHUB_ACTOR") ?: "USER_GITHUB"
		password = System.getenv("GITHUB_TOKEN") ?: "TOKEN_GITHUB"
	}
}

7.2. Agrega la dependencia

En build.gradle.kts del módulo:

dependencies {
	implementation("com.example:mylibrary:1.0.0")
}

7.3. Usar los métodos.

//Métodos definido en mi lib rust y bindings kotlin

generatePassword(ULong,Boolean,Boolean,Boolean):String

checkStrength( password: String): PasswordStrength

//Enum PasswordStrength

enum class PasswordStrength {
	WEAK,
	MODERATE,
	STRONG,
	;companion object
}

En esta parte dimos un gran paso: convertimos nuestra librería Rust en una librería Android lista para usar, la publicamos en GitHub Packages y la instalamos en un proyecto nuevo.

Ahora ya no solo tienes tu código funcionando, sino que también puedes compartirlo, versionarlo y reutilizarlo como cualquier librería profesional. A partir de aquí, el camino queda abierto para seguir mejorando y creando nuevas funcionalidades que conecten Rust con Android de forma elegante.

Si este contenido te ha sido útil, considera apoyar este proyecto en buymeacoffee: tu apoyo me permite seguir creando estas guías paso a paso y compartir más recursos con la comunidad.

Ti piace questo post?

Offri un caffè a wuilmerj24

Altro da wuilmerj24