PR

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

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスのご案内

関連記事