Bonjour ! Je suis zm soft, un développeur inscrit fin 2023 qui a commencé à publier des applications. Je prévois également de lancer une application pour développeurs pour aider à remplir l'exigence de test fermé de Google Play — n'hésitez pas à la consulter.
Les informations OSS que les développeurs négligent souvent
Incluez-vous des informations OSS dans vos applications ? Lors du développement d'applications, la plupart des développeurs font attention à leur politique de confidentialité, mais les informations de licence des logiciels open source (OSS) sont souvent négligées. Selon les bibliothèques OSS que vous utilisez, afficher ces informations peut en fait être une exigence légale.
Les politiques de confidentialité ont tendance à être signalées lors des audits Google Play, donc la plupart des développeurs les gardent à jour. Les informations de licence OSS, en revanche, sont rarement signalées — ce qui signifie que beaucoup de développeurs ne sont pas conformes. J'ai personnellement utilisé de nombreuses applications comme testeur et j'ai constaté à quelle fréquence les informations OSS sont simplement absentes.
Pourquoi la conformité OSS est délicate
Quand j'ai d'abord ajouté la conformité OSS à mes propres applications, j'ai créé une vue de texte dédiée dans l'application et affiché les informations OSS à côté de la politique de confidentialité. J'ai placé un fichier texte pour chaque bibliothèque OSS dans un dossier spécifique et l'ai configuré pour charger et afficher automatiquement ces fichiers. Voici à quoi ressemblait l'implémentation — il suffit de lire les fichiers du dossier _assets/oss_ et de les afficher dans une vue :
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
}
Au fur et à mesure du développement, la maintenance de ceci est devenue une vraie corvée. Il était facile de remettre à plus tard l'ajout de nouvelles entrées OSS, et lors du travail sur plusieurs applications, j'oubliais parfois de mettre à jour les informations OSS complètement.
La solution facile
Quand quelque chose est fastidieux, déléguez-le. Je suis passé à l'utilisation d'une bibliothèque pour gérer l'affichage, et ça fonctionne très bien depuis. Honnêtement, j'aurais voulu le faire plus tôt. La bibliothèque que j'ai utilisée est AboutLibraries.
Elle est incroyablement simple à utiliser. L'implémentation est essentiellement juste ceci :
val fragment = LibsBuilder()
.supportFragment()
val transaction = activity.supportFragmentManager.beginTransaction()
transaction.add(R.id.libsFragment, fragment)
transaction.commit()
Puisque c'est basé sur Fragment, vous trouvez juste un endroit pour l'insérer et l'afficher — la conformité OSS est pratiquement terminée.
Résultat très soigné pour si peu de travail
Voici à quoi ressemble l'écran en pratique :
Étant donné la rapidité avec laquelle c'est mis en place, le résultat est vraiment soigné. Le contenu est exact aussi. Fortement recommandé.
Un peu plus de détails sur la configuration
Il y a un peu plus à faire en pratique — principalement ajouter la bibliothèque à vos fichiers de build. Mettez à jour build.gradle pour ajouter aboutlibraries à la fois aux plugins et aux dépendances. Ajustez le numéro de version selon les besoins.
plugins {
id ("com.mikepenz.aboutlibraries.plugin")
}
dependencies {
implementation ("com.mikepenz:aboutlibraries:10.10.0")
}
Autres bibliothèques
Je ne les ai pas utilisées personnellement, mais il existe plusieurs autres bibliothèques pour afficher les informations de licence OSS. Voici quelques options bien connues :
- OSS Licenses Plugin — Un plugin Gradle de Google qui collecte automatiquement les informations de licence pour les bibliothèques OSS utilisées dans votre application pendant le processus de build et génère une activité pour les afficher.
- LicenseAdapter — Un adaptateur simple pour afficher les informations de licence OSS dans une vue liste.
- LicensesDialog — Une bibliothèque pour créer facilement un dialogue qui affiche les informations de licence OSS dans votre application.
Toutes semblent bien considérées et faciles à utiliser. Choisissez celle qui correspond à vos besoins et publiez votre application en confiance.