【pub.dev】パッケージ選びに役立つ5つの評価指標について解説【Dart・Flutter】

Flutter

こんにちは、教育系エンジニアのひらまつ(@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つのカテゴリから構成されている。

pub.devより引用

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など。

pub.dev「camera」より引用

望めば基本的に誰でも、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開発についての、他の記事はこちらを参照。

Flutter
「Flutter」の記事一覧です。

参考文献

Scoring | Dart packages
Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter and general Dart programs.
Flutter Favorite program
Guidelines for identifying a plugin or package as a Flutter Favorite.
Verified publishers
Learn what verified publishers are, and they're verified.
タイトルとURLをコピーしました