デバイスのフラグメンテーションは優れたUXの提供にとって大きな妨げだ。開発者がよく直面する問題をおさらいする。
OpenSignalによる最新の調査によると、サポートしているAndroidのバージョンや画面解像度、フォームファクター、キーボード、プロセッサ、利用可能なメモリなどの違いにより、24,000以上の異なるデバイスが存在しているという。OpenSignalによる最初のフラグメンテーション調査で4,000ほどだったのが、今や6倍にも増えている。Androidをサポートする開発者にとって、デバイスのフラグメンテーションは間違いなく大きな問題であり、開発者がAndroid-firstを避けるほど難しい問題だ。だが、問題は他のプラットフォームにも波及している。たとえば、iOSにはRetina/非Retinaディスプレイ、さまざまなiPhone/iPadフォームファクター、複数のiPhone解像度といったバリエーションがある。
Sourcebitsのマーケティング担当副社長Elliotte Bowerman氏はフラグメンテーションには4つの大きな問題があるとまとめている。
- バグ品質。デバイスの数とともに増える。
- バグ発見の困難さ。どこでも再現するわけではないため。
- サポートするすべてのデバイスでテストするのは不可能。開発者は現場からのバグレポートを頼りに動く。
- 察知されずにいるバグの数。現場で見つかるバグの多くはまったく報告されない。
たいていのバグは次の3つに関連して発生する。
- さまざまな画面サイズ。あらゆるデバイスにきちんと適応したUIを作るのは非常に困難。
- 異なるハードウェア性能。プロセッサやメモリなど。
もう一つはOSのバージョンに関係するものだ。Conner Forrest氏がTechRepublicに書いているように、これもAndroidで顕著な問題だ。Android OS 5.0, Lollipopが発表されて数ヶ月たっても、それが動いているのはインストールベースの3.3%にすぎない。もっとひどいのは、新しいデバイスが古いバージョンのOSで発表されることだ。
モバイルクラウド・テスティングプロバイダーtestmunkの創業者Martin Poschenrieder氏は、モバイルアプリに見られる典型的なUX問題を次のように述べている。
- 大きさの問題: ボタンなどのグラフィック要素だけでなくテキストもそうだ。
- ビジュアル要素の欠落: 一部の要素が見えなくなり、対応する機能が使えなくなる。
- 配置の問題: 要素が場違いなところに現れてしまう。たとえばセンターでないなど。
- 妨害された機能: 典型的なのは、画面上にキーボードが現れて、一部のUI要素、たとえば入力確認のためのボタン、ひどいと入力フィールドまで隠してしまうことだ。
Poschenrieder氏の場合も、デバイスのフラグメンテーションに関連して厄介なのは、特定のデバイスに現れてどこでも観察できるわけではないことだという。そのため見つけるのは非常に困難だ。
この数年、GoogleはAndroidのフラグメンテーション問題を解決しようと頑張ってきた。とりわけAndroidの新バージョン導入に時間がかっている問題については、Google Play Servicesを導入するなど手を打ってきたが、依然としてフラグメンテーションは、TestObject、Test Plant、Testdroid、testmunkといったモバイルテスティングプロバイダーにとって最大のセールスポイントになっている。こうしたテスティングプロバイダーを使うと、開発者はさまざまなデバイスでアプリを実行し、異なるモバイルネットワークオペレーターを使い、サービスレベルの変動をシミュレートすることができる。