最近噂の3倍生産性が良いFlutterにつられて色々調べていたら、dart言語なるものがあり、JSアプリ作ろうかなーって思っていたので、使ってみた。
https://dart.dev
facebookインスタントゲームとして、公開済み。
https://fb.gg/play/solitaireproworld
javaで開発したandroidアプリを移植した。
https://play.google.com/store/apps/details?id=jp.co.projapan.solitaire
ゲームアプリなので、StageXLフレームワークを使用。これはFlash風APIになってる。
http://www.stagexl.org
###良かった点
- ビルドが速い。5秒程度でリロードされる。慣れるとサクサク開発できて、超気持ちいい。
- Javaに似てるので、javaから移植しやすい。javaプログラマーは入りやすい。
- javaと比べると、文句なしでDartがいい。全然違う。Objective-Cはクソ
- 新しめの言語なので、変な制約が少ない。C++とかクソ
- IDEはVSCode使ったが、軽くて良い。最近のXCodeはクソ。androidStudioでも開発可能。
- 慣れるとサクサク開発できて、超気持ちいい。
- Dart関係ないけどVSCodeでのソース自動整形はいい。生産性が上がる。(今まで興味なかった)
- webGLも使える。StageXLはでふぉでON。まあ古めのデバイスのためにOFFったけど。新しめのデバイスならONの方が性能上がりそう。
- JSは結構デカくなるけど、gzip圧縮できるので、問題無し。このアプリは748KB->212KBだった。
- ChromeのみでDartソースレベルDEBUGができる!さすが純正。
- android/iOSの実機とエミュレータ/シミュレータでもlocalhost環境で動作確認が可能。webdevに引数 --hostname=IPアドレス をつける
。
###悪かった点
- VSCodeだと日本語コメントが文字化けしやがる。(最新版では修正済みらしい)
- 日本語情報が少ない。特にStageXL情報がない。全くない。
- 画面をコードで構築するので、めんどい。まあこれはこれでいい。変なツールを覚える必要がない。
- たまにソース辿れない例外が出て、修正に苦労する。
- numにdoubleが入っててintに代入すると、整数じゃないので例外が出てしまう。
- VSCodeからDEBUG起動とかもできるが、そのうち劇重になるので、使わなかった。Chromeのみでデバッグ可能なので、そっちを使う。現在は改善されてるかも。
- 言語別リソースの機能とかは無い。仕方ないので、自分で構築した。まあ言語ごとにjsonに追い出したりするだけ。
- if (xx)でxxがnullだと例外吐きやがる。クソが。
- ビルド待ち時間が少ないので、疲れる超疲れる。news読む暇なくなる。
##最後に
概ねサクサク作れました。
生産性、いいわあ。ビルド速いのは正義だねえ。
StageXL使ってる日本人、私だけかもー。貴重な老人プログラマーになれたかも。
そのうちFlutterもやろう。
AngularDartはすでに使ってみた。
##その後
webサイトも立ち上げた。ソリティアプレイ部分がDart。
ソリティア.global
https://solitaire.global/