2012年2月18日土曜日

Trying Dartium on Ubuntu Linux 11.10

Dartium(DartのVMが搭載されたChromium)のバイナリが公開されたので、早速試してみた。環境は32bitのUbuntu Linux 11.10で、unameは↓ね。

検証環境

$ uname -a
Linux masato-xubuntu 3.0.0-16-generic-pae #28-Ubuntu SMP Fri Jan 27 19:24:01 UTC 2012 i686 i686 i386 GNU/Linux

環境構築

バイナリを用意してくれたおかげで非常に簡単。

  1. 適切なバイナリを落としてくる。今回はこれを使用。dartium-lucid64.zipとかいう名前だから一瞬64bitじゃないとダメかと思ったけど、32bit OSでも普通に動いてる
  2. zip解凍してDartium起動する。zip解凍すると色々でてくるけど、重要なのはchromeだけ。ファイラーからだとchromeが共有ライブラリに見えて実行できなかったけど、普通にコマンドラインから起動すれば問題なかった。
  3. chromiumの情報を確認する。"chrome://version/"というURLを打つと色々情報が見れる。そこにDartVMという項目が出てればちゃんとDartiumが動いてるはず。自分が落としてきたのは下の表示だった。

コード書く

こことかこことかこの辺を参考にしながら書いてみた。コツがつかめれば実際のリファレンスの方をみるといいかも。特にdart:htmlのElementは良く読むべし。

<!doctype html>
<head>
    <meta charset="utf-8">
    <title>dartlang test</title>

    <link rel="stylesheet" type="text/css" href="./css/bootstrap.min.css" />
    <link rel="stylesheet" type="text/css" href="./css/client.css" />
</head>
<body>
    <script type="application/dart">
    #import("dart:html");
    void main() {
        var msg = "Testing dart!";
        window.alert(msg);
        print(msg);
        Element btn = document.query('#button');
        btn.on.click.add((Event e) {
            Element stage = document.query('#stage');
            stage.innerHTML = "OMGOMGOMGOMG";
        });
    }
    </script>
    <div class="topbar">
        <div class="fill">
            <div class="container">
                <a class="brand" href="#">dartlang test</a>
            </div>
        </div>
    </div>
    
    <div class="container">
        <div id="stage">AAAAAAAAAAAAAAAAAAAA</div>
        <div id="button">Click ME!</div>
    </div>
</body>
</html>

やってることはわりと単純。

  1. window.alertでアラートウィンドウにメッセージを出力する
  2. printでデバッグメッセージを出力する
  3. buttonというidを持つ要素のクリックハンドラでstageというidを持つ要素の中身を書きかえる

コードを埋めこんだhtmlができたら、あとは普通にDartiumで表示する。もし構文に何らかのエラーがあった場合はデベロッパーツールのConsoleに表示されるから見るといい。画像は上がクリック前、下がクリック後。

型チェック

ドキュメントにも書いてあるけど、Dartiumの実行時に環境変数を設定してやるとDartの型チェック機能を有効化できる

$ DART_FLAGS='--enable_type_checks --enable_asserts' ../lib/dartium-lucid64-inc-4350.4350/chrome &

この状態で意図的に型エラーが出るソースに書きかえた(Event eのところをint eにした)ところ、ちゃんとエラーが検出された。

感想

  • バイナリのおかげでかなり簡単にDartが試せる。
  • Consoleにエラーが出るからデバッグはまあまあやりやすい。まあこれはjavascriptでも一緒だけど。
  • 型チェックは常にONでもいいかも。

0 件のコメント:

コメントを投稿