BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース モバイル開発に手を伸ばすDart 2

モバイル開発に手を伸ばすDart 2

原文(投稿日:2018/02/24)へのリンク

読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。

Googleのプログラミング言語Dartの最新バージョンは、型システムの強化、構文のクリーンアップ、ツールチェーンの改善が売りだ。Googleはこの言語を、2~3倍の生産性向上を実現するモバイルおよびWebアプリの開発手段だと喧伝している。

Dart 2は強い型指定を必須モードとすることにより、開発プロセス早期のバグ検出を可能にする。ただし型アノテーションは依然としてオプションであり、宣言されていない場合は推論が行われる。Dart 1.x用の既存コードがDart 2に対応可能か否かは、Dart 1.xの強化モードを有効にすることで検証が可能だ。

比較的小さな変更ながらDart構文の可読性に大きな影響を与えているのが、コンストラクタ呼び出し時のnewconstが省略可能になったことだ。これによって、従来よりも宣言的な構文を使用してUIを宣言できるようになる。例えば次のような記述が可能だ。

Widget build(BuildContext context) =>
  Container(
    height: 56.0,
    padding: EdgeInsets.symmetric(horizontal: 8.0),
    decoration: BoxDecoration(color: Colors.blue[500]),
    child: Row(
      ...
    ),
  );

Dart 1.x互換バージョンでは次のような記述になる。

Widget build(BuildContext context) {
  return new Container(
    height: 56.0,
    padding: const EdgeInsets.symmetric(horizontal: 8.0),
    decoration: new BoxDecoration(color: Colors.blue[500]),
    child: new Row(
      ...
    ),
  );
}

Dartは、GooleのFlutterフレームワークを通じてモバイルアプリ開発をサポートする。FlutterはAndroidとiOSのネイティブUIを作成可能にすることを目的としており、ARMとx86プロセッサ用のネイティブコンパイルを行うことができる。効率的なガベージコレクタを提供するFlutterのエンジンとの組み合わせにより、完全なネイティブ動作を行うモバイルアプリの開発が可能になる。

クライアント側開発へのDartのポジショニング変更は、GoogleでDartのプロダクトマネージャを担当するThorhauge Sandholm氏によるものだ。

Dart言語とライブラリの改良で重視されている点は、クライアント側の開発とその価値の最大限です。

ただしこれは、コマンドラインやサーバ側コードでのDartの使用が廃止されるという意味ではない。クライアント側開発をDartの新たなターゲットとしたことには、現在もなお同言語の最大の利用者であるGoogle以外にも、業界全体にDartの採用を拡げていきたいという同社の意図が見られる。Sandholm氏によれば、Dartのパフォーマンスと予測可能性は、その優れた型システムとも相まって、Google AdWords開発者たちのパフォーマンスを、2倍ないし3倍にすることを可能にする。さらにSandholm氏は、Dartを使用したAdWords ExpressとAppTreeの開発チームにおいて、モバイルアプリおよびWebアプリのコードの50~70パーセントが共有可能になったことを報告している。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT