DartのFutureを使って非同期処理を書く

HTTP通信やI/O処理など、非同期処理というものは常に我々の身近にあります。Dartでは、そんな非同期処理を簡潔に扱うための仕組みとして、Futureというものが用意されています。この記事では、Futureの基本的な使い方について説明します。

なお、この記事で書かれている内容は2015年1月5日現在のものであり、将来的にサポートされる内容については触れていません。今後のDartでサポートされる予定のasync/await機能については[翻訳]Dartの非同期サポート:フェーズ1をご覧ください。

Read More

Dartでファクトリパターン/シングルトンパターンを実装する

ファクトリパターン(Factory Pattern)シングルトンパターン(Singleton Pattern)はオブジェクト指向プログラミングにおいて欠かせないデザインパターンです。Dartにおいても、もちろんこのようなデザインパターンは伝統的な方法で実装することができます。

これでも期待した動作を得ることはできます。しかし、Dartではファクトリパターンのための、よりよい仕組みが用意されています。この記事では、その仕組みを使ったファクトリパターン/シングルトンパターンの実装方法について説明します。

Read More

DartのImplicit interface(暗黙的インターフェイス)について

DartにはImplicit Interface(暗黙的インターフェイス)というものが存在します。名前の通り、Dartではすべてのクラスは暗黙的にインターフェイスを持ち、それを公開しています。例えば以下の様なクラスがあるとしましょう。

一見ただのクラスですが、暗黙的インターフェイスがあるため、インターフェイスは一般に公開されています。したがって、このクラスのインターフェイスを、他のクラスに実装することが可能です。

暗黙的インターフェイスはユニットテストなどにも活用でき大変便利ですが、非公開にする方法はありません。このため明示的にインターフェイスを宣言するintefercafeキーワードは存在しません(かつては存在しましたが、抽象クラスで代用できるため削除されました)。あらゆるクラスのインターフェイスは常に公開されているという意識を持った設計を心がけましょう。

HomebrewでDart(とDartium)をインストールする

DartのHomebrew用公式リポジトリ(https://github.com/dart-lang/homebrew-dart)が用意されたので、デフォルトのリポジトリからは削除されてしまった。インストールするにはそれをtapする必要がある。

あとは通常通りインストールすればいい。

ついでにChromiumにDartVMを搭載したDartiumも導入しておこう。Dartコードをそのまま実行できるのでデバッグに便利だ。

Dartiumインストール後に以下のコマンドを実行すると/Applications以下にDartiumへのリンクを張ってくれる。Dartiumのアプリケーション名は「Dartium」ではなく、あくまで「Chromium」なので注意だ。

これでHomebrewでDartSDKを管理することができる。