FacebookのiOSアプリがひどい技術的な理由

FacebookのiOSアプリがひどい技術的な理由

  • Oligur
  • 0
  • vyzf
FacebookのiOSアプリがひどい技術的な理由
  • ニュース
It's not just carelessness and ineptitude that makes this app so terrible.
このアプリがひどいのは、不注意と無能さだけではありません。

Facebook の iOS アプリはひどい。

これは意見の問題ではなく、事実です。このアプリは、米国のiTunes App Storeで平均2つ星の評価しか得られない、ひどい評価の山です。

アプリは遅い。通知も機能しない。全体的にバグだらけ。モバイルSafariを開いてfacebook.comと入力すれば、あらゆる点で使い勝手が良くなるはずだ。

Facebookのような企業が、トラフィックの大部分をモバイルから得ているにもかかわらず、どうしてこんなにひどい、使い物にならないアプリをリリースしてしまったのでしょうか?そして、なぜ改善されないのでしょうか?

結局のところ、その一部はFacebookの本質である「素早く行動し、物事を壊す」という性質によるものです。一部はバグによるものです。そして、Facebookがシステムに加えるすべての変更をAppleが承認するまで待つしか選択肢がないことも原因の一部です。

Mobtest ブログでは、Facebook iOS アプリでパケット スニッフィングを実行し、Mobile Safari バージョンでは問題なく動作するのに対し、このアプリでは通知やタイムラインなどの表示で多くの基本的な問題が発生する理由を解明しました。

この投稿自体は少々技術用語っぽいですが、要するに、Facebook iOS アプリは、iOS の UIWebView コンポーネントを使用して Facebook の生の HTML データを包む Objective C ラッパーであり、開発者がアプリ内で Web ページを表示できるようにするものであるということです。

UIWebviewも遅い。本当に遅い。Mobile Safariの強力なNitro JavaScriptエンジンにアクセスできないため、ネイティブブラウザでFacebookを読み込むよりも遅くなる。さらに悪いことに、ダウンロードする必要があるものと既にダウンロード済みのものを判断するのが全くダメで、アプリは必要な部分だけを読み込むのではなく、タイムライン全体を毎回再ダウンロードしなければならない。

Facebookアプリがなぜこのように動作するのでしょうか?その理由の一つは、ウェブサイトがHTMLで記述されており、HTMLはBlackberry、Windows Phone、Androidデバイスなど、様々なデバイスで表示できるからです。

FacebookはなぜObjective Cを使わないのでしょうか?大きな理由の一つは、Objective Cは画像の周りにテキストを配置したり、ボタンに様々なテキストラベルを付けたりといった流動的なレイアウトを実現するのが苦手だということです。しかし、肝心なのは、Facebookがデスクトップを含む複数のプラットフォームで常に進化を続ける製品であり、Mobtestが説明しているように、HTMLの方がFacebookの展開プロセスに合致しているということです。

Facebookの開発者は独自のQA(品質保証)責任を負っており、その一部には、限られた数のサーバーにコードをプッシュし、結果を確認してからさらに多くのサーバーにプッシュするという作業が含まれます。これを毎日、場合によってはそれ以上の頻度で繰り返します。Appleのレビューには少なくとも1週間かかるため、コード変更のロールバックは悪夢です。

というわけで、以上が、あのくだらないFacebookアプリを削除して、Safariのブックマークを使うべき技術的な理由です。

出典: Mobtest
出典: Reddit