新SDKでは“ネイティブアプリのように扱える”
HTML5ベースのアプリ開発が可能に
グリーは「世界で10億人が利用するサービス」を目標に掲げ、グローバル展開を加速する方針を明確に打ち出している。その布石ともいえるのが、今年5月の「GREE Platform」のリリースだ。これまで日本と海外で別々に展開していたソーシャルプラットフォームを統合し、新たに世界共通のグローバルプラットフォームとして提供。これにより、グリーは世界最大規模のソーシャルアプリケーションプラットフォームを有することとなった。
プラットフォームのグローバル化とともに、開発者に提供されるSDK(GREE Platform SDK)も大幅に刷新。より効率的なモバイルアプリケーション開発を支援する新機能の搭載や、グローバル対応を図っている。
米国チームと共同でこの新SDKの開発を担当した高木氏は、まず、「GREE Platform」以前のレガシープラットフォームにおけるSDK開発について振り返る。
「レガシーSDKの開発では、gitによるコード管理やJIRAによるタスク管理は行っていたが、成果物管理は手動。リリース作業やQA(Quality Assurance)、確認用アプリケーションの作成などもエンジニアの手作業で、作業が属人化しがちだった。それでも、ほとんどが少人数での開発だったので、何とか運用できていたのだと思う」
今回のプラットフォーム統合・グローバル化に伴うSDKの刷新では、エンジニアの人数や作業量、作業期間なども大幅に増えることは明らかだった。そこで、グリーでは開発体制を大幅に変更したという。
「まず、開発スタイルは数か月周期の反復型開発からスクラム開発に変更し、1スプリントを2週間としてそれを約半年間回した。JIRAの運用ルールなども見直し、粒度に応じたタスク定義やチケットのオープンからクローズまでのフロー化など、より定型化された管理が行えるようにした」(高木氏)
さらに、コード管理ではGitHubを導入。Tech Lead(テクニカルリーダー)を設定し、Pull Requestの機能を用いたコードレビューによって、Tech Leadの承認がなければ最終的にコミットできないフローとすることで、コードの品質を保てるようにした。
そして、高木氏が「今回最も大きな変化であり、最も役に立った」と強調するのが、Jenkinsの導入だ。
「GitHubと連携してコミットがあると自動的にビルドチェックが走るとともに、自動でユニットテストを走らせたり、コードカバレッジを評価したりできるので、コードのほかにも成果物に対する評価が容易に行えるようになった。ビルドやユニットテストの自動化で高い品質を保持できるうえに、開発者の手間も大幅に削減されたのは大きなメリット」
もちろん開発体制だけでなく、SDK自体の機能も大きく変わっている。中でも今回特に強化されているのが、JavaScriptを介してネイティブコードを呼び出す「ネイティブブリッジ機能」だ。
「グリーでは『GAWADAKE』と呼ばれるHTML5ベースのWebViewアプリケーションを作るためのExtension SDKを提供しているが、日本ではこのWebViewアプリの需要が非常に大きい。我々としても、WebViewを活かしつつ、さらにネイティブの機能を呼び出して、よりネイティブアプリに近い感覚で扱えるアプリケーションを実現する仕組みを提供する必要があると考えていた」(高木氏)
GREE Platform SDKでは、ネイティブのさまざまな機能をJavaScriptから呼び出し、さらにその実行結果をWebViewに返せる仕組みを提供。これにより、WebView上からもネイティブコードを読んでいるかのように振る舞うことができる。
「もちろん、ネイティブの機能をそのまま利用することも可能。例えば、現在、日本ではHTML5ベース、米国ではネイティブベースのアプリケーションの需要が大きいが、各国のデベロッパーがそれぞれの希望に応じたアプリケーションを開発できるように、GREE Platform SDKではさまざまな選択肢を用意した」(高木氏)
(次ページ:グローバル開発の課題となったのは、時差や暦、エンジニアの方向性の違い)