mixiエンジニアがおくるソーシャルアプリ開発実践講座

第4回 社内ハッカソンが育むmixiエンジニアの開発者魂!

この記事を読むのに必要な時間:およそ 2 分

システム構成とか,APIとか

コアとなるバーコードの読み取りには,zxingというライブラリを使用しています。zxingはオープンソースのバーコード処理ライブラリで,Androidはもちろん,Ruby,C#,C++,iPhone(Objective-C)でも使用できます。

zxingはバーコードの読み取り以外に,バーコードの生成などができる高機能なライブラリになっています。しかし,これらすべてをmixiのAndroidアプリに組み込むと,不要な機能まで組み込んでしまい,アプリケーションのサイズが肥大化してしまうため,少し工夫をしています。どうしているかというと,EAN8,EAN13,ISBNコードの読み取り以外の機能を削除して,サイズの増加を最小限に止めています図1)⁠

図1 バーコード関連のクラス

図1 バーコード関連のクラス

バーコードの値から商品を検索するには,他社が公開している商品検索APIを使用しました。商品検索APIを使用するときにも一工夫しています。商品検索APIの仕様が変更になった場合でも柔軟に対応できるように,公式アプリから直接APIを使用せずに,一度mixiのサーバを経由するようにしました図2)⁠

図2 バーコードチェックのロジック

図2 バーコードチェックのロジック

  • ① バーコードを読み取る
  • ② 読み取った値をmixiのサーバにリクエストとして送る
  • ③ mixiのサーバから商品検索APIにリクエストを送る
  • ④ 結果を受け取り,Androidアプリケーション用にレスポンスを作成する
  • ⑤ Androidアプリケーションにリターン

公式アプリから直接商品検索APIを使用することも可能ですが,この場合,APIの仕様が変わると,公式アプリを改修して再配布しなければなりません。再配布後もユーザがいつ公式アプリをアップデートするかは制御できないため,アップデートするまでの間,エラーになり使用できない状態が続いてしまう恐れがあります。しかし,mixiのサーバを経由すれば,公式アプリケーションとmixiとの間のやりとりは保証できます。商品検索APIの仕様が変更になった場合は,サーバ側のプログラムを改修するだけで,公式アプリ側には影響を与えずに済みます。

まとめ

実際にプロジェクト化してから,調査/設計が0.5ヵ月,サーバサイドの実装が0.5ヵ月,Android側の実装が1.5月の合計2.5ヵ月でリリースできました。

WC2.5は2回目も開催され,ここでもさまざまなアイデアに溢れた機能,サービスが誕生しました。togetterに第1回,第2回の模様がありますので,よかったら併せてご覧ください。近く第3回が開催されます。この中から,また世に出る機能が誕生すると思います。

ミクシィには,WC2.5以外に社内サークル制度を利用し,月に1回,技術や興味などを語り合うライトニングトークの開催,四半期ごとに募集されるinnovation50という制度などがあります。innovation50は,エンジニアドリブンなイノベーションを生み出す制度で,提案の承認が下りれば50日間が与えられ,プロジェクトマネージャとして機能を開発できます。

ここで紹介している制度以外にも,エンジニアとしての力を発揮する場が社内には溢れており,さまざまなチャレンジができます。通常の業務以外でも,私たちはこのような取り組みを行い,少しでもmixiをより良いサービスにするよう努めています。

mixiでは開発エンジニアを募集しています。

詳細はこちら
http://career.mixi.co.jp/

著者プロフィール

佐藤友信(さとうとものぶ)

(株)ミクシィ パートナービジネス推進部 開発グループ