こんにちは、教育系エンジニアのひらまつ(@hiramatsuu)です。
書籍「ゼロからわかる Linuxコマンド200本ノック(技術評論社)」の著者。Udemy受講者8万人。
プログラミング教育をメインに活動するエンジニアとして、動画教材の作成・技術書の執筆・学習アプリの開発などを行なっています(詳しくはこちら)。
本記事では、pub.devで、どのパッケージを使用するかを選ぶ際に役立つ、5つの評価指標について解説します。
pub.devにおける、LIKES/PUB POINTS/POPLARITYなどの指標の意味が、いまいちわかっていないという方に、役立つ記事になっているはずです。
pub.devにおける5つの評価指標
パッケージを選ぶ際に使える、主な評価指標としては、次の5つがある。
- LIKES
- POPLARITY
- PUB POINTS
- Verified publisher
- Flutter Favorite
評価指標は継続的にアップデートされており、最新情報は以下の内容と少し異なる可能性もあることに注意(ただし、変化に気付き次第、記事も更新していく予定 m(_ _)m)。
LIKES
パッケージのページの右上にある、いいねボタンが押された回数。
サインインすれば、自分がいいねしたパッケージのリストにアクセスすることができる(My pub.dev > Likes)ので、ブックマークとしても利用できる。そのため、「ブックマークしているユーザー数」という解釈も可能。
POPLARITY
そのパッケージに依存しているアプリの数の多さ。
パッケージに依存しているアプリの数を、過去60日間集計して、依存の多さをパーセンタイルで表示している。依存するアプリの数が、上位1%ならPopularity 100%、最も使われなかったパッケージはPopularity 0%になる。
将来的には、使用回数の絶対数を表示したいよう。より詳しくはこちらのissueを参照。
ただしこのスコアは、実際のダウンロード数に基づいてはいるが、継続的なビルドなどの自動化ツールの影響を補正していることに注意。
PUB POINTS
パッケージの質を表すポイント。
次の5つのカテゴリから構成されている。
Follow Dart file conventions
Dartのファイルの慣例にどれだけ従っているか。
Dartパッケージの構成の慣例について、より詳しくはこちらの記事を参照。
特に重要な観点としては、次のようなものがある。
- pubspec.yamlを提供しているか。すべてのURLが有効で、httpsを使っているか。
- LICENSEファイルを提供しているか。OSI-approved licenseの1つを使用するのが望ましい。
- README.mdファイルを提供しているか。
- CHANGELOG.mdファイルを提供しているか。その中にパッケージそれぞれのバージョンの変更点を記述しているか。pub.dev上で、正確にレンダリングされるように、ガイドラインに必ず従う。
Provide documentation
ドキュメントが用意されているか。
次の2つの観点で計測される。
- 説明用のコード例が用意されているか。詳細は、layout documentationを参照。
- 公開されるAPIのうち、少なくとも20%にdoc commentsが用意されているか。
Platform support
複数のプラットフォームとSDKのうち、どれだけに対応しているか。
次の6つのプラットフォームと、
- Windows
- Linux
- macOS
- Android
- iOS
- Web
次のSDKがある。
- Flutter
- Dart
Pass static analysis
コード含まれる、エラー・警告・コードのスタイルの問題の多さ。点数が高いほど、これらの問題が少ない。
dart analyzeや、flutter analyzeコマンドを実行したときに、問題が見つかるかどうか。
Support up-to-date dependencies
最新のパッケージに依存しているか。
次の3つの観点で計測される。
- 最新のstableのDart SDKで動作するか
- 最新のstableのFlutter SDKで動作するか
- すべての依存パッケージの最新バージョンで動作するか
dart pub outdatedや、flutter pub outdatedコマンドで調べることができる。
Verified Publisher
👇のようなバッジがついている、パッケージの発行元のこと。
例えば、flutter.devなど。
望めば基本的に誰でも、Verified Publisherになれるので、パッケージの評価指標としては、それほど役に立たないかもしれないが、参考程度に。
Flutter Favorite
アプリ作成時に、最初に使用を検討すべきパッケージを公式が認定したもの。
採用されると、👇のようなマークが、ページの右上に表示されるようになる。
次のような指標を元に、認定される。
- パッケージの全体スコア(PUB POINTS)
- 許容的なライセンス(Apache、Artistic、BSD、CC BY、MIT、MS-PL、W3Cなど)
- GitHubのバージョンタグがpub.devの現在のバージョンと一致し、パッケージのソースが正確に確認できること
- 機能が完全であり、「beta」や「under construction」などのラベルが付いていないこと
- Verified Publisherであること
- 概要、ドキュメント、サンプルコード、APIの品質などの一般的な使いやすさ
- CPUとメモリ使用における良好なランタイム動作
- 高品質な依存パッケージ
Flutter Favoriteに採用されているかどうかは、良質なパッケージを選ぶための、とても重要な観点だが、あなたのプロジェクトにとって、最適なパッケージであることを、保証するようなものではない。
あなたにどのパッケージが必要かは、自分で考える必要がある。
その他の情報
Flutter開発についての、他の記事はこちらを参照。