全体概要

本セミナーは、2015年という転換期におけるモバイル・アプリ開発の構造的変化を、Facebook Parseを中心軸に据えながら俯瞰する講義です。2012年にZuckerbergが「HTML5への過度な賭け」を最大の失敗と認めた [p.2] 一方、2015年のf8カンファレンスでは「FacebookはWebを憎んでいない」 [p.3] と宣言されました。この一見矛盾する二つの発言の間に、本講義が照らし出そうとする技術史的な断絶と連続が凝縮されています。

モバイルは今や「人類史上最大のプラットフォーム」と呼ばれ、セルラー接続数が地球上の人口を超える規模に達しています [p.16]。同時に、モバイルCPUの処理性能は指数関数的に向上し、PCと肩を並べるまでになりました [p.18, p.19]。こうした物理的な変化が、アプリ開発の重心を「サーバーサイドのWebアプリ」から「モバイルサイドの開発」へと不可逆的に押し動かしています。

この移行を象徴するのが、Facebook・Amazon・Microsoft・Twitterが相次いで投入したモバイル向けクラウドバックエンドサービス群です [p.11]。中でもFacebook Parseは、Parse Objectという「モバイルとクラウドの間を自由に行き来するRemote ObjectかつData Object」という独自のコンセプトで、新しいアプリ開発スタイルの典型を体現しています [p.62]。非同期処理のデフォルト採用、Promiseによるコールバック地獄の解消、強力なPUSH通知機構、クラウドサイドで動作するCloud Codeなど、Parse の設計思想は従来のWebアプリとは根本的に異なります。

さらに、本講義はParseに留まらず、FacebookがHTML5への反省を踏まえて構築した新世代Web技術——Flux、React、React Native、GraphQL+Relay——の連鎖的な展開を追います。「Write once, run anywhere」を否定し、「Learn once, write anywhere」を掲げるReact Nativeの哲学 [p.58, p.59] は、Webテクノロジーとネイティブ開発の関係を根底から問い直すものです。本セミナーは、こうした技術変革の全体像を、具体的なコードと設計思想の双方から丁寧に解説する、2015年春の時点における必読の技術的俯瞰講義と言えます。

講義のロードマップ

ここでは、セミナーの講演資料がどのようなパートから構成されているかを示します。また、それぞれのパートのポイントを紹介します。

■ Part 1: モバイル・アプリをめぐる動向

アプリ開発の主舞台が「Server/Client」から「Cloud/Mobile」へと移行しつつある構造的背景を、ハードウェアの進化と開発スタイルの変化という二つの軸で説明します。従来のサーバーサイドWebアプリが抱える負荷・トラフィック・プログラムとViewの分離困難といった問題が、「Thin Server Architecture」という2008年のコンセプトの再注目につながっていることを示します [p.26]。

■ Part 2: Parseの世界

Parse Object、Query、Promises、PUSH、Cloud Codeという5つのコア機能を、具体的なコード例(JavaScript・Android Java・iOS Swift・.NET C#の4言語対応)とともに詳解します。Parseの設計思想は「モバイルサイドプログラミング+最小限のCloud Code」というThin Server Architectureの実践であり、全ての非同期メソッドがPromiseを返すことでコールバックのネストを排除しています [p.114]。

■ Part 3: Web技術の新しい展開

ParseとReactの統合(Parse+React)から始まり、React Native・GraphQL+Relayへと連鎖する「Facebookの新世代Web技術スタック」を解説します。MVCの双方向データフローを一方向に整理したFluxを出発点に、「UIのみに特化したJavaScriptライブラリ」としてのReactの設計哲学を示し、最終的にはNative UIコンポーネントをJavaScriptから操作するReact Nativeの「Learn once, write anywhere」戦略へと帰着します [p.176, p.182, p.217]。