Olá. Sou a zm soft, que se registrou como desenvolvedor no ano passado (final de 2023) e começou a lançar aplicativos. Também planejamos lançar um aplicativo de recrutamento de testers para desenvolvedores para superar o teste fechado da Play Store, então confira se estiver interessado.
Sobre as Informações de OSS Frequentemente Esquecidas
Vocês escrevem informações de OSS ao criar aplicativos? Ao desenvolver apps, muitos desenvolvedores prestam atenção na política de privacidade, mas frequentemente ignoram as informações sobre software de código aberto (OSS). Porém, dependendo do OSS utilizado, exibir as informações de licença pode ser legalmente obrigatório.
Em particular, como a política de privacidade é frequentemente apontada nas revisões do Google Play, a maioria dos desenvolvedores presta atenção nesse aspecto. Por outro lado, as informações de licença OSS raramente são apontadas em revisões semelhantes, então não poucos desenvolvedores não as cumprem. Na prática, mesmo quando uso aplicativos como tester, frequentemente encontro aplicativos sem informações de OSS.
A Dificuldade de Implementar a Exibição de OSS
Quando implementei o suporte a OSS nos meus próprios aplicativos, criei uma view para exibir texto dentro do app e exibi as informações de OSS junto com a política de privacidade. Adotei um método que colocava arquivos de texto para cada OSS em uma pasta específica, permitindo que essas informações fossem exibidas automaticamente na view. A implementação real era assim: coloque os textos na pasta _assets/oss_, leia-os, e depois exiba em qualquer View adequada para concluir a implementação.
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
}
No entanto, à medida que o desenvolvimento avançava, manter esse método foi se tornando cada vez mais difícil. Adicionar OSS tendia a ser adiado, e ao desenvolver múltiplos aplicativos, era possível esquecer de atualizar as informações de OSS.
O Salvador do Suporte a OSS
Quero delegar as tarefas tediosas a alguém. Por isso, decidi usar uma biblioteca para exibir as informações. Até agora parece não haver problemas e as coisas ficaram muito mais fáceis. Honestamente, gostaria de ter usado antes. A biblioteca que experimentei é AboutLibraries.
O uso é muito simples. A parte de implementação se resume basicamente ao seguinte:
val fragment = LibsBuilder()
.supportFragment()
val transaction = activity.supportFragmentManager.beginTransaction()
transaction.add(R.id.libsFragment, fragment)
transaction.commit()
Como se completa em um Fragment, basta encontrar um lugar adequado e exibi-lo para que o suporte a OSS esteja quase pronto.
Um Design Atraente Apesar da Facilidade de Implementação
Aqui está como a tela fica quando exibida na prática.

Para algo criado rapidamente, ficou com uma aparência muito profissional. O conteúdo também não teve problemas. É ótimo.
Mais Detalhes sobre o Uso Real
Claro, na prática há mais algumas coisas a fazer, então vou descrevê-las. Mas não é mais do que importar a biblioteca. Modifique o build.gradle adicionando as especificações do aboutlibraries em plugins e dependencies. Especifique a versão conforme necessário.
plugins {
id ("com.mikepenz.aboutlibraries.plugin")
}
dependencies {
implementation ("com.mikepenz:aboutlibraries:10.10.0")
}
Outras Bibliotecas
Eu não as utilizei pessoalmente, mas parece que há muitas outras bibliotecas para exibir licenças OSS. Aqui estão algumas das mais conhecidas:
- OSS Licenses Plugin - Plugin Gradle fornecido pelo Google que coleta automaticamente as informações de licença das bibliotecas de código aberto usadas durante o processo de build do app e gera uma activity para exibi-las.
- LicenseAdapter - Um Adapter simples para exibir em lista as informações de licença de bibliotecas de código aberto.
- LicensesDialog - Uma biblioteca que permite criar facilmente um diálogo para exibir informações de licença de bibliotecas de código aberto dentro do app.
Todas parecem ter boa reputação e são fáceis de usar. Use a que se adapte às suas necessidades e avance com confiança no desenvolvimento do seu aplicativo.