BT

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

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2018年4月4日. 推定読書時間: 3 分 |

原文(投稿日: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パーセントが共有可能になったことを報告している。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT