こんにちわ。昨年(23年末)に開発者登録し、アプリのリリースを始めたzm softです。PlayStoreのクローズドテストをクリアするための開発者向けのテスター募集アプリもリリースを予定していますので、よければご確認ください。
見落としがちなOSS情報について
皆さんアプリを作るときにOSS情報書いてますか?アプリ開発を行う際、多くの開発者はプライバシーポリシーの記載には気を配りますが、オープンソースソフトウェア(OSS)の情報については見過ごしがちです。しかし、OSSのライセンス情報は、使用しているOSSによっては、その表示が法律的に求められることもあります。
特に、プライバシーポリシーに関してはGoogle Playの監査で指摘されることが多いため、ほとんどの開発者がこの部分には注意を払います。一方で、OSSのライセンス情報に関しては、同様の監査で指摘されることが少ないため、遵守していない開発者も少なくありません。実際に私がテスターとしてアプリを利用してもOSS情報がないアプリを多く見かけます。
OSS表示対応の難しさ
私自身は自分のアプリをOSS対応させる際に、アプリ内にテキスト表示用のビューを設け、そこでプライバシーポリシーと共にOSS情報を表示していました。特定のフォルダにOSSごとのテキストファイルを配置することで、自動的にこれらの情報をビュー内に表示できる方式を取りました。実際の実装はこんな感じです。assets/oss
フォルダにテキストを置いておき、それを読み出すだけです。あとは適当なViewで表示するだけで対応は完了です。
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
}
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
}
しかし、開発が進むにつれてこの方法のメンテナンスが困難になってきました。OSSの追加が後回しにしてしまいがちで、複数のアプリを開発しているとOSS情報の更新を忘れてしまうこともあります。結局そのままメンテしきれなくなってきてしまいました。
OSS対応の救世主
面倒ごとは、誰かに任せたい。そこでライブラリを使って表示するようにしました。今のところ問題なさそうで、すごく楽になりました。もっと早くに使っておけばよかった、というのが正直な感想です。私が利用してみたのは、AboutLibrariesというライブラリです。
使い方は、非常に簡単です。実装部分はほぼ以下の部分だけです。
val fragment = LibsBuilder()
.supportFragment()
val transaction = activity.supportFragmentManager.beginTransaction()
transaction.add(R.id.libsFragment, fragment)
transaction.commit()
Fragmentで完結してくれるので、適当な場所を設けてそれを表示してやるだけでOSS対応がほぼ完成します。
手軽に対応の割に見た目のよいデザイン
実際に表示した時の画面イメージはこんな感じです。

さっと作った割にすごくそれっぽい見た目になりました。内容も問題ありませんでした(勿論、万能ではないはずなので注意は必要ですが)。すごく良いです。
実際の使い方をもう少し詳しく
勿論、実際にはもう少しやらなければいけないことがあるので記載しておきます。とは言ってもライブラリの取り込みぐらいです。build.gradleの修正をします。pluginとdependenciesにaboutlibrariesの指定を追加します。バージョンは適宜指定してください。
plugins {
id ("com.mikepenz.aboutlibraries.plugin")
}
dependencies {
implementation ("com.mikepenz:aboutlibraries:10.10.0")
}
その他のライブラリ
私は利用していませんが、その他にも同様にOSSライセンス表示のためのライブラリは多数あるようでした。有名どころと思われるものを挙げておきます。
- OSS Licenses Plugin
- Googleが提供するGradleプラグインで、アプリのビルドプロセス中に使用されているオープンソースライブラリのライセンス情報を自動的に収集し、それらを表示するためのアクティビティを生成します。これは、特にGoogleのライブラリを多用している場合に有効。
- LicenseAdapter
- オープンソースのライブラリのライセンス情報をリスト表示するためのシンプルなAdapterです。このライブラリを使えば、カスタムUIにライセンス情報を統合することができる。
- LicensesDialog
- アプリ内でオープンソースライブラリのライセンス情報を表示するためのダイアログを簡単に作成できるライブラリです。
いずれも評判がよさそうで、利用自体も簡単なようです。用途にあったものを使い、安心してアプリ開発を進めましょう。
Your article helped me a lot, is there any more related content? Thanks!
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Your article helped me a lot, is there any more related content? Thanks!
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Your article helped me a lot, is there any more related content? Thanks!
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article. https://www.binance.com/en/register?ref=JHQQKNKN
Your article helped me a lot, is there any more related content? Thanks!
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Can you be more specific about the content of your enticle? After reading it, I still have some doubts. Hope you can help me.
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
маркетплейс аккаунтов площадка для продажи аккаунтов
услуги по продаже аккаунтов гарантия при продаже аккаунтов
маркетплейс аккаунтов гарантия при продаже аккаунтов
магазин аккаунтов биржа аккаунтов
платформа для покупки аккаунтов маркетплейс аккаунтов
биржа аккаунтов профиль с подписчиками
заработок на аккаунтах магазин аккаунтов социальных сетей
купить аккаунт перепродажа аккаунтов
маркетплейс аккаунтов соцсетей аккаунт для рекламы
перепродажа аккаунтов гарантия при продаже аккаунтов
маркетплейс аккаунтов соцсетей https://marketplace-akkauntov-top.ru/
купить аккаунт с прокачкой https://ploshadka-prodazha-akkauntov.ru/
заработок на аккаунтах продажа аккаунтов соцсетей
маркетплейс аккаунтов соцсетей маркетплейс аккаунтов соцсетей
маркетплейс аккаунтов соцсетей заработок на аккаунтах
Website for Buying Accounts Accounts for Sale
Account Selling Platform https://accountsmarketplacepro.com
Website for Buying Accounts Accounts marketplace
Accounts marketplace Social media account marketplace
Secure Account Purchasing Platform Secure Account Sales
Buy accounts Account Trading
Account Trading Platform Accounts for Sale
Buy Pre-made Account Account Selling Platform
Buy Pre-made Account Buy accounts
Database of Accounts for Sale Account Exchange Service
secure account sales profitable account sales
guaranteed accounts guaranteed accounts
account buying service guaranteed accounts
account trading service account exchange service
sell pre-made account sell pre-made account
account market secure account sales
buy accounts account store
account exchange service verified accounts for sale
gaming account marketplace account purchase
account selling service accounts-marketplace.org
website for selling accounts sell account
sell accounts website for selling accounts
find accounts for sale account exchange service
account trading accounts for sale
accounts for sale buy accounts
account purchase account market
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
ready-made accounts for sale account purchase
gaming account marketplace account exchange service
secure account sales account trading
sell pre-made account guaranteed accounts
account purchase guaranteed accounts
gaming account marketplace account trading service