Hola. Soy zm soft, que se registró como desarrollador el año pasado (finales de 2023) y empezó a lanzar aplicaciones. También planeamos lanzar una aplicación de reclutamiento de testers para desarrolladores para superar el test cerrado de Play Store, así que compruébalo si te interesa.
Información OSS que suele pasarse por alto
¿Incluís información OSS al crear vuestras aplicaciones? Al desarrollar apps, muchos desarrolladores prestan atención a la política de privacidad, pero suelen ignorar la información sobre el software de código abierto (OSS). Sin embargo, dependiendo del OSS utilizado, puede ser legalmente obligatorio mostrar su información de licencia.
En particular, dado que la política de privacidad suele ser señalada en las revisiones de Google Play, la mayoría de los desarrolladores prestan atención a este aspecto. En cambio, la información de licencia OSS rara vez es señalada en revisiones similares, por lo que no pocos desarrolladores no la cumplen. De hecho, yo mismo he visto muchas aplicaciones sin información OSS al utilizarlas como tester.
La dificultad de implementar la visualización de OSS
Cuando implementé el soporte OSS en mis propias aplicaciones, creé una vista para mostrar texto dentro de la app y mostré la información OSS junto con la política de privacidad. Adopté un método que colocaba archivos de texto para cada OSS en una carpeta específica, lo que permitía mostrarlos automáticamente en la vista. La implementación real era así: coloca los textos en la carpeta _assets/oss_, léelos, y luego muéstralos en cualquier View adecuado para completar la implementación.
fun readLicenseTexts(): Map<String,String>{
var map : MutableMap <String,String> = mutableMapOf()
val fileList = assetManager.list("oss")
if (fileList != null) {
for (file in fileList) {
map.put(file.replace(".txt",""), readTextAssets("oss/$file"))
}
}
return map
}
Sin embargo, a medida que avanzaba el desarrollo, el mantenimiento de este método se volvió cada vez más difícil. Añadir OSS tendía a posponerse, y al desarrollar múltiples aplicaciones, se podía olvidar actualizar la información OSS.
El salvador del soporte OSS
Quiero delegar las tareas tediosas en alguien más. Así que decidí usar una librería para mostrarlo. Por ahora parece que no hay problemas y las cosas se han simplificado mucho. Honestamente, ojalá lo hubiera usado antes. La librería que probé es AboutLibraries.
El uso es muy sencillo. La parte de implementación se reduce prácticamente a lo siguiente:
val fragment = LibsBuilder()
.supportFragment()
val transaction = activity.supportFragmentManager.beginTransaction()
transaction.add(R.id.libsFragment, fragment)
transaction.commit()
Como se completa en un Fragment, basta con encontrar un lugar adecuado y mostrarlo para que el soporte OSS esté casi listo.
Un diseño atractivo a pesar de la facilidad de implementación
Así es como se ve la pantalla cuando se muestra realmente.

Para algo creado rápidamente, quedó con un aspecto muy profesional. El contenido tampoco tuvo problemas. Es fantástico.
Más detalles sobre el uso real
Por supuesto, en la práctica hay algunas cosas más que hacer, así que las describiré. Pero no es más que importar la librería. Modifica build.gradle añadiendo las especificaciones de aboutlibraries en plugins y dependencies. Especifica la versión según corresponda.
plugins {
id ("com.mikepenz.aboutlibraries.plugin")
}
dependencies {
implementation ("com.mikepenz:aboutlibraries:10.10.0")
}
Otras librerías
Yo no las he utilizado, pero parece que hay muchas otras librerías para mostrar licencias OSS. Aquí menciono algunas de las más conocidas:
- OSS Licenses Plugin - Plugin de Gradle proporcionado por Google que recopila automáticamente la información de licencia de las librerías de código abierto utilizadas durante el proceso de compilación de la app y genera una actividad para mostrarlas.
- LicenseAdapter - Un Adapter simple para mostrar en lista la información de licencia de librerías de código abierto.
- LicensesDialog - Una librería que permite crear fácilmente un diálogo para mostrar información de licencias de librerías de código abierto dentro de la app.
Todas parecen tener buena reputación y son fáciles de usar. Usa la que se adapte a tus necesidades y avanza con confianza en el desarrollo de tu aplicación.