mixiが、AndroidやiPhoneのネイティブアプリと連携を進めていくためには、多くの開発者たちによってネイティブアプリが開発されやすい環境を作ることが必要だった。ネイティブアプリでなければできないことがたくさんある。ツールを用意していくことで、その開発をサポートしていくことが重要と考えられた。
そこで、菊間を中心にmixiのSDKを作り、開発者たちに提供することが決定した。
プロフェッショナルな開発者たちに対して、SDKで一体何を用意するべきか? やり方はどうしていくか? などを、チーム内のエンジニアはもちろん、企画のメンバーも巻き込んで議論しながら決めていきました。AndroidネイティブからAPIを叩けるものはなにがあるだろうか? など、とにかく情報を調べまくることも必要で色々な人たちの協力を得ながら、作るべきものを落としこんでいく作業に没頭する毎日でした。
SDKの開発は基本的に菊間一人で行っていった。
意識したことは、とにかく実際に使ってみて使いやすいモノをつくる、ということです。技術レベルに関わらず、、どのような方でも使いやすいSDKにしたいと考えていました。例えば、mixi Graph APIのインターフェースと合わせ、それに慣れていれば使いやすいようにしたり、他にもJavaに慣れていればわかりやすいようにSDKの構造をつくっていきました。
SDKのユーザーはSAP(Social Application Provider)。彼らは個人のプログラマから、企業まで広範囲にわたり、技術レベルも幅が広い。だからこそ、彼らの経験や背景、視点に合わせたSDKをどのようにつくりあげればいいのか、熟慮しながら開発していった。
SDKは薄いラッパー的なつくりにしているため、自由にアプリを開発することができるようにしています。アプリそのものには干渉しないようなSDK開発を心がけていたのでアプリ開発者が作りたいと思った機能やサービスを素直に実装しやすくできていると思います。
また、開発を楽にすることにSDKの本質的な価値があります。特にAndroidではセキュリティの担保が課題となるためsecretをアプリ上に埋め込まなくてもよいようにしています。認証認可部分もOAuth2.0ベースの拡張フローを作成し、その手順をSDKによってすごく楽に開発することができるようにしています。
SDKは一旦配布したら変更は難しい。そのため、APIが追加されてもSDKを変更せずに対応できるように設計しています。
使って楽になったと言ってもらえると嬉しい。相手が開発者だけあって、評価や感想をいただける機会は必ずしも多くはない。
社内のエンジニアやSAPの開発者に"SDKのおかげで開発が楽になった"と言われた時は素直に喜ぶことができました。 自分はあくまでも裏方に徹して、mixiとSAPをつなぐ架け橋になれるようなものを作ることができればと思っているんです。だから、普通に開発していると気付かれないような、細かい工夫を入れ込んでいます。 この辺りの表からはわからないコードの細かい工夫は、ソースコードが公開されているので、それを見て気づいていただけると嬉しいですね。
これだけのことを入社3ヶ月でほぼ一人に任された菊間。 今回のプロジェクトを振り返った上で、PCやブラウザの世界に留まらず、さまざまなデバイスに拡がるアプリの世界を、自分が用意したSDKを活用して生みだしていってほしい。
ミクシィでの開発は任される範囲がかなり大きい。そのため不安が全くないというとウソになります。ただ、わからない部分や何か技術的な問題にぶつかった場合、社内に、それを解決するアイデアや技術を持ったメンバーがいることは、入社三ヶ月くらいだった自分が、これだけのプロジェクトを実装まで含めてやりきることができた大きな要因だと思います。今回リリースしたSDKが多くの開発者に使われ、ネイティブアプリだからこそできるような新しくて面白いものが生まれてくるといいなと思っています。

より使いやすいSDKの開発にあたり、エンジニア自身の経験だけではなく、多種多様な情報収集が行われた。