サイバーエージェントを支える技術者たち

第58回Android端末の動作検証の課題を解決[後編]

Android端末向けアプリの検証の手間を少しでも軽減したい……。こうした思いから、独自のツールを開発したのがサイバーエージェントのブルンナー グンタ氏とキンヌネン シモ氏です。具体的にどのようなツールなのか、その詳細を伺いました。

複数台のAndroid端末をいっせいに検証することが可能

現状、日本ではiPhoneが大きなシェアを握っていますが、一方でAndroidユーザもけっして少なくありません。サイバーエージェントでは、いずれのプラットフォームにも積極的に数多くのアプリやサービスを展開していますが、そこでは苦労も絶えないようです。

たとえば、第56回で解説したようにAndroidには多数の端末があるため、それらを検証するのは大変です。そこで、ブルンナー グンタ氏とキンヌネン シモ氏は、複数のAndroid端末で開発したアプリを効率的に検証できる環境の構築に乗り出します。このプロジェクトの開始当初の様子を語ってくれたのはグンタ氏です。

「いろんな考え方がありますが、最初に思いついたのはURLを1度指定すれば、複数のAndroid端末がいっせいにアクセスするようなしくみだったんです。実機を使った検証の場合、まずWebブラウザを立ち上げ、URLを入力してようやくWebアプリのダウンロードが始まりますよね。多数の端末を検証することになると、その作業だけでも膨大な時間がかかってしまいます。それで最初は、どこかにURLを入力すると複数の端末がいっせいにそのURLにアクセスするようなシンプルなツールを考えていました(グンタ氏⁠⁠。」

ただ、実際に検証する場面を考えると、それだけでは不十分だと考えたと言います。

「実際の検証の場面を考えると、デバッグ機能やコンソールログを取得するしくみ、あるいはスクリーンショットを記録する機能があると便利ではないかと考えました(グンタ氏⁠⁠。」

「ネイティブアプリであれば、エディタのデバッグ機能が使えますよね。しかし、Androidのデフォルトブラウザにはそうした機能がありません。ただ、開発効率を高めるために少しでもデバッグの機能を盛り込みたかったんです(シモ氏⁠⁠。」

検証やデバッグに有効な多数の機能を盛り込む

こうして方針が固まった2人は、猛然と開発に邁進します。そうしてできあがったのが、次のようなシステムでした。

まずPCにUSB経由でAndroid端末を接続します。その際、複数のAndroid端末を接続でき、それらすべてに同じ指示を与えることができます。インターフェースはWebベースで、Webブラウザを使ってAndroid端末を操作します。

基本的には、Webインターフェース上でURLを入力すると、PCに接続されているすべてのAndroid端末が指定のURLのWebページを表示します。ここでスクリーンショットを取得すれば、各Android端末の表示の違いがビジュアルに確認できます図1⁠。

図1 PCに接続している複数台のAndroid端末で、同じWebページにアクセスして画面キャプチャを取得したところ。それぞれの端末で期待どおりの画面が表示されているかどうかが素早く確認できる
図1 PCに接続している複数台のAndroid端末で、同じWebページにアクセスして画面キャプチャを取得したところ。それぞれの端末で期待どおりの画面が表示されているかどうかが素早く確認できる

またスクリーン上に表示されている内容だけでなく、たとえばページが長い場合には、ページの内容すべてをキャプチャする機能も用意されているなど、芸が細かいこともポイントでしょう。

もう1つの機能はログの取得で、コンソールログと、logcatコマンドで取得するログの2つに対応しています。さらにWebインターフェース上でログをフィルタリングできるようになっているほか、全端末のログを一気に参照し、結果が違う部分だけを抽出するしくみも用意されています。

Webブラウザ経由で複数のAndroid端末を同時にコントロール

各Android端末のタッチ操作やフリック操作をエミュレートする機能もあり、たとえばWebページにアクセスして特定のリンクをクリックするといったことが行えます。さらに、これらの操作を複数台まとめて行えるため、同じ操作の結果がどう違うのか確認できることも便利でしょう。また現在は開発中とのことですが、各Androidの画面を操作側のWebブラウザにリアルタイムに表示する機能も追加する予定のこと。これと複数台のAndroid端末を同時に操作する機能を組み合わせれば、複数台のいっせいリモートコントロールも可能になります。

ほかのPCに接続されたAndroid端末を、ネットワーク経由で制御できるしくみが盛り込まれていることもポイントです。検証したいとき、手元にAndroid端末がなくても、誰かのPCに接続されていれば検証ができます。これにより、端末を探したり、手元まで運んだりする手間が省けるというわけです。

このツールのメリットを、グンタ氏は次のように説明してくれました。

「キーワードは『いっせい』ですね。物理的に端末を借りて、1台ずつ操作するのはやはり大変です。しかしこのツールを使えば、端末さえ用意できればいっせいに検証を行えます。実はAndroidをリモート操作するというツールはほかにもありますが、いっせいに操作できるツールというのは今までになかったと思います(グンタ氏⁠⁠。」

なお、現状ではWebブラウザからのAndroidのリモートコントロールに関して、画面の書き換えが遅いという問題があり、現在はフレームレートを高めるための改良を進めているとのこと。これらの改善によって完成度がさらに高まれば、Android向けアプリの検証において、サイバーエージェントの中で大きな役割を担うことになるのは間違いないでしょう。

写真 ⁠左から)キンヌネン シモ氏、ブルンナー グンタ氏
写真 (左から)キンヌネン シモ氏、ブルンナー グンタ氏

おすすめ記事

記事・ニュース一覧