
アフリカ旅行がFacebookのAndroidアプリを発展途上国向けに改良する一助となった
ブレア・ハンリー・フランク著

マーク・ザッカーバーグ氏がFacebookで目指す目標の一つは、「次の50億人」をこのソーシャルネットワークに呼び込むことです。しかし、それは発展途上国における同社の広告支出を増やすほど単純なものではありません。
では、どうすればそれが実現できるのでしょうか?Facebookシアトルオフィスのエンジニア、アレックス・ソウロフ氏は同僚とともにアフリカを訪れ、高速モバイルネットワークを利用できないFacebookユーザーが直面する課題を特定しました。
さまざまな低価格の Android デバイスと最新バージョンの Facebook アプリを駆使したチームは、当時の Facebook のアプローチがアフリカ現地のユーザー体験と完全に一致していないことを発見した。
「断続的で低帯域幅のネットワーク接続とデバイスのメモリ不足が重なり、読み込み時間が遅くなり、頻繁にクラッシュするようになりました」と彼は本日の投稿で述べた。「月間データプランの容量を40分で使い切ってしまいました。」
この調査以来、FacebookはAndroidアプリのパフォーマンス向上に向けて様々な対策を講じてきました。テストに使用した低価格スマートフォンはシングルコアプロセッサしか搭載していないことが多かったため、Facebookのエンジニアは、アプリの起動後に特定の機能の初期化を待つことで起動時間を改善できることを発見しました。
さらに、Facebookのエンジニアは、企業が異なるデバイス向けに同じアプリの複数のバージョンを提出できるGoogle Playストアの機能を活用し、アプリのサイズを縮小しました。ソウロフ氏と他のエンジニアたちは、アフリカのユーザーがアップデートをダウンロードしてインストールするための十分な空き容量がないため、古いバージョンのアプリを使用していることが多いことを発見しました。現在、Androidアプリは今年初めと比べて65%小さくなっています。
スーロフ氏によると、Facebookは断続的なモバイルデータ接続への対応を改善するために、Androidアプリ内のネットワークスタックもアップグレードする必要があったという。同社は現在、Squareが提供するオープンソースプロジェクトであるOkHTTPを活用し、応答を待つことなく迅速に操作を再試行することで、断続的なネットワーク接続への対応を支援している。
このエピソードは、安定したネットワーク接続とハイエンドモバイルデバイスを備えた地域に拠点を置く企業が、他の市場でのアプリの普及に悪影響を与える可能性のある制限をいかに簡単に見落としてしまうかを浮き彫りにしています。すべての企業がアフリカにエンジニアチームを派遣する資金を持っているわけではありませんが、こうした制限を念頭に置くことで、他のアプリのパフォーマンス向上に役立つ可能性があります。