Flutterでライブラリを探す時の手順をまとめてみた(例: カレンダー機能)

3 min read読了の目安(約3500字

はじめに

Flutterでこんな感じで体重をカレンダー表示できる機能を実装したいなと思い、
ライブラリを探した時に考えたこと、実際にやったことをまとめてみました。

今回の例ではFlutterのカレンダー機能ですが、他フレームワークや機能であっても同様かと思います。

いつも同じような手順で探していて無駄な部分があるなと思ったので、今後の改善のために記録を残しておきます。

自作するか、ライブラリを使うか

そもそも最初に自作するかどうかも検討します。

今回のケースだとスワイプの処理、土日の判定・曜日の表示など理解が不十分な箇所が多かったので、自作すると時間が多くかかりそうだと判断し、ライブラリを使うことにしました。

ライブラリでやりたいことを書き出す

まず事前に細かい仕様も全て書き出した所、確認したいのは以下のようになりました。

・ 曜日部分のスタイルを変えられるか
・ 年月のテキストを変えられるか
・ セルに日付と体重を表示できるか
・ スワイプと矢印で左右に移動できるか
・ 土日の色を変えられるか

これらに全て対応できそうなライブラリを探していきます。

Google検索で探す (日本語)

まず日本語でGoogle検索して探すことにします。

「Flutter カレンダー 作り方」で検索したところ、

こちらの記事で紹介されていたflutter_calendar_carouselが候補として出てきました。

https://zenn.dev/zukkey/articles/90a71c03d2cde42c8a8a

Google検索で探す (英語)

次に英語でGoogle検索してみます。

「flutter calendar library」で検索したところ、

table_calendar というライブラリが出てきました。
スター数も908と中々良さそうなので候補に入れておきます。

Githubで探す

次はGithubで直接「flutter calendar」と入力して探してみます。

Most starsで並べ替えると、以下のようになりました。

上位5個のライブラリは次の通りです。ここでも「table_calendar」と「flutter_calendar_carousel」が上位に出てきていますね。

aleksanderwozniak/table_calendar
dooboolab/flutter_calendar_carousel
fluttercandies/flutter_custom_calendar
apptreesoftware/flutter_calendar
benznest/flutter_rounded_date_picker

パッケージリポジトリで探す

次にパッケージリポジトリで探してみることにします。

Flutterの場合はpub.devですね。

ここでは「calendar」と検索してソートは関連順の「SEARCH RELEVANCE」にしました。

数ページ、パッケージの紹介ページをみていきながらイメージと合いそうなライブラリを探していきます。

色々と確認しましたが、Googleカレンダーのようなタイムラインを表示するタイプが多く、
セル上に任意の情報を出せそうなライブラリは以下くらいでした。

table_calendar
cell_calendar

awesome-xxxxで探す

Githubには各言語やフレームワークの素晴らしいライブラリをまとめてくれたawesome-xxxx系のリポジトリがよくあります。

Flutterも同様に以下のリポジトリが見つかったので、こちらでも探してみることにします。

https://github.com/Solido/awesome-flutter

ここでは以下の3つのリポジトリが紹介されていました。
また「flutter_calendar_carousel」と「table_calendar」が出てきましたね。

pinkfish/flutter_calendar
dooboolab/flutter_calendar_carousel
aleksanderwozniak/table_calendar

pinkfish/flutter_calendarはREADMEを見たところ、イメージが異なるライブラリだったので除外しました。

候補を整理する

ここまでの調査でよく紹介されていたり、イメージと合いそうなライブラリは以下の3つまで絞られました。

dooboolab/flutter_calendar_carousel
santa112358/cell_calendar
aleksanderwozniak/table_calendar

やりたいことができるかを検証する

冒頭で書き出したやりたいことを全て実現できるか検証したところ、
上記3つの中で「table_calendar」が一番良かったです。

ただカスタマイズにはかなり苦労したので、また別途記事にまとめたいと思います。

まとめ

結論としては「Google検索より、Github検索が確実」でした。

最終候補の中の2つが既にawesome-flutterで紹介されていたので、やりたいことが書き出せたら「awesome-xxxx」のリポジトリから探し始めるのが効率は良さそうです。

後はGithubのスター数が多いリポジトリも、やはり信頼できますね。

今後ライブラリを探すときは、

・ awesome-xxxxに取り上げられている
・ Githubのスター数上位のリポジトリ

の中からイメージが合いそうなものを3個ほどピックアップして、
やりたいことができるかの検証にいきなり入るようにしていこうと思います。