Android Weekly Topics

2019年3月第1週Dart 2.2、Flutter 1.2など開発関連のプロダクトがリリースほか

性能が強化されたDart 2.2をリリース

Googleは2月26日、プログラミング言語のDartの最新版となる「Dart 2.2 SDK」を公開しました。

Dartは、JavaScriptの代替言語として開発されていましたが、TypeScriptとの競争に負けてGoogle社内の標準プログラム言語としても採用されず、思惑通りにことが進まない厳しい時期もありましたが、Dart 2になってモバイル向けのUIフレームワーク「Flutter」との組み合わせで見事な復活を遂げました。

Dart 2.2では、Dart 2.1に引き続いて性能強化が行われています。

具体的には、AOTコンパイルされたネイティブコードの性能改善に着目し、おおよそ1%のコードサイズの増加で、11から16%の高速化に成功しています。これは、静的呼出のオーバーヘッドを削除したことで実現しました。この改善は、Flutterのコードで、コンストラクタや静的メソッドが多く呼び出されるようなケースで有効だとしています。

また、コアライブラリのMapsとLists、そしてSetsで、リテラル構文をサポートして初期化のコードを簡易に記述できるようになりました。

Listの場合
const List<String> releases = ['Dart 2.0', 'Dart 2.1', 'Dart 2.2'];
Setの場合
Set<String> currencies = {'EUR', 'USD', 'JPY'};

安定性が強化されたFlutter 1.2がリリース

Googleは2月26日、モバイルUIフレームワークの「Flutter 1.2」をリリースしました。

Flutterは、モバイル向けのアプリケーションおよびUIのフレームワークで、iOSとAndroidをサポートしています。先で取り上げたDartでコードを書き、ネイティブと同じレベルのパフォーマンスのアプリが構築できます。

Flutterのウェブページには、以下のように書かれており特徴をうまく表現しています。

Flutter allows you to build beautiful native apps on iOS and Android from a single codebase.

Flutter 1.2は、Dartの新バージョンと足並みをそろえてリリースされました。

これでは、安定性、性能、コード品質の強化が行われていました。iOS向けのUIウィジェットの「Material」「Cupertino」では、ピクセルパーフェクトで描画されるように改良が行われています。また、Flutterを使ったデスクトップアプリを開発するための前準備として、キーボードイベントやマウスホバーにも対応しています。

また、アプリ内課金のサポートに取り組むとともに、ビデオプレイヤーやWebビュー、マップのバグなどが修正されています。他にもFlutterアプリを開発するためのWebペースのツールも用意するとしています。

新しいコード圧縮ツール「R8」がAndroid Studio 3.3 βで利用が可能に

GoogleがAndroidアプリ(APK)のサイズを圧縮するツール「R8」のプレビュー版がAndroid Studio 3.3 βで利用可能になったとGoogle Developers Blogで紹介しています。

R8は、現在のコード圧縮のProGuardと比較すると、コード圧縮にかかる時間が短縮されて出力サイズが小さくなっています。Google Developers Blogには「Googleサンタを追いかけよう」アプリでベンチマークに使った結果が公開されています。

これを見ると、圧縮時間が17.6秒(ProGuard)から9.3秒(R8 compat)まで短縮されています。Dexのファイルサイズは圧縮ほど劇的ではありませんが、7,030kb(ProGuard)から6,715kb(R8 compat)となっています。他にもAPKサイズの結果も公開されています。

Google Developers Blogのエントリーの後半では、R8の導入方法も紹介されています。簡単な設定だけで処理時間が格段に短縮されるのは魅力的なので、Android Studio 3.3 βの環境をお持ちの方は試してみる価値はあります。

今週は、このあたりで、また来週。

おすすめ記事

記事・ニュース一覧