アプリのアイデアはどこから?
CodeZine ► Bluemix Challengeに応募した理由を聞かせてください。
猪谷 ► IBM developerWorksの記事を読んでBluemixに興味を持ち、コンテストが開催されることを知って応募しました。
カマール ► 新人研修の一環としてWebアプリを開発することになったことがきっかけです。クラウドでの開発に興味があったのですが、PaaSのBluemixの存在を知って、応募することにしました。
小木曽 ► 大学でBluemixを紹介する授業があり、Bluemixのコンテストを知りました。これまでWebアプリ開発の経験がなかったので、これを機会に学んでみようと思い、応募を決めました。
川岸 ► 言い出したのは私で、小木曽がアイデアを出しました。その後、青木と古川を巻き込んだ形です。
CodeZine ► Bluemix Challengeでは、アプリのアイデアが審査のポイントになりました。アプリのアイデアをどこから得ましたか?
猪谷 ► まず、BluemixとiOS 7のiBeaconを使って何かを作ってみたいと思いました。クラウドを使うこと自体が初めてだったので、いろいろなサービスがどのように連携できるかを考え、最終的に仕組みとして一番わかりやすいクーポンを選びました。そのため、同じようなビジネスモデルであれば、クーポン以外のものでもカスタマイズ可能な仕組みになっていると思います。
カマール ► 毎日のようにチャットを使っているので、チャットアプリを開発しようと考えました。せっかくなら、楽しくて便利なものを作りたいと思い、個人の経験から何を作りたいかを考えました。会社では、私は英語が得意ですが、他の社員は当然日本語が得意なので、コミュニケーションを取るのが大変な場合があります。日本人の友人も多いのですが、友人に日本語でうまく言えないことがあるし、逆に友人も英語でうまく言えないことがあります。そこで、自分の言葉を翻訳できる機能を付けようと思いました。
小木曽 ► 研究などで徹夜が続くと、どこで睡眠を取れば授業を乗り切れるだろうか、と思うことがあります。そんなときに便利そうなスマホなどの睡眠アプリは、睡眠の質や量を計測してくれますが、計測するだけでどこでどのように睡眠を取ればよいかは教えてくれません。そのため、睡眠を提案する部分を自分たちで作っていこうと考えました。実際に睡眠に関するデータを蓄積していたので、それを何とか使いたかったという理由もあります。
川岸 ► 睡眠データとGoogleカレンダーの予定から睡眠を提案するためのアルゴリズムは、みんなで討議して決定しました。その他にもいろいろとやりたいことがあったのですが、今回は間に合いませんでした。
ポイントはいかに手を動かさずに実装するか
CodeZine ► アプリの開発ではどのような機能や言語を使いましたか?
猪谷 ► サーバにはNode.jsとJavaScriptを使いました。Twilioとの連携ではPHP、iOSで動く部分ではObjective-Cを使っています。インターフェイスには、Webアプリ開発のフレームワークであるjQuery Mobileを利用しました。
カマール ► サーバでNode.jsとJavaScriptを使いました。また、チャットアプリのインスタンス管理にRedisを使っています。いろいろなデータベースがありますが、Redisのキーバリューストアが高速であることから、選択しました。言語の自動認識と翻訳には外部のAPIを使用しています。
小木曽 ► 私たちが使ったのもNode.jsとJavaScriptです。睡眠や活動のデータはJawbone UP(運動や睡眠などのモニターするリストバンド)で蓄積します。また、Googleカレンダーに登録した予定を読み込んで利用しています。
CodeZine ► Bluemix Challengeはアプリケーションコンテストには珍しく、コーディングテクニックを競うものではありませんでした。また、なるべくコードを書かずに済む点が、BluemixをはじめとするPaaSのメリットと言えます。実際に書いたコード量はどれくらいですか?
猪谷 ► 一番多くコードを書いたのはiOSで動く部分です。その他はサービスとの連携部分ですが、それほど多くはありません。今まで経験してきたアプリ開発と比べると、全体的にコード量は少ないです。
今回Node.jsを初めて使ったのですが、結構簡単にコードを書けるんだなと思いました。iOSと他のサービスとの連携はJavaScriptを介してiOSの特定のAPIを利用するというイメージで、こちらも慣れると簡単でした。
カマール ► Node.js、JavaScript、HTML、CSSを合わせて1,000行くらいです。コード量が多かったのは、サーバ管理やRedisのキーバリューストアを扱う部分でした。翻訳APIを呼び出す部分は数行のコードで済みました。
青木 ► WebのUIで200行くらい、それ以外で400~500行くらいです。Bluemixをはじめ、Node.jsやJavaScriptも使うのは初めてだったので、コードを書くことより、その前に使い方を理解するほうが時間がかかりました。
CodeZine ► コードを書くための開発環境には何を使いましたか?
猪谷 ► それほどコード量が多くないのと、1人で開発していることもあって、EmEditorというテキストエディタでコードを書き、cfコマンドでデプロイを行っていました。
カマール ► JazzHubを選択しました。Bluemixでアプリを作ると、ワンクリックでGitリポジトリが作られ、すぐにJazzHubでコーディングできるようになります。他の開発環境を使うと、自分でコードをダウンロードしなければなりません。また、スマホなどどこからでもJazzHubに入ってコードを修正できるので便利です。
小木曽 ► JazzHubを使いました。慣れないうちは、修正したコードがデプロイされず、戸惑ったこともありました。デプロイしたいコードは、自分の場所から共有の場所に移さなければいけないんですね。
BluemixからワンクリックでJazzHubに飛んでいけるのは、私もすごく便利だと思います。