search
LoginSignup
8

More than 5 years have passed since last update.

posted at

updated at

Organization

Elmのライブラリの探し方

概要

ただ目についたライブラリを少しまとめてあるだけの内容でしたが、初心者向けにライブラリの探し方にしてみました

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ライフを~

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8