Dartを触ってみたメモ


Dartは名前だけ聞いたことがあって、まったく触ったことがなかったので触ってみました。

Dartのページ
http://www.dartlang.org/

google絡みのプロダクトにしてはきれいなサイトという印象

Dartのインストール

http://www.dartlang.org/downloads.html


「Everything you need」となっているのをインストール。
エディタとDartVMが搭載されたChrome(Dartium)がついてくるんですね


エディタを起動してみる

eclipseベースのエディタなんですね。最近使ってなかったので懐かしい感じがします。


welcomeページにいくつかsampleプロジェクトが表示されてますので試し「swipe」を開いてみました


html、dartcssからなるシンプルなプロジェクトです。
Run「⌘R」でプロジェクトが起動して、webページがDartiumで開きます



左右カーソルキーでぐるぐる回ります。
他のサンプルもひと通りみましたが、見た目が派手なのが多いです。そういう用途を意図しているのかも。

新しいプロジェクトを作ってみる


Dart Editor の MenuからFile->New Applicationでプロジェクトを作ってみました

最初から結構コードが書いてあります


helloworld.html

<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
    <link rel="stylesheet" href="HelloWorld.css">
  </head>
  <body>
    <h1>HelloWorld</h1>
    
    <p>Hello world from Dart!</p>
    
    <div id="container">
      <p id="text"></p>
    </div>

    <script type="application/dart" src="HelloWorld.dart"></script>
    <script src="http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script>
  </body>
</html>

htmlはこの辺がお約束なんですね

    <script type="application/dart" src="HelloWorld.dart"></script>
    <script src="http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script>


helloworld.dart
文法は全然知りませんがなんとなく読めます。文法はわかりやすそう。

#import('dart:html');

num rotatePos = 0;

void main() {
  query("#text").text = "Click me!";

  query("#text").on.click.add(rotateText);
}

void rotateText(Event event) {
  rotatePos += 360;

  var textElement = query("#text");

  textElement.style.transition = "1s";
  textElement.style.transform = "rotate(${rotatePos}deg)";
}


DartEditorを触ってみた感じ、Ctrl+Spaceでコード補完とか、⌘押しながらクリックで宣言を開くとか、参照を開くとかいろいろできるんだけど、
KeyBindingの設定がファイルからしかできない感じ。



Emacs風のキーバインドに慣れすぎちゃってるのでこれはつらい。
Eclipseは最初からある程度のEmacsキーバインドが用意されていたような記憶があるけど、それすらない。

PyCharmのDart Pluginもためしてみたけど、PyCharmだとpluginのバージョンが0.1。
コード補完もできないし、シンタックスハイライトくらいしかできない。

まとめ

というわけで、言語の雰囲気を見てみただけって感じですが。
(ちょっとエディタがアレで、今これ以上やる気が無くなってしまった。)

アニメーション有りのリッチなコンテンツを作りこむって用途がメインなんですかね。

しばらく使うことはなさそうだけど、そのうちまた興味がわいてもうちょっと深掘りするかもしれない。