概要
ただ目についたライブラリを少しまとめてあるだけの内容でしたが、初心者向けにライブラリの探し方にしてみました
Elm Package
Elmで開発を始めるときelm-makeで基本的なパッケージ(coreとか)はinstallされます。
他のライブラリはelm-package install author-name/package-name
でinstallできます
ライブラリを探すときはElm Packageで探しましょう。検索できます
elm-langなどのライブラリはPopular Packagesとして右に出てます
右上にリンクがあるFancy Searchでは型で検索できます
例えば"Color -> String"と検索するとeskimoblood/elm-color-extraのライブラリの中のcolorToCssXX系の関数が出てきます
すごい
なにかあるかなーと探していると面白いです。
以下では使ってたり気になったりしたライブラリを適当にすこしまとめました。
etaque/elm-response
使ったことある
type alias Response model action = ( model, Cmd action )
initやupdateの値をaliasして、便利に使えるも関数を提供している
model ! [] == model |> withNone
|>で繋げてwithTask, withCmd, withNoneするだけ。
eeue56/elm-flat-matrix
常にマス目を作りたいのでこれを使っている。
使いにくいとかはないけど、これじゃなきゃダメ感はないので自分用に作ってみるのもありかもしれない。
type alias Matrix a =
{ size : (Int, Int)
, data : Array a
}
sizeを持った1次元の配列で2次元を作っている。
0.18への対応がすごく早かった気がする
elm-lang/navigation
elm-langだし、わざわざ紹介するまでもないのだけれど。
program
: (Location -> msg)
-> { init : Location -> (model, Cmd msg), update : msg -> model -> (model, Cmd msg), view : model -> Html msg, subscriptions : model -> Sub msg }
-> Program Never model msg
locationが変化したらmsgを投げれるようになったprogram
わかりやすいなーと思った。
eskimoblood/elm-color-extra
色をCSS用に変換するためだけにいつも使っている
自分で変換用の関数作れ感は否めない
elm-community/random-extra
乱数生成はとても大事。choicesで自分で定義したユニオン型の中から1つ選ぶとか、combineでGeneratorのListをListのGeneratorにするとか。
Random.ColorやRandom.Dateもあるので自作する前に探そう。
randomに限らずelm-communityのpackageにはxx-extraがいっぱいあるのでcoreで機能足りないときはまず探すようにしています
Fresheyeball/elm-nearly-eq
ニアリーイコール。数値計算するときに
この記事のテーマを書くことに決めたきっかけになったライブラリです。アドベントカレンダーどうしようって考えてたとき、見てちょっとまとめてみようかなって。
シンプルで特定用途にでもいいから使えるライブラリを作って出したい
まとめ
Elmのライブラリはいっぱいあります
こないだ0.18にupgradeしたところですけど対応がすごく早いなって思いました。
package周りも使いやすい(他のはぼ使ったことないですが)のでElmいいよElm
よいElmライフを~