昨年9月から約2ヵ月間、東京地下鉄株式会社(以下、東京メトロ)が主催するオープンデータ活用コンテストが開催されていました。コンテスト公式サイトはこちら。
どんなコンテストだったのか
東京メトロが提供する「全線の列車位置、遅延時間等に係るデータ」を用いて、Webアプリ、Androidアプリ、iOSアプリ、Windowsストアアプリのいずれかを開発するというものでした。
開催(開発)期間
2014年9月12日(金)~2014年11月17日(月)
提供されたデータ
列車の方向や列車番号、種別、始発駅・行先駅、時刻表、運賃といった固定的な情報から、在線位置や遅延時間といった流動的な情報まで多岐に渡り、各データは1分ごとに更新されるとのことでした。
データ形式は“JSON-LD”だったのだけど、いわゆる“JSON”とどのように異なるのか、を調べるところから始まりました。(結果的にはあまり意識せずに使えました)
作る物(提出物)
オープンデータを用いたアプリそのものは当然のことながら、公式サイトによると、以下の物が提出物となっていました。
アプリの説明 (800文字程度)
写真、スナップショット (5枚以内)
説明動画(最大再生時間5分)
アプリケーションマニュアル(アプリケーションの動作、操作方法)
アプリケーション公開URL (Google Play、App Store、Windowsストアのほか、応募者が設定した任意のWebサイト)
アプリ内で利用したデータ
その他諸々
ひとりで開発してもいいし、グループ(法人含む)で開発してもよい。ひとりが複数のアプリを応募してもいいし、複数のグループに所属してもよい。この辺りの参加形態はかなり柔軟なようでした。学生・社会人問わず。
また、コンテストなので審査があり、上位入賞で賞金も出るという熱さ。
参加までの経緯とチーム作り
さほどエピソードがあるわけではないのだけど、Facebookで偶然このコンテストの開催を知り、いろいろと調べているうちに「なんだか面白そうだな」と。きっかけは偶然と、単純な気持ちでした。
ただ、各種スマホアプリの開発経験はほとんどゼロに等しかったので、ガチで入賞を狙う、というよりは自分達の経験のため、という意味合いが強かったです。もちろん可能なら狙いたかったけれど。
仲間集め(エンジニア)
テスト勉強をするならひとりのほうが捗るけれど、おそらく右往左往することになるであろうアプリ開発は複数人であれこれやりたい!ということで、まずは大学時代の後輩に声を掛けました。
いつも僕の企画するイベント事や飲み会に来てくれる彼は、今回も快くOKしてくれました。ひとまず自分を含め、エンジニア2名の開発(できそうな)体制が整いました。
仲間集め(ディレクター、又はデザイナー)
知り合いのできそうな人にあたってみようということで、僕は会社の同期で少し前まで同じサービスを担当していたディレクターさんに声を掛けてみることにしました。
仕事が忙しいとは思いつつも、このコンテストの話をしてお願いしてみたところ、こちらも快くOKしていただき、晴れて3人のチームが発足したのでした。
何を開発するのか
そろそろコンテストの詳細が発表される、といった頃、とりあえず集まって話し合いの場を設け、開発するアプリの種別(Web?Android?iOS?Windows?)を決めました。
Androidアプリ
題材が東京メトロ(交通、地下鉄)のオープンデータということを考えた時、利用シチュエーション(デバイス)はスマートフォンがよいのではないか、ということでAndroidアプリと相成りました。
ふたつめとしては、単純に「スマホアプリの開発をしてみたい!」です。でも、結構これが大切だったと思います。興味はモチベーション維持にも一役買うので。
iOSではなく、Androidに決めた理由
これは開発言語とアプリ公開のハードルでした。つまり、わりと慣れ親しんでいるJavaで書くことができるという点、そして、アプリストアに登録されるハードルはiOSのほうが高いと感じたためです。
どんなアプリを開発するのか
これは3人でアイディアを出して話し合ったのだけど、なにぶんアプリ開発は初心者ということもあり、物自体の機能的な面は少なめにして、アイディアというか、ターゲット層や利用シチュエーションをピンポイントで絞ろう、と。
まずはアプリとして形にすること(動くこと)を念頭に置き、最低限の機能の実装を最優先としました。あとは時間との戦いです。
以下は、最初のアイディア構想時に書き出したホワイトボードのメモ。
開発環境
Androidの開発環境といえば、以下の2つのどちらかとされていました。(過去形?)
Android Studioは今でこそ正式版がリリースとなっているけれど、当時はまだベータ版だったため、どちらかと言えばEclipse + ADTのほうが主流な風潮があり、Web上の情報もそちらが多かったように思います。
という背景もあり、今回はEclipse + ADTで開発をスタートすることにしました。
正確には、開発環境の整備にも多少時間を要してしまったのだけど、後にAndroid Studioへの乗り換えを行うこともあるので、Eclipse + ADTの構築等に関しては割愛します。
というわけで-準備編-はここまで。