Awesome Elm
Elmを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
- Learning Guides
- Learning Videos
- Articles
- Conference Videos
- News
- Podcasts
- Testing
- Code generators
- Package managers
- Libraries
- Boilerplates
- Frameworks
- Static analysis
- Static site generators
- Showcase generators
- Run Elm
- Compile and bundle
- Other tools
- Editor plugins
- Examples
- Community and Support
- Conferences
- Inspired by Elm
- Beyond the DOM
- More awesome
- Contribution Guidelines
学習ガイド
この素晴らしいものについて学びましょう。
- Official tutorial — 一般情報と詳細ガイド(例を含む)
- Elm in Action — マニング出版から始めるエルム初心者向けの詳細書籍
- Architecture Tutorial - アプリケーションに合わせてスケーラブルに設計できるモジュラーファイルのエルムコードの作成方法
- Exercism Elm Track - エルムの練習問題集
- Learn you an Elm - 詳細な例と説明を含むエルムチュートリアル
- Beginning Elm - エルムプログラミング言語へのやさしい導入
- Elm patterns - エルムにおけるよく使われるパターンのコレクション
- Elm Koans - エルムを学ぶための練習問題
- Learn Elm - 前向きなウェブアプリ開発を可能にする美しいプログラミング言語を発見しよう!
- Learn Elm in Y Minutes - 文法と機能の概要。エルムページ(learnxinyminutes.com)
- Elm Maybe - Dealing with null/Nothing - Maybe型の使い方、コメント付きコード例を含む
- Programming Elm - ザ・プラグマティック・プログラマーズから出版された、基礎から高度な概念までをカバーする詳しい書籍
- Elm cheat sheet - 文法と機能の概要
- Ninety-nine Problems, Solved in Elm - 99ハスケル問題からのエルムへのアダプテーション
- Elm Tutorials on Codementor - エルムでウェブアプリを構築するための2つのチュートリアル
- Elm programming language - エル連言語の概要
- Elm: A Beginners’ Guide to Elm and Data - エルムとデータの初心者向けコース
- Practical Elm for a Busy Developer - エルムアプリ開発における実用的な側面についての、初心者向けの書籍
- Haskell to Elm - ハスケル経験者からエルムに移行する際に異なる点を示す例のコレクション
- A nice app on Elm street - エルムへの導入
- The Elmish Book F#でThe Elm Architectureを最初の原理からWebアプリケーションを構築する方法
- Elm patterns - コーディングパターンのコレクション
- Codings hints - Evanが作成したREADMEファイルのリスト
- Ellies catalog - Elliで用意された小さな例のコレクション
- Elm Cookbook - Elmに関するデジタル書籍
- Awesome Elm PLTD - Elmにおけるプログラミング理論および開発に関する有用なリソース
Outdated Tutorials and books (Elm 0.18 or earlier)
- Elm: Building Reactive Web Apps - Elmを使って反応型Webアプリケーションを構築する方法を学ぶ
- Writing native - Elm用のネイティブJavaScriptモジュールを作成する方法を学ぶ
- Elm: Functional frontend development - 基礎と高度なトピックについての記事シリーズ
- Elm Tutorial - Elmを使ってシングルページWebアプリケーションを開発するチュートリアル
- Elm Seeds - Erik PersonによるElmプログラミング言語を教える短いスクリーンキャスト
- Elm For Beginners - Video Course - 最初のElm Webアプリを構築する
- Single-Page Web Apps in Elm - Elmに関する5つのパートのチュートリアル
- Elm FAQ - Elm CommunityによるElmのFAQ。
- Elm Tutorial by Auth0 - 認証からAPI呼び出しまでElmでアプリを開発するチュートリアル
Learning Videos
- Welcome to Elm - Elmのすべての基礎を学ぶためのビデオプレイリスト
- Elm The Complete Guide - Elm UI、Elm Review、レスポンシブデザイン、テストなどを含むビデオチュートリアル
- Egghead.io: Elm videos - EggheadのElmビデオトレーニング(多くが無料)
- Elm Basics - Elmという一般的なプログラミング言語のすべての構文と基本的な概念を解説するチュートリアル
- Greg Ziegan: Elm live coding videos - YouTube上のライブコーディング動画
記事
基本事項を読みましょう。公式Elmブログを確認してください: elm-lang.org/blog
Why Elm?
- Side-effects of Elm in production - ベルロイの体験報告
- How Elm Made Our Work Better - Elmを使って顧客向けのビジネス必須ウェブアプリを構築したチームの話
- FP with games in Elm - Elmにおけるゲーム開発における命令型から関数型プログラミングへの移行
- Blazing Fast HTML - Elmにおける仮想DOM
- Elm from a Business Perspective - ビジネス視点から見たElmに関するトピックについて
- Move fast and don’t break things. Running a startup on Elm - スウェーデンのスタートアップがElm開発について考えるいくつかの考え
- Elm: A frontend story that a backend dev can love - Elmがバックエンド開発者の脳に他のものとは全く異なるようにフィットする話
Miscellaneous articles
- Learning FP the hard way - Elm言語に関する体験談
- Blog of Brian Hicks - Elmに関する多様なトピックを扱うブログ
- Introduction to The Elm Architecture and How to Build our First Application - Elmのアーキテクチャと簡単なアプリケーションの構築方法を説明する記事
- Functional Programming for Web Frontend by Jan Luxemburk - 前端開発における関数型プログラミングに関する学士論文(Elmに焦点を当てた)
Outdated articles (Not relevant for current Elm architecture)
- Elm for Web Developers - Elmに移行を考えているウェブ開発者向けのノートのコレクション
- Elm & Components - 関数型タイプを使ってTEAのボイラープレートを減らす可能性についてのブログ記事。コンポーネントライブラリや関数型タイプについて興味がある人にとって非常に役立つ.
- Composing Features and Behaviours in the Elm Architecture - Elmアーキテクチャに従ったコードを独立した機能に分割し、機能間の通信方法、そしていくつかの機能をグループ化して大きな機能を構成する方法についての記事.
- Getting Started with Elm - Elm教育チュートリアルのシリーズ.
- Elm & Guarantees - Elmが他の選択肢に比べて優れている点とそうでない点についての現実的な見解.
カンファレンス動画
エルムについての素晴らしい講演を視聴してください
これらは主に会議での講演です。エルムを学ぶための動画については、Learning Videosセクションをご覧ください.
Playlists
- Elm Conf 2019 - 2019年9月
- Elm Europe 2019 - 2019年6月
- Elm in the Spring 2019 - 2019年6月
- Oslo Elm Day 2019 - 2019年2月
- Elm Conf 2018 - elm-conf 2018のすべての講演
- Elm Europe 2018 - Elm Europe 2018のすべての講演を収録したプレイリスト
- Elm Conf 2017 - elm-conf 2017のすべての講演
- Elm Europe 2017 - Elm Europe 2017のすべての講演を収録したプレイリスト
- Oslo Elm Day 2017 - Oslo Elm Day 2017のすべての講演を収録したプレイリスト
- Elm Conf 2016 - elm-conf 2016のすべての講演
Miscellaneous videos
- Dillon Kearns: Types Without Borders | 2018 - elm-conf 2018で、GraphQLなどの外部スキーマを使って端末から端末まで型安全を実現する講演
- Jamison Dance: Rethinking All Practices - Building Applications in Elm | 2016 - React.js Conf 2016で行われた、ElmがJavaScript世界に教えることと、JavaScript開発者が試してみるべき理由についての講演
- Richard Feldman: Introduction to Elm | 2016 - Elmの概要的な、高レベルな紹介をした講演
- Amitai Burstein: Frontend with Guarantees | 2016 - You Gotta Love Frontend 2016での講演
- Jessica Kerr: Adventures in Elm | 2016 - GOTO Chicago 2016で、関数型プログラミングとElmの組み合わせについての講演
- Aaron VonderHaar: Codevember | 2016 + ElmLive - elmのライブ動画例
- Richard Feldman: Making impossible states impossible | 2016 - Elmでデータ構造をモデル化する方法についての講演(無効な状態を表現できないようにする)
- Richard Feldman: Effects as Data | 2015 - Elmが副作用をどう管理するかについての講演
- Richard Feldman: Make the Back-End Team Jealous: Elm in Production | 2015 - Elmを使って生産環境で使うための最初のステップについての講演
- Evan Czaplicki: Let’s be mainstream! User focused design in Elm | 2015 - Elmの父が語った、この言語の哲学についての講演
ニュース
- Official Elm News - 公式Elmブログ
- Elm Weekly - Elmに関する週刊ニュースレター
- Elm Bits - Elmに関する無料週刊ニュースレター。厳選されたニュース、記事、書籍、イベント、ツール、ライブラリを紹介。
- Elm News - すべてのElmに関するニュースを一か所に集約
- Elm Greenwood - エルムパッケージのリリース
- Elm Reddit - Redditでのエルムニュース
ポッドキャスト
エルムについてのポッドキャストを聞いてください
Individual Podcast episodes
- Functional Geekery 33 - リチャード・フェルデマンとテッサ・ケリー
- The Changelog 218 - エヴァン・カプリッキとリチャード・フェルデマンによるエルム
- The Changelog 191 - リチャード・フェルデマンによるエルムと関数型プログラミング
- Software Engineering Daily - リチャード・フェルデマンとスリニヴァス・ラオによるエルム
- The Web Platform Podcast 15 - エルム、クロージュスクリプト、オム、Reactによる関数型プログラミング
- The Web Platform Podcast 76 - エルムプログラミング言語
- The Web Platform Podcast 108 - エルムを再考
- Full Stack Radio 44 - エルムって何?このエピソードではジョエル・クレモンがエルムと関数型プログラミングについて語る
- InfoQ Podcast 2017-04-27 - リチャード・フェルデマンがエルムとReact.jsの比較について語る
テスト
Elmアプリケーションのテストに使えるツールとライブラリ
- Elm test - ユニットとフズテスト
- Elm Program test - エルムプログラムのテスト
- Elm Spec - エルムプログラムの動作を説明
コード生成ツール
- Elm Bridge - ハスケルからエルム型を生成
- Elm CodeGen - エルムコードを生成
- Elm TS Interop - エルムとTypeScript間のエンコーダー/デコーダーの構築
- Elm TypeScript Interop - エルムからTypeScriptの定義を生成(
Elm TS Interopはこの機能の改善版) - elm-gql - GraphQLクエリからGraphQLクライアントコードを生成
- elm-graphql - GraphQLスキーマからGraphQLクライアントコードを生成
- haskell-to-elm - Haskell型からElm型、エンコーダー、デコーダーを生成
- HTML to Elm - HTMLをElm Htmlに変換。アプリケーションをElmに移植する際に便利。
- JSON Schema to Elm - JSONスキーマ仕様からElm型、JSONデコーダー、JSONエンコーダー、およびフズテストを生成
- OpenApi Generator - Elm用のOpenApi型を生成
- PostCSS Elm Tailwind - ElmにTailwindを追加
- Protoc Gen Elm - .protoファイルからProtobufエンコーダー/デコーダーを生成
- Quicktype - JSONからJSONデコーダーおよびエンコーダーを生成
- Travelm Agency - 翻訳ファイルから型安全なElmコードを生成
パッケージマネージャー
Elmライブラリを共有できる場所。
- elm-package - Elmライブラリを共有するためのコマンドラインツール
ライブラリ
以下のサイトに、数百の高品質なパッケージがあります。
- Elm packages - 公式リジストリ
- Elm Catalog - カテゴリで分類されたパッケージを検索
- Elm Search - オペレーター、関数署名など、Elmドキュメントを検索
ボイラープレート
新しいElmプロジェクトの良い出発点です。
- create-elm-app - ビルド設定なしでElmアプリを作成
- elm-boil - Elmのボイラープレートプロジェクトを作成するためのコマンドラインユーティリティ。簡単に実行・ビルド・デプロイできるように設計。
- elm-live - Elm用の柔軟な開発サーバー。リアルタイムリロード機能付き。
- elm-webpack-4-starter - Elm webpack 4のスタートテンプレート
- example-elm-hot-webpack - Elm 0.19とWebpackでのホットモジュールリロードの例
- Elm Batteries - Elm、Parcel、Cypress、Netlify用のプロジェクトテンプレートとジェネレーター
- IHP + Elm - IHP Haskell Framework は、フロントエンドで elm を、バックエンドで haskell を使う場合に便利な Elm のテンプレートを内蔵しています
Outdated Boilerplates
- elm-webpack-starter - Elm アプリケーションを書くためのシンプルな Webpack 設定
- elm-app-boilerplate - Elm アプリケーション用の完全機能のベースプロジェクト:Webpack、HMR、ES6、JS および Elm テスト、Semantic UI、サンプルコードなど
- elmkit - 軽量な Brunch 基盤の Web アプリ設定。Brunch、Hot Module Replacement、Elm、Scss、Elm テストを含みます
- elm-boilerplate - Elm アプリを作成できるシンプルな Makefile
- elm-init - 新しい Elm プロジェクト用のインタラクティブ設定
- elm-new - テンプレートに基づいて初期プロジェクトの構成を生成します
- elm-webpack-starter-kid - 非常に非常に基本的な elm + webpack 4 テンプレート
- generator-elm-mdl - Material Design を利用したシンプルな Elm アプリケーションを生成する Yeoman ジェネレーター
フレームワーク
Elmのフレームワークアプローチを実現するプロジェクト(スケルトン生成、ルート生成など)
- elm-spa - Elm でシングルページアプリを作成するためのフレームワーク
- Elm Land - Elm アプリケーションを構築するためのフレームワーク
- Spades - 現実世界に即した Elm SPA を開始します
静的解析
- Elm Analyse - Elm プログラミング言語用のリーダー
- Elm Review - Elm プログラミング言語用のコードレビューツール
静的サイトジェネレーター
- Elm Pages - HTML を事前にレンダリングし、Elm クライアント側アプリにハイドレートする静的サイトジェネレーター() here is a brief comparison with elmstatic
- Elmstatic - Elm 基盤の静的サイトジェネレーター
- elm-starter - 既存の Elm アプリケーションに接続できる、Elm 基盤の実験的なスタートアップツール
ショーケース生成ツール
- Elm Book - Storybook および HexDocs をベースにした豊かなドキュメントビルダー
- Elm UI Explorer - ビューと状態を紹介します
Elmの実行
- Ellie - Elm ライブエディタ
- Elm Editor - Advanced Elm Live Editor
- run-elm — コマンドラインからElmコードを実行
- elm-instant - エディタからElmコードを試すためのAtomパッケージ。視覚的なREPLとプレビューパネルを提供。
- Glitch - ブラウザ内で高速にフルスタックWebアプリを構築。
- Elm Live - Elm用の柔軟な開発サーバー。リアルタイムリロードが含まれる!
- Elm Watch - モードで高速かつ信頼性の高い動作。
elm make
コンパイルとバンドル
- elm-compiler - 公式Elmコンパイラ。
- elm-webpack-loader - Webpack用Elmローダー。
- Parcel - ParcelでElmをバンドル。
- vite-plugin-elm - Vite用Elmプラグイン。
Unmaintained
- grunt-elm - ElmファイルをJavaScriptにコンパイルするGruntプラグイン。
その他のツール
Elmに関連する便利なツール。
- Elm Catalog - Elmツールの一覧。
- Dependabot - elm.jsonの自動更新PR。
- Elm Doc Preview - Elmオフラインドキュメントプレビューバー。
- Elm Format - Elm Style Guideに従った自動Elmコードフォーマッター。
- Elm JSON - Elm依存関係のインストール、アップグレード、アンインストール。
- Elm Oracle - Elmソースファイル内の値に関する情報を照会。ほとんどのエディタプラグインで使用。
- type-o-rama - JS型システムの互換性。
- Html to Elm - HTMLをElmに変換。
- elm-posix - Elmを使ってCLIプログラムを書く
- Litvis - エリムによるliteraryな可視化
エディタープラグイン
コードエディタでElmをサポートするツール.
Atom
- atom-linter-elm-make - Atomエディタ用のエリムコードのリントツール
- atom-elm-snippets - Atom用のエリムスニペット
- atom-language-elm - Atomエディタ用の文法ハイライトと自動補完
- elmjutsu - Atomエディタ用の自動補完、定義へ移動、使用箇所検索、シンボルのリネームなど
- atom-elm-navigator - プロジェクト内の関数、型定義、ポートにアクセスするためのサイドパネル
Emacs
- emacs-elm-mode - エマックスエディタ用の文法ハイライト、エリムREPL、エリムmake、エリムフォーマットの統合
IntelliJ
- elm-plugin - IntelliJ IDEA用のエリムプラグイン
Sublime Text
- LSP-elm - サブライム(推奨)用のエリム言語サーバ
- Elm Language Server - エリムの言語サーバ実装
- Elm Syntax Highlighting - サブライムテキストでのエリム文法ハイライト
- Elm Format on Save - サブライムテキストで保存時にelm-formatを実行するプラグイン
Vim/Neovim
- theJian/elm.vim - エリム文法ハイライト。エリムキャスト/elm-vimはエリム0.19をサポートしていないため、ale or Neoformat for Neovimを使用してください
- ElmCast/elm-vim - Vim/Neovim用のエリム0.18モード
- vim-elm-help - エディタ内でオフラインでエリムドキュメントにアクセス
- emmet-vim - elm対応のマーカー展開
Visual Studio Code
- ElmLS - エリム言語サーバ統合
- Elmmet: Emmet for Elm (Visual Studio Code) - Emmetioの略語展開をエリム関数の構成に変換し、内部にelm-format’erを含む
- HTML to Elm for Visual Studio Code - VSCodeプラグインでHTMLをエリムに変換
Other editors
- elm-light-table - ライトテーブルでの文法ハイライト、REPL、自動補完、パッケージ管理など
サンプル
Elmで書かれた良いアプリケーションの例.
- Builtwithelm - Elmで構築されたウェブサイト。Elmで作成されたプロジェクトとアプリの一覧。
- Elm SPA Example - フルスタックのElmアプリ。CRUD操作、認証、ルーティング、ページネーションなど。 Code / Article / Video
- Elm Example App - Elmで構築された小さなSPA例(基本的な知識習得用)
- TodoMVC - TodoMVCアプリの適切な実装。
- TodoMVC with JSON API - JSON APIでデータを保持する、シンプルでモジュール化された、詳細にドキュメント化されたTodoアプリ。
- TodoMVC/Firebase - TodoMVCをフォークしたアプリで、start-app、The Elm ArchitectureおよびFirebaseをバックエンドとして使用。
- TodoMVC in Electron - Electronで実装されたElmのTodoMVCアプリ。ドキュメント化およびテスト済み。
- Gipher - ElmとFirebaseを使って構築された、GIFを扱うTinderのようなアプリ!
- Collection of examples - 現実世界のElmアプリに必要な高度な技術を示す、例集。
- <elm-ement> – カスタム要素の最小限の例。
- Elm Playground - 学習のための、小さなElmプロジェクト(例をもとに実装)。
- Elm Architecture in Android - Kotlinプログラミング言語とAnkoライブラリを使用したElmアーキテクチャに基づくAndroidアプリの例。
- Elm + Phoenix + Webpack - 最小限のElm + Phoenixのセットアップ。Brunchではなくwebpackを使用。
- Spotify Mapper - Spotify APIと統合されたElmアプリ。新しいアーティストの検索と探索を可能にする。
- Pokelmon - ElmプロジェクトがPokéAPIを消費している。
- JWT auth with Django + Elm - Django(バックエンド)とElm(フロントエンド)を使用したJSON Web Token(JWT)認証。
- Bitcoin BR Chrome Extension - Elmで構築されたChrome拡張機能。すべてのブラジルの取引所におけるビットコイン価格を表示。
- Elmstagram - Instagram / Articlesの基本的なUIのクローン — Part 1 Part 2 Part 3
- Kanban Board in Elm - ElmとHTML5 Drag & Drop APIを使って構築されたカンバンボード(Trelloに似たもの)。
- Elm Playground - 純粋なSPA(ルーティングあり)でElmのさまざまな側面を探索。
- Elm Hacker News PWA - エルムバージョン0.18を使用したプログレッシブウェブアプリ、公式のハッカー・ニュースAPIを用いて作成
- Elm Narrative Engine - エルムでインタラクティブフィクション風のストーリーを構築するためのフレームワーク。詳細な例 elmnarrativeengine.com は「選択肢で進む冒険」ゲームの構築方法を示しており、初心者向けです。エルムv.0.19
- Ari’s Garden - エルムパーサーを用いて構築されたSPA形式のレシピ site
- Bolster - 端末暗号化されたジャーナルアプリ
- Conway’s Game of Life - コイニンズのゲーム・オブ・ライフのエルム実装。エルムv.0.19
- Regex Nodes - エルムで構築された node-based visual editor for fiddling with regular expressions
Games
- elm-games - エルムで作られたゲームの優れたリスト
- TheSpace App - RedditのようなDAppで、ブロックチェーンとキャンバス(ポート経由)を統合したエルムアプリ
コミュニティとサポート
- Companies using Elm - 生産環境でエルムを使用している企業のリスト
助けの場所。
- Discourse - エルムディスクールインスタンス(公式フォーラム)
- Reddit - エルムのreddit掲示板
- IRC - elm freenodeで質問を投げましょう
- Slack - エルムスラックコミュニティ
カンファレンス
Elmから着想を得たもの
エルムに影響を受けたプロジェクト
- Bolero - F#をウェブアセンブリでエルミッシュを使用
- Bucklescript-TEA - OCaml / Reasonと Bucklescript をベースにしたエルムアーキテクチャ
- Elchemy - 静的に型付けされたエルム風の構文を使用したElixirコードの記述
- Elmish - F#アプリ向けのエルム風の抽象化
- Fabulous - F#の機能型アプリ開発、宣言型動的UIを使用
- Flame - 純粋なパースクリプトでエルムアーキテクチャを提供するライブラリ
- Hyperapp - エルムアーキテクチャをJavaScriptで提供するライブラリ
- Iced - Rustで跨平台GUIライブラリ。Elmをインスピレーションとして作られたもの
- Indigo - Scala.js向けのElmをインスピレーションとしたゲームエンジン。Indigo
- Lustre - GleamでElmアーキテクチャを提供するライブラリ
- Miso - HaskellでElmアーキテクチャを提供するライブラリ
- Mobius - Spotifyが開発したAndroidアプリ向けのElm風抽象構造
- React-tea-cup - IBMが使用している、React向けにElmアーキテクチャを提供する薄いライブラリ
- Redux - JavaScriptアプリ向けの予測可能な状態コンテナ
- Roc - Elmをインスピレーションとして作られたWebAssemblyおよびマシンコード向けの言語
- Sauron - Web向けにElmアーキテリクチャを提供するRustのライブラリ
- SwiftUI
- Tyrian - Scala.js向けのElmをインスピレーションとしたフロントエンドフレームワーク。Tyrian
- MAUI - .NETマルチプラットフォームアプリUI
- Oolong - Kotlinマルチプラットフォーム向けのElmをインスピレーションとしたモデル・ビュー・アップデート(MVU)実装
DOM以外の用途
現在、エルムはブラウザに強く向かっています。DOM以外でのエルムの使用に関する実験は以下の通りです:
- iOS Elm 0.18を用いたネイティブiOSアプリのプロトタイプ
- elmish-wasm ElmをWebAssemblyにコンパイルするプロトタイプ
- elm-serverless Serverless Frameworkを使ってElm 0.18をクラウドファンクション上で実行
- elm-posix - Elmを使ってCLIプログラムを書く
その他のAwesomeリスト
他の驚くべき素晴らしいリストも発見できます。
素晴らしいElmは素晴らしいことの一部にすぎません。もっとはこちらから:
