降りつぶし.netとは
弊社ではWebアプリケーション「降りつぶし.net」、iOSアプリ「i降りつぶし」、Androidアプリ「降りつぶしroid」を開発、無償公開しています。これら3つが「降りつぶし管理のソリューション」であり、実際、降りつぶしを趣味とする筆者個人も大いに活用しているところです。
……と言っても何のことやら。そもそも「降りつぶしとはなんぞや?」と思われる方が大半でしょう。実はこれ、鉄道趣味の一種で「鉄道駅すべてに、鉄道を使って訪問しつくす」というものです。
鉄道ファンならば、「乗りつぶし」という言葉はご存じかもしれません。そちらは、「鉄道路線すべてに乗りつくすこと」です。それをさらに先鋭化したのが降りつぶしで、鉄道趣味の「過激派」と称される代物なのです。
その詳細や歴史的背景については上記リンク先のたいへん優れた解説をぜひお読みいただくとして、要は、「日本中の各鉄道駅に、いつ訪問したか」を管理するソリューション、それが「降りつぶし.net」です。
開発のきっかけ
筆者は鉄道趣味活動を始めて10数年、「乗りつぶし」を2006年9月に達成し、また自分の名前の入った駅(米沢駅、泉駅など全国で400余駅)も訪問しつくしました。次は「降りつぶし」だ! とマニア心が向かわせます。
ただ、全国の鉄道路線に乗り終えたとは言え、それは「線」を通過しただけ。「点」に立ち寄る降りつぶしとしては、その時点で、2,500駅ほどの訪問に過ぎませんでした。なにせ全国の鉄道駅は約9,600駅あるのです!
それでも残り7,000駅、やるしかない。1年置いての2008年から、年間1,000駅ペースで、順調に訪問済みの駅を増やしてきました。
その結果、ついにミスが起こります。
紙ベースのメモ書きをよく紛失する筆者は、まるごとの情報流出のリスクを恐れ、当時、趣味に限らず仕事も含めて、ほとんどの記録管理をメールと脳内のみで行なっていました。全鉄道駅のリスト自体はExcelシートで管理していたのですが、降りた駅はそちらにマージせず、「鉄道旅行ブログ」へのモバイル投稿を記録としていました。
そして2010年、緻密な行程を立て、いざ駅に降り立つと、そこで感じる強烈なデジャヴ。慌ててブログを検索すると、嗚呼、1年前にここ降りてたよ、と。「ここでミスらなければあともう1駅降りられたのに」との後悔に襲われながら、次の列車までの長い待ち時間を過ごすのは本当につらいものでした。
これを東北と四国の駅で1回ずつやらかしたこと、それが、降りつぶし.net開発の直接のきっかけです。
完全無料での提供
結局のところ筆者の個人的事情で開発を決めた降りつぶし.net。しかし、せっかく作るなら自分だけでなく、ごく少数とはいえ確実に存在する、同好者が使えるものにしたい、と考えました。
しかしドマイナー趣味たる降りつぶし、ターゲット数はおそらく全国で4ケタ。そのさらに一部にしかリーチできないものに、課金対応のコストをかけるのは無駄と判断。また、自分で使うことを一義的に考えるアプリに広告、というのもいささか目障りです。
そこで無料かつ無広告とし、コストは「こういう技術を有する弊社」の宣伝費、と割り切りました。
結果として、余暇や旅先での開発を中心にすることにより、本来業務への影響は総計1人月程度で済んでいます。
基本仕様:「駅」と「日時」を管理するだけ
技術から離れた話ばかりになってしまいましたが、まとめれば以下の2点が、降りつぶし.netに最低限必要な仕様です。
- 全国全駅のデータベースを提供し、
- それらの駅に降りた(または乗った)年月日を記録できるようにする。
そして前者については、データベースを用意しメンテナンスすること自体が大変なのですが、それは第2回で詳しく紹介するとして、問題は後者です。
要求仕様1.あいまい日付対応
たとえば幼い頃、田舎に行くときに初めて新幹線に乗りました、という体験は、いつまでも忘れない思い出です。しかし、その年月日、とくに日は、まず覚えていません。あるいは、地元の最寄り駅など、そもそも何歳のときに初めて降りたのかすら覚えていないでしょう。しかし、本人に利用の記憶があるのなら、それは「訪問済み」として扱えなければならないはずです。
この対応のためには、データベース側、入力方法、どちらにも工夫が必要となります。
要求仕様2.表計算ソフトとの連携
全国9,600駅を目指すマニアにとっては、このアプリを知った時点で、数百駅~数千駅に訪問済であることが充分考えられます。筆者自身、開発開始時点で既に6,000駅以上に訪問済みでした。その記録を、PCのWebブラウザやスマホから、すべて手作業で登録するのは不可能です。
先述のような原始的管理の筆者はともかく、ネット上の同好者の多くは、表計算ソフトで管理しているようでした。そのため、表計算ソフトとの連携は必須となります。
要求仕様3.地図・現在地との連携
一方、過去の記録を入力し終えた後は、実際に駅に降りた瞬間に記録を付けられる、これもまた必要と考えました。もちろんこれは、Webアプリケーションをスマホ対応させれば済む話です。
しかし、iOSにもAndroidにも、地図や現在地情報のAPIが用意されています。スマホを他の用途に使いつつ、駅に着いた、降りた、記録を付けよう、という流れで、アプリを起動するとその駅が画面中央に来ていれば、非常に使い勝手が良い、と容易に想像できました。
よって、両スマホOS用のネイティブアプリをそれぞれ開発し、地図・現在地との連携を1つの柱とすることにしました。
要求仕様4.同期機能
過去の記録は表計算ソフト、現在進行の記録はスマホで、という切り分けは良いのですが、一方で入力したデータが、他方に反映されなければ、なんの意味もありません。
そのため、Webアプリ側=サーバ上のデータと、スマホ側=スマホ内のデータとの同期機能が必須です。さらに、スマホからWebアプリへのスムーズなユーザ認証も必要となります。
次回は駅データベース編
以上、降りつぶし.netの誕生のきっかけと、要求仕様をご紹介しました。次回は、駅データベースをどのように設計し、整備し、メンテナンスしているか、をご紹介します。