チーム開発を円滑にするための必須ツール

2012年6月7日(木)
西見 公宏(にしみまさひろ、@mah_lab)

はじめに

先日Googleが「世界のスマートフォン利用に関する大規模調査」にて2012年度版の調査結果を公開したところによると、日本のスマートフォン普及率は20%だそうです。昨年2011年は6%だったので、約3倍普及していることになります。

このようにますますスマートフォンのアプリ需要は増大しており、その開発も、より効率的に行っていく必要があります。

本連載では、DaVinciWare様と株式会社ソニックガーデンで共同開発したiPhoneアプリ「AnkiBlank」を題材に、サーバサイド連携を必要とするスマートフォンの開発について、事例を交えて説明をしていきたいと思います。

iPhoneアプリ「AnkiBlank」のご紹介

突然ですが、中学生や高校生の時に暗記シートを使って単語を覚えていた経験はありますか? 個人的には歴史の年号や出来事を、文脈と一緒に覚えるのに使っていた記憶があります。「AnkiBlank」はまさにこの暗記シートをアプリ化したものです。

「AnkiBlank」では覚えたい部分を空欄にして、穴埋め問題の作成を行うことができます。空欄部分をタップすると隠した単語が表示され、暗記に活用することができます。

 図1:覚えたい部分を空欄に

図2:学習用のメモや、復習用の印をつけることもできる

問題文に使用する文章はWebから作成することができ、その問題をiPhoneに同期して使用します。iPhoneで設定したデータや、閲覧回数等の学習履歴はWeb側でも保持されるので、iPhoneのデータを消失した場合でも「AnkiBlank」の学習データは消えることはありません。

図3:iPhoneとサーバデータの同期

このように、「AnkiBlank」はiPhoneアプリだけで完結しているソフトウェアではなく、データの作成や保存のために外部サーバを必要としています。

AnkiBlankを支えるアーキテクチャ

AnkiBlankでは、外部サーバとして、安価に使用できるHeroku(http://www.heroku.com/)というPaaSをステージング環境、本番環境で活用しています。Herokuを使用する利点は様々ですが、今回選定した理由は以下の通りです。

  • 今回Web側の機能を開発しているRuby on Railsとの親和性が極めて高い。
  • 基本機能が無料で提供されているため、初期コストがかからない。
  • アドオンと呼ばれる追加機能が充実しており、開発コストを低減することができる。
図4:AnkiBlankアーキテクチャ図
著者
西見 公宏(にしみまさひろ、@mah_lab)

SonicGarden プログラマー。
ソフトウェアパートナーシップによる受託開発をRuby on Railsで携わる傍ら、エンタープライズ向けCRM「Keepintouch」のメインプログラマーを務める。ブログはこちら

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています