2023年末のElixir④Web／スマホ開発ライブラリ編（最新Elixirのキャッチアップと、アドカレのネタ探しに読んでください）

この記事は、[Elixir Advent Calendar 2023 シリーズ9](https://qiita.com/advent-calendar/2023/elixir) の8日目です

昨日は、 @RyoWakabayashi さんで [「闘魂Elixir ── Advent of code 2023 Day 1 Part 2 を Livebook で楽しむ」](https://qiita.com/RyoWakabayashi/items/3061e0b86ccf659c32fd) でした

---

[piacere](https://twitter.com/piacere_ex) です、ご覧いただいてありがとございます :bow:

2023年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、[前回は「③ Elixir本体／Phoenix／LiveView編」](https://qiita.com/piacerex/items/8cd483159c93d0f05bd7)でしたが、今回は「④ Web／スマホ開発ライブラリ編」です

今回ご紹介するライブラリは、様々なElixirプロダクション開発の現場でも使われるものばかりですが、先日αリリースした過去／現在／未来のスキルからあなたのBright（輝き）とRight（正しさ）を引き出すプロダクト「Bright」でも、もちろんフル活用されています

https://bright-fun.org
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/f6d76f4e-08dd-f832-239a-20ae2f170f2a.png)](https://bright-fun.org)

:::note warn
[①2023年の新たなライブラリ／FW編](https://qiita.com/piacerex/items/774dd91c67184bec6df1)
[②2023年に更新されたライブラリ／FW編](https://qiita.com/piacerex/items/0c6ffb235e1146c38302)
[③Elixir本体／Phoenix／LiveView編](https://qiita.com/piacerex/items/8cd483159c93d0f05bd7)
[④Web／スマホ開発ライブラリ編](https://qiita.com/piacerex/items/40ec656513be75a996c0)
[⑤AI・LLM前編【Nx／Bumblebee】](https://qiita.com/piacerex/items/f6a73a8252a3f6093b1a)
[⑥AI・LLM後編【Scholar／Explorer／Evison／EXGBoost】](https://qiita.com/piacerex/items/fd19820bc0befe52b156)
[⑦Livebook＋プラグイン編](https://qiita.com/piacerex/items/bcdcb7bc6c998335a406)
[⑧クラウドライブラリ編](https://qiita.com/piacerex/items/0ce1f05990a502a26ed7)
[⑨マイクロサービスライブラリ編](https://qiita.com/piacerex/items/7e4b15e4dd9a94e58b3b)
[⑩データ操作ライブラリ編](https://qiita.com/piacerex/items/2e19fd1df6ef2d7cf150)
[⑪2023年末までのElixirができることを振り返る](https://qiita.com/piacerex/items/4ef28623d898450c0dcf)
:::

なお、定番データ操作／クラウド向け／マイクロサービス向けのライブラリ／FWは、続編コラムで別途紹介します

ここで紹介されているもの以外にも「ウチでこんな新しめライブラリ使っているよ」とかあれば、ぜひコメントでお知らせください :bow:

あと、このコラムが、面白かったり、役に立ったら、![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/907a8695-4d83-1b5c-8052-d0ce52de5f66.png) をお願いします :bow:

# プロダクション開発で頻出するライブラリ／FW

## PhoenixStorybook

Phoenix用Storybook（UIコンポーネントを一覧／テスト）

https://github.com/phenixdigital/phoenix_storybook

![image.png](https://github.com/phenixdigital/phoenix_storybook/raw/main/screenshots/screenshot-01.jpg)

## ElixirDesktop

ElixirでLiveViewからスマホネイティブアプリ／PCアプリを生成できるフレームワーク

https://github.com/elixir-desktop/desktop

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/dc742773-feb1-1ff8-8ef7-530d5f156d19.png)

※ @the_haigo さんや @Alicesky2127 さんがElixir Advent Calendarでコラム公開してくれています

https://qiita.com/the_haigo/items/783e2022017d4be121f7

https://qiita.com/the_haigo/items/cb0e1ae8c65c631c3263

https://qiita.com/the_haigo/items/7052b7a230c6c65b94b4

https://qiita.com/Alicesky2127/items/ad463d50cfe81b2f9400

https://qiita.com/the_haigo/items/f89ff221f49f2ce4dfb4

https://qiita.com/the_haigo/items/7d807924798888c4c191

https://qiita.com/the_haigo/items/504d7accdebc4c9df4f8

## Scrivener

ページネータライブラリ

https://github.com/drewolson/scrivener

### ScrivenerEcto

Ecto用ページネータライブラリ

https://github.com/drewolson/scrivener

## Swoosh

Phoenixに標準搭載されているメールクライアント

https://github.com/swoosh/swoosh

## Mogrify

最もメジャーな画像加工ツール「ImageMagick」ラッパー

https://github.com/elixir-mogrify/mogrify

## Image（Vix）

画像加工ライブラリ「Vix／libvips」のラッパー

https://github.com/elixir-image/image

## Evision

Python AI・MLではポピュラーな画像加工ライブラリ「OpenCV」のラッパー

https://github.com/cocoa-xu/evision

## StripityStripe

Stripe（決済サービス）クライアント

https://github.com/beam-community/stripity-stripe

## Timex

日付／時刻操作ライブラリ

https://github.com/bitwalker/timex

## NimbleCsv

CSV操作ライブラリ

https://github.com/dashbitco/nimble_csv

## Xlsxir

Excel操作ライブラリ

https://github.com/jsonkenl/xlsxir

## ExPhoneNumber

 Google libphonenumber互換の電話番号パーサー／フォーマッター／バリデーター

https://github.com/ex-phone-number/ex_phone_number

## Money

ISO 4217通貨コード／ISO 24165デジタルトークン識別子に対応し、暗黙の丸めが発生しない通貨処理

https://github.com/kipcole9/money

## Jason

Phoniexにも標準搭載されているピュアElixir JSONパーサ

https://github.com/michalmuskala/jason

## Absinthe

GraphQLクライアントおよびサーバー

https://github.com/absinthe-graphql/absinthe

## NimbleTotp

2段階認証用ランタイムパスワード生成ライブラリ

https://github.com/dashbitco/nimble_totp

## Überauth

ソーシャルログイン認証ライブラリ

https://github.com/ueberauth/ueberauth

### Überauth Google

上記UeberauthのGoogle OAuth2利用

https://github.com/ueberauth/ueberauth_google

## OAuth2

OAuth2クライアント

https://github.com/ueberauth/oauth2

## Joken

JWTライブラリ

https://github.com/joken-elixir/joken

## LiveViewNative

WebアプリとスマホネイティブアプリのためのUIをLiveViewで提供するフレームワーク

https://github.com/liveview-native/live_view_native

## mix test.watch

実装／テストの両ファイルが更新されるたびに都度テスト実施するCIツール

https://github.com/lpil/mix-test.watch

## TestIex

iexから任意のテストを実行できる

https://github.com/maxohq/maxo_test_iex

## Patch

Fakeモジュールへの置き換えや、GenServer差し替え、関数へのパッチ当てなどでモック化し、元コードを変えずにassertも注入できる

https://github.com/ihumanable/patch

## Mock

テストコードにモックを渡す形でモック化

https://github.com/jjh42/mock

## Mox

Java interface相当のElixir機能である「Behaviour」を使ってDI（Dependency Injection）することでモック化

https://github.com/dashbitco/mox

## ExMachina

RailsのFactoryBotと似た感触のテストデータジェネレータ

https://github.com/beam-community/ex_machina

## Faker

テスト用Fakeデータジェネレータ

https://github.com/elixirs/faker

## ExCoveralls

カバレッジツール

https://github.com/parroty/excoveralls

## Wallaby

LiveView testと似たような複数ブラウザ操作e2eツール

https://github.com/elixir-wallaby/wallaby

## Benchee

性能テストフレームワーク

https://github.com/bencheeorg/benchee

## Scientist

GitHubでも使われている本番環境上でロジックのA／Bテストをするフレームワーク

https://github.com/cwbriones/scientist

## Quantum

CRONライクなお手軽ジョブスケジューラ

https://github.com/quantum-elixir/quantum-core

## LoggerJson

CloudWatchやCloud Loggingとの連携で有用なJSONロガー

https://github.com/Nebo15/logger_json

## Sentry

Sentry（障害監視ツール）クライアント

https://github.com/getsentry/sentry-elixir

## Sobelow

Webセキュリティチェックツール

https://github.com/nccgroup/sobelow

# 終わりに

Web／スマホ開発に役立つ実践的ライブラリをお届けしました

これらを使えば、どんなものが開発できるかは、ぜひBrightを体験することでご覧ください :information_desk_person_tone1:

[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/55311754-38bd-adce-c87b-b1b8dc5104d2.png)](https://bright-fun.org)

https://bright-fun.org

次回は、[「⑤ AI・ML前編【Nx／Bumblebee】」](https://qiita.com/piacerex/items/f6a73a8252a3f6093b1a)をお送りします

---

明日は、 @RyoWakabayashi さんで [「闘魂Elixir ── Advent of code 2023 Day 1 Part 2 を Livebook で楽しむ」](https://qiita.com/RyoWakabayashi/items/3061e0b86ccf659c32fd) です

# p.s.このコラムが、面白かったり、役に立ったら…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/907a8695-4d83-1b5c-8052-d0ce52de5f66.png) にて、どうぞ応援よろしくお願いします :bow: