アプリやWebサイトをより良く、より速く、よりアクセシブルにする手助けが私の仕事です。CalibreでWebを構築したり、メンテしたりする際にぶつかる課題について、知見が集まりました。
この1年で本当に驚いたことは、一般のユーザーがどうインターネットにアクセスしているかです。Web業界に従事しているのに、ほとんど理解していませんでした。自分たちがユーザーにコンテンツを配信する方法がいかに時代遅だったのかもわかりました。
ここ数年の進歩で、コンテンツをWebからダウンロードする速度は劇的に速くなりました。しかし、「HTMLをロードし、ほかのリソースを探してそれもロードする」という基本は変化していません。
世界中の約46.1%がインターネットにアクセスしています。すなわち、「pull-to-refresh(引っ張って更新)」の意味が大体理解できるのは、この美しい青い星の住人の半分しかいないのです。
過去3年のWebの成長から、インドでのインターネットアクセスがいままで経験したことのない速さで伸びていると分かります。
2016年だけで、インドでは新たに1億600万人がインターネットを使い始めました。毎日29万人が加わったことになります。2015年と比較すると約30%の伸びですが、これらの数字を2017年に当てはめると、さらに1億4000万人の増加になります。実際、インドのインターネット普及率は現在わずか35%で、インドの人口は12億です。ものすごい成長は数年続きます。考えられません。
2014年にモバイルでの利用がデスクトップを上回りました。インターネット接続機器の51.3%がモバイル機器です。モバイル機器は安価ですし、持ち運びができないデスクトップと似たような作業ができることも考えると、別に驚くべき結果ではありません。
データと接続性
昨年、最大の市場シェアを持つ通信キャリアのもっとも安価なプリペイドプラン(最低500MB)を使った場合、どれぐらいの通信料が必要か、世界各地の状況を調査しました。以下は、現地の最低賃金で働いた場合に必要な労働時間です。
この結果は、携帯電話が買えて、毎月の通信料に余裕があったとしても、通信速度については考慮していません。
平均のLTE速度とは別に、みなさんが驚く結果があります。世界のモバイル接続の60%は2Gです。「2G速度」だけでなく、2G接続なのです。iPhoneの「Edge」ネットワークを聞いたことがあると思いますが、使い物になりません。
「まあそうは言っても私が知っている人は少なくともADSLぐらいは使っているから、そんなに遅くはないはずだ」と思うかもしれませんが、残念なことに違います。世界のインターネット接続の平均スピードは7Mbpsなのです。
インドの進出
昨年末、新しい4G限定の無線ネットワークプロバイダーが誕生しました。家族や友人、従業員に対して1年間にわたってプライベートベータとして提供していたJioは、ほんの数カ月でインドのネット接続環境を一変させました。知る限りでは、最速のカスタマー成長カーブを更新しました。これにはシリコンバレーもひれ伏すはずです(彼らがほかにも国があることを知っていればの話ですが)。
Jioのサービス開始以降、料金が80%も下がりました。
すべての成長曲線を終らせる成長曲線
Jioは2016年9月5日に商業サービスを開始し、最初の1カ月で、1600万契約を獲得したと発表しました。世界のモバイルネットワークオペレーターのどこよりも速い成長率です。Jioはサービス開始から83日で、5000万契約に達しました。1億契約を突破したのは2017年2月22日です。
Wikipedia
みんながiPhoneを持っているわけではない
あなたは立派なデスクに向かい、1600ドル~3000ドルぐらいのコンピューターを使い、無線LANに接続しているでしょう。あるいは、まあまあ新しいAndroidかiPhoneを使っているのではないでしょうか。私の読者層はWeb開発コミュニティですから、みなさんがWeb開発コミュニティの一員でも驚きません。
しかし、あなたの両親はどうでしょうか? あなたが独立したときに残していった古いコンピューターをいまでも持っていませんか?
ここ数年、Androidのフラグメンテーションについて耳にするようになりましたが、世界のスマートフォンの売上を調べるまではよく分かっていませんでした。
販売されているスマートフォンの3分の2は聞いたことがありません。
台数が多いだけでなく(3億8000万台のスマートフォンを部屋の中で積み上げたら、どのくらいのスペースをとるか想像できますか)、3カ月で2億台超の売り上げがあるメーカーの多くを知らなかったことに驚きました。
市場にこれだけ多くの機種があると、Web開発者は胃が痛くなってしまいます。すべての機種でテストして、機種の特徴に詳しくなれるわけがありません。
お気に入りの戦略です。
- 実機を使ってテストをする(テストを自動化する。Calibreをよろしく)
- 目的とする市場の主要なブラウザーをすべてテストする
- 目的とする市場の現実的で平均的なネットワーク条件でテストする
適切な端末でテストするためにはいくつか難しい点があります。Alex Russellは2016年、現在購入できる機種の中から市場に出回っている代表的な機種を選び、今後数年テスト用のスマホとして信頼して使える携帯電話を1機種選ぶ調査をしました。
端末に求められる基準は以下の通りです。
- どこでも入手可能、手ごろな価格、無駄なアプリは最小限で躊躇せずに使い始められること
- 2016年の平均より少し上で、テスト装置として購入する確固たる候補になる
- Nexus 5Xは発熱が不安定なので候補外。サクサク動くこともありるが、異常にもっさりするときもある(A57対A53チップセット)
- Qualcommの28nm A53チップセットを搭載したAndroid機種は多く、クワッドコアCPUが普及している。このチップセットを使った機種が一番だ
たいていのユーザーはキャリア経由で携帯電話を手に入れるので、端末は国や地域で大きく異なります。
調査の結果、AlexはモトローラのG4にたどり着きました。統計的には平均より少し上の機種で、少し注意が必要です。
- メジアン(中心値)は、遅くて、古くて安い端末である
- Moto G4は2017年の末、あるいは2018年のはじめにはメジアンになる(投資として考えてください)
- RAMは2GBあり、十分。メモリーは安くならない。格安スマホが512MBから1GBのRAMで出荷されている理由
モトローラのG4を今日から使い始めて、開発やテストをした結果が「まずまず」であれば、もっと新しく高性能な機種を使っている人にはすばらしい結果となるでしょう。
滑らかでサクサクのユーザーエクスペリエンスを考える際、機種の仕様は本当に重要な要素です。特にインタラクションや画面表示にJavaScriptを使っている場合はなおさらで、アプリの動きはローカルのシングルコアの性能に依存するのです。
性能の低い機種は遅く感じますが、新しい機種は何ページも同時に処理します。
自動化
実機でのテストは限定的になる可能性があるのでWeb Page TestやCalibreを活用します。
実機は共感や理解を得られます。チーム内でテストが当たり前の作業にすることが重要です。継続的インテグレーションプロセスと同様、性能の変化を時間軸で把握するために、定期的に実施するするために自動化します。
Addy Osmaniは「JavaScript Start-up Performance」で、さまざまな機種で1MBのJavaScriptを構文解析(構文解析です、実行ではありません)するのに必要な時間を調べています。
現在、JavaScriptの中央値は620Kbです。多いように思えますが、GZipされているので、解凍すると2~3MBになります。遅い機種では数秒間はほとんど応答しなくなり固まります。
実機でテストは非常に重要です。1000ドルするiPhoneと比較的新しいMacbook Proの性能はほぼ同じですが、現実は違います。
あなたの仕事はユーザーエクスペリエンスを深く理解すること
ここまでの情報で「もっと良くしなければ」と不満を感じて、課題を見つけてくれればうれしいです。もっとよくする必要があるのです。
Webの本質は変化です。一定のものはありません。エクスペリエンスはコンテクストによって大きく変わります。
Web開発コミュニティでは、Webは毎日使うものと使わないもの2種類あります。
場所によってネット接続の状態が変わるのは知っています。接続の悪い建物の中、会議場、飛行機、トンネルの中、なんらかの理由でモデムの再起動が必要なこともあります。
ネット接続が速い3000ドルもするコンピューターをターゲットに最適化しても意味はありません。
殻を破って外をのぞくと、大切な「ユーザー」のための、美しく、高速で、効率的な、楽しいユーザーエクスペリエンスを構築する努力が足りないと気がつきます。
お金持ちの西側先進諸国のWebを作るのではなく、World Wide Webのために制作しましょう。
Webの高速化を、すべての人のために。
この記事に掲載した情報を集めるのを手伝ってくれた友人とヒーローたち。Karolina Szczur、Addy Osmani、Alex Russell、Bruce Lawsonに感謝します。
記事のオリジナルは、Mediumに掲載されました。
(原文:Building a Better Web with Automated Testing on Real Devices)
[翻訳:関 宏也/編集:Livit]