Google I/Oのセッションのひとつ、Building Apps for the Chrome OS Ecosystem (Google I/O’19)で、Emilie Roberts さんのプレゼンで、ChromeOSの最適化に関する言及がありましたのでメモしておきます。
基本的に愉快なオバさんキャラの氏は冗談を交えつつ、時折センセーショナルな事をさらっというので、見逃せない内容がいくつかあります。
要点をかいつまむと
- 操作系は独自に実装せずシステムに一任してね❤
- そろそろx86系のことも思い出してください❤あと64ビット
- あとでっかい画面もあるので、リサイズとかサポートしてね❤あと画面密度
語弊があるような気もしますが、だいたいこんな感じです。
入力の最適化
プレゼンでは、まずキーボードが何をどのように処理するかについて図示、ときにはスベり気味な冗談も交えながら、入力の最適化に焦点をあてます。
氏は、アプリケーション開発において、その対象がAndroid、あるいはChromebookであることは、開発者は意識する必要がない事を強調。
例えば、Androidで画面をスクロールする場合、指1本で画面をスワイプしますが、Chromebookではタッチパッドを2本指でスワイプします。あるいはタッチ画面に対応しているChromebookはAndroidと同様のスワイプ動作で利用できます。
これはシステムが自動的にどのような動作であるかを結びつけ、適切な動作指示をアプリケーションにわたしている(最適化している)とし、開発者はアプリケーションごとにUXデザインを実装する必要がない事を強調しました。
異なるCPUアーキテクチャの翻訳処理
EAのモバイル向けバスケットボールゲームを例にとり、バスケットボールを持っているプレイヤーキャラを操作中、処理能力が追いつかない場合に余計なアニメーションをカットした結果、プレイヤーキャラとボールが分離、後ろをチワワのようにボールがついてくる様子を紹介しました。
しかし、EAはバージョンアップを重ね、後にこれを克服、ドリブルアニメーションを実現しています。
このように、Android NDK(Native Development Kit)で作成されたゲームをAndroidで遊ぶ場合、ベンダーの努力によってなんとかなってきた歴史があります。
しかし、同じゲームをChromebookで遊ぶ場合、AndroidのARMアーキテクチャ向けに作成されたアプリを、x86アーキテクチャに翻訳する工程が含まれます。
今までは、この翻訳がとても良くなかったため、担当者は「英語学校に通い、熱心に宿題をこなした結果、よりよい翻訳を得られるようになった」と笑えない冗談を交えつつ、今現在もパイプライン技術などで改良が進み、ARM系からx86系への変換は、よりスムーズになってきている事を示唆しました。
しかし、今後、もしパフォーマンスを意識するなら、特にそれがゲーム、クリエイティブな分野であるならば、x86/64bitのサポートをお願いしたいと明かしました。
氏は「わたしたちの主なアプリケーション、主なデバイスは、x86 / 64ビットです」とさらっと言ってのけました。
しかし、ARM / 32ビットのデバイスも数多くのこっているので、ARMサポートはまだしばらく続ける必要があるとしています。
したがって、ARM 32ビット、ARM 64ビット、x86 32ビット、x86 64ビットをサポートしてほしいと手を合わせます。
「たくさんに聞こえますが、幸いなことにAndroid Studio(開発環境)ではアプリケーションハンドラーがうまくまとめられていて、非常に簡単」とし「Playストアに配信後は自動的で、ダウンロード容量も変わらない」としました。
愉快なおばさんです。
画面サイズ
話は変わって、アプリケーションのレイアウト。
どのようなデバイスでも、どのような大きさでも、最適化します、そうJetpackならね、ということが話の焦点です。
「いまやスマートなデバイスはスマホに限らない、あなたのアプリは、TV、フォルダブル、Chromebookのような大きな画面で表示される可能性がある」としたうえで、最終的には、異なる画面サイズ、ビューモデルは設定を保存するだけで良いように、私達のJetpackフレームワークをつかお?と言う話に着地します。
「あと、コードラボのはなしもします。あれもチョーかっこいいから試してみてね」
最後はかなりマキ進行でおざなりですが、それもまた愉快な感じです。
是非、動画で見てほしいと思います。1時間くらいありますが。