この記事は、Elixir Advent Calendar 2023 シリーズ9 の8日目です
昨日は、 @RyoWakabayashi さんで 「闘魂Elixir ── Advent of code 2023 Day 1 Part 2 を Livebook で楽しむ」 でした
piacere です、ご覧いただいてありがとございます
2023年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、前回は「③ Elixir本体/Phoenix/LiveView編」でしたが、今回は「④ Web/スマホ開発ライブラリ編」です
今回ご紹介するライブラリは、様々なElixirプロダクション開発の現場でも使われるものばかりですが、先日αリリースした過去/現在/未来のスキルからあなたのBright(輝き)とRight(正しさ)を引き出すプロダクト「Bright」でも、もちろんフル活用されています
なお、定番データ操作/クラウド向け/マイクロサービス向けのライブラリ/FWは、続編コラムで別途紹介します
ここで紹介されているもの以外にも「ウチでこんな新しめライブラリ使っているよ」とかあれば、ぜひコメントでお知らせください
あと、このコラムが、面白かったり、役に立ったら、 をお願いします
プロダクション開発で頻出するライブラリ/FW
PhoenixStorybook
Phoenix用Storybook(UIコンポーネントを一覧/テスト)
ElixirDesktop
ElixirでLiveViewからスマホネイティブアプリ/PCアプリを生成できるフレームワーク
※ @the_haigo さんや @Alicesky2127 さんがElixir Advent Calendarでコラム公開してくれています
Scrivener
ページネータライブラリ
ScrivenerEcto
Ecto用ページネータライブラリ
Swoosh
Phoenixに標準搭載されているメールクライアント
Mogrify
最もメジャーな画像加工ツール「ImageMagick」ラッパー
Image(Vix)
画像加工ライブラリ「Vix/libvips」のラッパー
Evision
Python AI・MLではポピュラーな画像加工ライブラリ「OpenCV」のラッパー
StripityStripe
Stripe(決済サービス)クライアント
Timex
日付/時刻操作ライブラリ
NimbleCsv
CSV操作ライブラリ
Xlsxir
Excel操作ライブラリ
ExPhoneNumber
Google libphonenumber互換の電話番号パーサー/フォーマッター/バリデーター
Money
ISO 4217通貨コード/ISO 24165デジタルトークン識別子に対応し、暗黙の丸めが発生しない通貨処理
Jason
Phoniexにも標準搭載されているピュアElixir JSONパーサ
Absinthe
GraphQLクライアントおよびサーバー
NimbleTotp
2段階認証用ランタイムパスワード生成ライブラリ
Ueberauth
ソーシャルログイン認証ライブラリ
UeberauthGoogle
上記UeberauthのGoogle OAuth2利用
OAuth2
OAuth2クライアント
Joken
JWTライブラリ
LiveViewNative
WebアプリとスマホネイティブアプリのためのUIをLiveViewで提供するフレームワーク
mix test.watch
実装/テストの両ファイルが更新されるたびに都度テスト実施するCIツール
TestIex
iexから任意のテストを実行できる
Patch
Fakeモジュールへの置き換えや、GenServer差し替え、関数へのパッチ当てなどでモック化し、元コードを変えずにassertも注入できる
Mock
テストコードにモックを渡す形でモック化
Mox
Java interface相当のElixir機能である「Behaviour」を使ってDI(Dependency Injection)することでモック化
ExMachina
RailsのFactoryBotと似た感触のテストデータジェネレータ
Faker
テスト用Fakeデータジェネレータ
ExCoveralls
カバレッジツール
Wallaby
LiveView testと似たような複数ブラウザ操作e2eツール
Benchee
性能テストフレームワーク
Scientist
GitHubでも使われている本番環境上でロジックのA/Bテストをするフレームワーク
Quantum
CRONライクなお手軽ジョブスケジューラ
LoggerJson
CloudWatchやCloud Loggingとの連携で有用なJSONロガー
Sentry
Sentry(障害監視ツール)クライアント
Sobelow
Webセキュリティチェックツール
終わりに
Web/スマホ開発に役立つ実践的ライブラリをお届けしました
これらを使えば、どんなものが開発できるかは、ぜひBrightを体験することでご覧ください
次回は、「⑤ AI・ML前編【Nx/Bumblebee】」をお送りします
明日は、 @RyoWakabayashi さんで 「闘魂Elixir ── Advent of code 2023 Day 1 Part 2 を Livebook で楽しむ」 です