Slide 1

Slide 1 text

Dartエコシステム

Slide 2

Slide 2 text

自己紹介 ● 名前:林 尚之(はやし たかゆき) ● Agile(XP)、TDD、DDDとかが好き サーバーサイドに生息することが多い(WebもSSRが多かった) ● Dartを使い始めた理由は当時Dartが目指した世界に共感したのと フロントエンドでも静的型付言語を使いたかったから twitter: @t_hyssh

Slide 3

Slide 3 text

Dart 1.0がリリースされたのが2013年11月13日

Slide 4

Slide 4 text

元々周辺ツールなどを重要視していた Dart開発チームでしたが、4年経ちエコシ ステムもさらに成熟

Slide 5

Slide 5 text

個人的によく使うもの ● sass_builder ● fluri ● json_serializable ● quiver ● mockito ● angular_analyzer_plugin ● ng2gen

Slide 6

Slide 6 text

sass_builder ● scssファイルをいい感じにしてくれるライブラリー ● yamlのtransformerに定義すればpub serveやpub build時にscssからcss ファイルを自動生成してくれる (別途sassをインストールする必要はない) ● cssファイルも同時にバージョン管理したい場合はwatch用の処理をちょっ と書くだけでOK

Slide 7

Slide 7 text

sass_builder ※AngularDartと併用する場合 はangularより先に定義しないと いけない

Slide 8

Slide 8 text

sass_builder ※外部ライブラリーの scssを import可能。

Slide 9

Slide 9 text

sass_builder(CSSファイルも管理する場合) 上記内容にて${project_root}/tool/sass/watch.dartを 作成し、runしておけば変更を検知して scssファイル からcssファイルを生成してくれる。

Slide 10

Slide 10 text

fluri ● サーバーへのリクエストURLをfluentな感じで生成できる ● lightweightなので扱いやすい

Slide 11

Slide 11 text

fluri

Slide 12

Slide 12 text

json_serializable ● json ⇔ Dartオブジェクトの変換用に使う ● ソースコードを自動生成させて使う ● 自動生成後に修正しないといけないのがちょっと面倒

Slide 13

Slide 13 text

json_serializable libraryとJsonSerializableのアノテーショ ン定義が必要 上記ファイルをrunしておけば変更を検 知して自動生成する。 lib/src/json/sample.dart tool/source/watch.dart

Slide 14

Slide 14 text

json_serializable 上記がファイルが自動生成される 自動生成された情報を基に修正

Slide 15

Slide 15 text

json_serializable(http + fluri)

Slide 16

Slide 16 text

mockito ● テスト用mockライブラリー ● Javaのmockitoにインスパイアされてる ● (個人的には)直感的に書けると思う ● mockクラスを定義しないといけないのが面倒

Slide 17

Slide 17 text

mockito Taskをモックにしたい場合

Slide 18

Slide 18 text

mockito MockTaskというTaskのMockクラスを定義

Slide 19

Slide 19 text

quiver ● DartのSDKには無いユーティリティなライブラリ ● 昔のJakarta Commons的立ち位置(Javaな人しか分からない??) ● Optionalのために使ってる ○ Dart2.0はnull-safeにはならないようなので今後も重宝しそう ● 他にも便利そうなのが多そう(未確認)

Slide 20

Slide 20 text

angular_analyzer_plugin ● AngularDartの開発効率Up ● IDE等と連携してHTMLテンプレート側での静的チェックとサジェストが可 能 ● Dart2.0になるとanalysis_options.yamlに定義するだけでよくなる ● 現状(Dart1.24.2)では有効にするのに手間がかかる

Slide 21

Slide 21 text

ng2gen ● AngularDartで必要になる物のscaffoldを作成出来る ○ component、service、route、etc...

Slide 22

Slide 22 text

今後期待するもの

Slide 23

Slide 23 text

今後期待するもの ● dazel ● (新)angular_analyzer_plugin

Slide 24

Slide 24 text

dazel ● Hot Reload! ● まだEXPERIMENTAL(実験)の段階 ○ AngularDartのサポートはまだっぽい ■ 自分の環境ではうまく動かない・・・

Slide 25

Slide 25 text

(新)angular_analyzer_plugin ● analysis_options.yamlに記述するだけでOK ● AngularDart4.0以降かつDart1.25.0-dev.12.0以降で動作 ● 自分の環境ではまだうまく動かない・・・

Slide 26

Slide 26 text

開発を効率化する仕組みは確実に進化中

Slide 27

Slide 27 text

FlutterがDartにおけるキラーアプリになる可 能性あり

Slide 28

Slide 28 text

flutterのgithubスター獲得推移 ここ1ヶ月の伸びが凄い! (reactnativeと比べてはいけない・・・)

Slide 29

Slide 29 text

https://pub.dartlang.org/ にアップロードされるライブラリーの数と頻度は 日々増え続けていて、1年前に比べると1日に アップロードされるライブラリーの数は3倍以上 になっている

Slide 30

Slide 30 text

ご清聴ありがとうございました。