開発の最近のブログ記事

 新幹線予約アプリEX489はまだまだ知られていないアプリなので、知られていない内に少しでも改良改善していくことが大事かなと考えています。

 リリース初日に「MACお宝鑑定団Blog」さんに紹介いただいたのは、とても嬉しいことでした。おかげでスタートダッシュはいい感じでした。

 
 しかし、慌ててリリースしたツケがまわって「落ちる」問題に直面。修正に四苦八苦しました。まだまだ作業は必要と思うものの、1.02で動作はほぼ問題なく、1.03で「これを最初にリリースしたかった」ぐらいにはなったと思います。

 そんなこともあって、アプリ宣伝の依頼のようなものはどこにも出していません。

 キーワード検索で発見したツイートなどにお声を掛けて「使ってみてもらえますか」という直接マーケティングの真似事をするくらいです。

 EX489は、万人が使うアプリではないので、評価していただいて関心を持ち続けていただいた方々経由で届けば、それでいいかなと思っています。

--

 7月に入り、いよいよ23日に予定されている「エクスプレス予約」サイト正式のスマートフォン対応画面の提供が近づいてきました。

 巷では「JR東海がようやくスマートフォンアプリを出す」という理解をしている人もいたり、あるいはまだこのニュース自体を知らない人もいたり、反応は様々です。

 7月23日に起こることは正確に書くと:

 ・JR東海が、従来のエクスプレス予約にある「パソコン対応画面」「携帯電話対応画面」にプラスして「スマートフォン対応画面」を提供する。

 ・JR東日本が別に、同日「モバイルSuicaアプリ」をAndroid向けに提供し、このアプリから新しく提供される「スマートフォン対応画面」が呼び出される形になる。

 ということです。

 モバイルSuicaの利用者はいろいろと便利になるわけです。そして、アプリはありませんがエクスプレス予約の利用者はスマートフォンからの予約が楽になるということです。

 公開されたスマートフォン対応画面のサンプルが限られているので、列車選択や座番リクエストをどのように表示して操作できるのか分かりませんが、少なくともいままで標準ブラウザで苦労していた事態は終わるだろうということです。

 ただ、アプリじゃないんです。上手につくればWebアプリもネイティブ並に動作するのは確かですが、さてどうなりますやら。

 いずれにしても、附属のブラウザだけでも安心して予約手続できるようになることは大変喜ばしいことです。

--

 EX489はお払い箱なのか?という問いも湧くでしょうが、これはEX489にとっても心強い話なのです。

 もしもEX489で手続きがうまくいかないという事態が起こっても、標準ブラウザで安心してリカバーできるというのは、開発者にとっても利用者にとっても有り難い。

 その上で、EX489はネイティブアプリとしてのメリットを生んでいけばよいかなと思っています。

--

 将来バージョンはこんな構想です。

 ・予約取消への対応
 ・アカウントを2つ登録できるようにする
 ・パスワードロック画面
 ・出張番号の登録

 ・予約手続の履歴を保持するようになる
  →現在予約中の新幹線がオフラインでも確認できる
  →同様に、夜間サービス時間中にも確認できる
  →これまで利用した駅区間を、新規予約で簡単に再選択できる
  →次の予約情報をメイン画面に表示できる

 ・現在時間と連動したリアルタイムの処理
  →列車選択画面で、各列車が後何分後に出発するか残り時間表示する
  →予約列車の時刻が近づいたら通知する
 
 ・現在地との連動
  →駅名を入力する際に現在地に近い組み合わせの駅名を自動選択する

 などなど...

 もとろんこれらはかなり先の将来ですが、こうしたエクスプレス予約アプリがあれば、本家にスマートフォン対応画面があってもアプリの方を使ってもらえるのではないかと思います。

 たぶんスマートフォン対応画面が提供されれば、PC画面よりも簡単な構造でしょうから、それを利用したアプリが登場してくるでしょう。楽しみですね。

 辛辣なレビューに凹みながらも、問題発生原因を突き止めるべく、あれこれ調べたり試したリを続けていた。

 自分が試す限りにおいて、ほとんど問題が発生しない。ところが、全く同じ機種とOSバージョンにも関わらず、タップするだけで「落ちる」という報告もある。

 どうもエクスプレス予約の利用実態や設定が異なっていることが起因しているのではないかと疑って、あれこれツイートして情報を寄せてもらっていた。

 Expressカード会員とJ-WEST会員の違いはクリア。これは自分自身で両方試した。個人会員と法人会員の違いだろうかと考えたが、これも報告をいただいてクリア。出張番号の件を除けば、両者の手続きは同じと考えてよさそうだ。

 となると、特定のタイミングでのアプリ利用か、特定の列車を選択することが原因なのだろうか。しかし、これに関してはレビューだけではわからなかった。

 やがて、使用機種とOSバージョン、選択した駅区間と列車名を書いてくださるレビューが投稿された。それを見ると、本当にふつ〜に落ちるらしい...。

 ?????

 もはやアプリ側で想定している以外の挙動をエクスプレス予約サイトがしているとしか原因が考えられない。

 エクスプレス予約は、あらかじめよく使う列車名や予約条件を登録できる機能がある。人によって違うとすれば、ここの設定だろう。そこで、設定条件を変えて使用してみた。

 すると見事に「落ちた」^_^;

 なるほど、ここが原因だったようだ。

 アプリ側としては、どんな設定されていようがその時々に表示される情報を処理するように作ってあったはずだが、よくよく調べてみると座席位置を「指定なし」とした場合にサイト側のHTMLが設計と違う挙動で送られてくることがわかった。

 ははは... 泣いちゃうわ。

 過信は禁物だなと反省。レビューアの皆さんには大変申し訳ない結果となった。

 こればっかりは実際に広範に使ってもらわないとわからない。

--

 とにかく、原因がわかれば対処することができる。さっそく作業をして、その他の微調整と合わせてver1.01とした。

 まだ未対応の部分は山ほどあるが、少しずつ追加できればと思う。

 開発を続けていた新幹線予約アプリ(開発名ExRsv)が、最初の完成形を見せたので、App Storeに申請することにしました。

 完成を急いだのは、エクスプレス予約サイトのスマートフォン正式対応アナウンスもありましたが、それより私自身の本業との関係でプログラミング作業を中断しなければならないタイミングが迫ってきたため、そうなると完成が劇的に遅れてしまう危惧があったからです。間を空けると忘れちゃうでしょ... ^_^;

 当然のことながら完璧の域には至っていませんが、なるべく早く届けることも大事かなと思いましたので、ver1.0をお届けします。

 開発名「ExRsv」あらため、「EX489」が間もなく登場予定です。

--

 このブログでは、EX予約サイトについてご紹介しながら、開発着手の様子をお知らせしてきていました。既存の新幹線予約アプリについてもレビューをしていました。

 その後、一つのアプリが公開を停止したり、EX予約のサイトリニューアルの影響でほとんどのアプリが修正を余儀なくされたり、そしてJRがEX予約のスマートフォンの正式対応を発表したり、いろいろ展開もありました。

 実は、レビューしていたときには気がつきませんでしたが、取り上げた「Rapidy新幹線予約」というアプリは、旅行カテゴリーの有料アプリ第一位をキープしているアプリだということを後から知って、ちょっと驚いたりもしてました。

 新幹線予約アプリに一定程度の手堅いニーズが有ることを改めて知ったりしたわけですが、果たしてEX489がどれほど期待に応えられるのか。開発中は出来上がるかどうかで心落ち着きがなかったですが、いまは審査を経て皆さんにいつ届けられるのか心配で落ち着かないといった感じです。

 とにかく、con3 Officeのアプリとして6月中に届くことを願っています。

 本日(5/23)、エクスプレス予約サイトのスマートフォン対応を7月23日からスタートするとJR東海から発表がありました。(→ニュースリリース

 新幹線エクスプレス予約ユーザーにとっては待ちに待った発表です。

 これでスマートフォンからの新幹線予約が使いやすくなります。

--

 とはいえ、非公式のエクスプレス予約アプリを開発中の身としては「え?もう?」という気持ちがないわけではありません。多少モチベーションにも影響しますね ^_^; 。

 まあ、予想よりは早かったとはいえ、正式対応はすでに分かっていたことですし、アプリ開発自体は続ける予定です。

 問題は、スマートフォン対応によるシステム変更がどの程度なのかということ。

 PC向けのサイトまでがらりと変わられると、せっかく開発しても一気に使えなくなってしまいますので、それだけが心配です。

 発表によるとiPadなどタブレットへの対応は今回行なわないそうなので、将来的には開発中のアプリをiPad対応させるなどして、ネイティブアプリとしての威力を発揮させていきたいなと考えています。

--

 発表資料を見て笑ってしまったのは、公開予定の公式スマートフォン対応画面と私が開発中のアプリのボタン配置の配置に似ているところがあったこと。

 スマートフォンの小さな画面に情報とボタンをどのように配置するのか考えるのは大変なんですが、その苦労を共有しているのかと思うと自然と笑ってしまいました。

 いずれにしても7月23日を前に、既存のアプリもスマートフォン用の画面に対応するように変更を加えてくるでしょう。いろいろ楽しみな夏です。

 GWに入りましたが、夜な夜なプログラミングをして過ごしています。開発準備中の新幹線予約アプリもまずは形らしきものから取り組んでいます。まだまだ先は長そうです。



 これは座番リクエストの画面をデザインしてみているところです。雰囲気は出ているかなと思います。問題は中身ですけれど...。

--

 EX予約は、会員になってアクセスすると様々なメニューが用意されています。EX予約サイトのガイドを見てみると「新幹線を予約する」方法が説明されおり、メインメニューに様々な項目が用意されているのが確認できます。


 すべてのメニューをサポートするとなると開発時間がかかります。そこで、よく使われるサービスに特化してサポートすることになります。

 「新規予約・購入」の「ご希望時間の列車を検索して予約」と「ご予約内容の確認・変更等」の「予約照会/変更/取消」が必要になりそうです。

--

 アプリ構想段階では、「新規予約」だけ出来ればいいかと考えていました。

 しかも、時間を検索して、大人1人、窓側通路側の希望だけ指定して、あとは自動的に設定された座席を購入できればいいかなと思い描いていたのです(上のリンク先の使い方です)。

 ところが、いざニーズ調査のためにあちこちのブログやコメント、ツイートを参照していくうちに、見込みユーザーの利用方法が想定と違っていることに気がつきます。


 一つは、「予約変更」にEX予約の大きな価値を見出しているということでした。ビジネスでは、仕事の進捗次第で予約を変更しなければならない場面が多いわけですが、そういうときにEX予約を利用したいというニーズです。

 もう一つは、「座番リクエスト」に対するニーズもちらほら見えるということです。EX予約には「指定なし」「窓・通路側指定」「座番リクエスト」という3タイプの座席指定方法がありますが、たとえば「号車の一番前がいい」という希望は座番を直接指定できなければならず「座番リクエスト」画面のサポートが必須になります。

 この2つをサポートすることがかなり重要であることが分かってきたのです。

--

 ただ、こうしたニーズに応えるということは、それだけEX予約サイト画面の進行が複雑になるということで、開発作業は増します。動作の失敗確率も増すわけで、なかなか悩ましい話です。

 とはいえ、ニーズに応えてこそのチャレンジでもあります。多少、端折るところは出てくるかも知れませんが、座番による新規予約と変更くらいは出来るようにしたいなと考えています。夏までにできるのかな...。

 九州新幹線も開通し、書店へ行くと新幹線に関する雑誌やムックが鉄道関係書棚に多く並ぶようになっています。

 私も新幹線予約アプリ(EX予約アプリ)を開発するにあたって、志気を高めるためと列車運行や車体の情報の理解を深めるために購入して眺めたりしています。

 いまのところ「鉄道ダイヤ情報」誌のムック『新幹線ファーストガイド』がお気に入りです。巻末あたりにある「新幹線保存車両一覧」は、懐かしい0系車両が意外にも全国にひっそりと残され活躍している様子が分かって興味深かったです。

--

 さて、新幹線予約アプリの開発をするにあたって、エクスプレス予約サービスの研究をしてきているわけですが、これに関する情報は多くありません。

 単なる交通手段の予約サービスですから、本家サイトの説明がすべて。1冊の本になるほどのことでもないため、せいぜい雑誌記事が少しあるだけです。CiNiiという論文データベースを使うといくつか探せます(こちら)。

 開発を始めるにあたってすぐ読まなければならないものは無さそうなので、いつか紐解くことにしようと思います。

 新幹線予約アプリのためには、サービスの概要もそうですが、予約サイトの仕組みを掴まなければなりません。サービスに関する情報も少ないところで、予約サイトの情報はさらに少ないのが現実です。

--

 他の予約アプリのレビューでも見たように、EX予約のサイトはPC向けと携帯電話向けがあり、次のような特徴があります。

  • PC向け:インターネット経由からパソコンのブラウザで予約手続することを前提として作られたサイト。スマートフォン等からもアクセスは出来るが、画面は最適化されていないため困難が伴う。
  • 携帯向け:携帯電話キャリアの回線からのアクセスに限定したサイト。インターネット上からはセキュリティのためアクセスできない。各種携帯電話の画面を考慮して簡素な表示で手続きを進める。

 つまり、スマートフォンへは未対応、というのがEX予約の現状です。ただし、昨今の情勢から、いよいよスマートフォン対応にとりかかったようです(【会員の皆様へ】スマートフォンによるエクスプレス予約ご利用について)。

 「スマートフォン向け画面の構築等、システム開発をしている」と表記されていて、実現時期については明言していませんが、早くて夏、あるいは秋頃ではないかと推測されています。一日も早い実現を期待しましょう。

--

 現時点では、アクセス回線の制限を考えると、スマートフォンからのEX予約はPC向けサイトを利用する他に選択肢はありません。 

 しかし、スマートフォンからPC向けサイトを利用する際に、問題が発生していると言われています。

 たとえば「EX予約プラウザ」というアプリは、予約手続き中のエラーを問題視してアプリの公開を中止しました(EX予約ブラウザのページ)。

 その原因についてAndroid版における調査をされたようです(「Android 版EX予約で予約がうまく行かない件」)。これによるとスマートフォン上のWebブラウザが採用している「WebKit」というHTMLレンダリングエンジン(プログラムの主要部品)がエラーを出しているとのこと。

 WebKitは完成部品のようなものなので、改造のために手を入れることが難しい。その部品がエラーを起こすのではお手上げ、というわけです。

 
 また、EX予約サイトの方が「特殊」なためにエラーが起こるのだという指摘もあります。座席リクエストのような画面は複雑なので、メモリを過度に消費してエラーを引き起こすのではないかとも考えられています。

 あるいは、セッション管理を伴うWebの処理を行なっているため、一つ一つの手続きを完了させながら進めない(まだ画面が途中表示なのにボタンを押してしまう)とエラーが発生して接続が切れてしまうといった問題もあるようです。

 
 乱暴に要約すると、スマートフォンが標準採用している「WebKit」を利用する場合、EX予約サイトとの相性が良くないということです。

 解決方法は

  • EX予約サイトがスマートフォン(WebKit)対応する
  • WebKitを使わない方法(たとえばOpera miniブラウザの利用)でアクセスする

 このどちらかしかありません。

--

 EX予約サイトがスマートフォン対応する予定であることはすでにご紹介しました。

 Opera miniブラウザのようなWebKitを使わずに独自にエンジンを作って利用しているアプリならば対応できるわけですが、かなり応急処置的です。

 というわけで、EX予約アプリを作ってみようというわけですが、これがそう簡単な話でないことは先回書いた通りです。

 これほどニーズがありながら、今日においても新幹線予約のアプリがリリースされていないことが、その難しさの傍証とも言えます。

--

 けれども、EX予約サイトは、そんなに酷いシステムなのかと問われると、センスがあるかないかは別として、システムとしてはかなり堅実に動いているようです。

 なにしろJRの予約・発券システムと連動するわけですから、それはそれなりに確実な動作を企図して構築されています。

 とりあえず「新規予約」と「変更」に限定すれば、おおよその挙動は把握できそうですし、そのための画面遷移もパターンを見つけ出すことが出来そうです。

 次回はいよいよ予約サイトの解析の準備を始めることにします。

 数年前に引越してからは新幹線を利用する機会はめっきり減りましたが、たまに利用することがあればエクスプレス予約(EX予約)を利用します。

 先日、J-WESTカードも申し込んでみました。

 私はビューカード会員なので、EX予約はモバイルSuicaを使って利用するユーザーです。そのためJR東海やJ-WESTでエクスプレス会員になった人が持っているEX-ICカードを持っていませんでした。

 モバイルSuicaだと、EX予約の携帯サイトで予約し、在来線から新幹線への乗り換えも含めて、携帯電話一台で済みます。これはこれで便利なのです。

 ただ、私もiPhone大好き人間の端くれ。iPhoneでEX予約が快適に出来れば、それを優先したい。そして改札はEX-ICカード(在来線は2枚重ねが必要ですけど...)で済ませるのが基本形かなと思います。

 というわけで、そのための準備としてJ-WEST会員になってEX-ICカードを手に入れようという魂胆です。ん?会費の二重払い?...食費削りますか。

--

 アプリ開発のために、EX予約サービスを研究しています。

 EX予約のユーザーになると説明書をもらえます。たくさん注意書きがあるのですが、すべてを知らなくても予約画面の必要なボタンをクリックしていけば予約は完了します。

 しかし、新幹線の乗車にはいろんな種類やサービスが有り、そうした条件に応じてEX予約の画面は細かく変わっているのです。

 予約する人間にとってみれば、必要な項目をパッと見つけ出して押すだけですが、予約サービスを提供する側にしてみれば、たくさんの選択肢を用意してもれなく表示しなければなりません。その組み合わせはケースバイケースでたくさんあります。

--

 たとえばEX予約は、時間帯によってサービス内容が違います。

 5:30〜23:30までは通常サービス時間帯なのですが、23:30〜5:30は夜間受付サービス時間帯なので、すぐに予約を確定できず翌朝5:30以降に予約希望の確定結果がメールで届くという仕組みになっています。

 「なんだ予約結果がメールで届くのか」とお思いかも知れませんが、通常は片道予約が基本なところ、夜間は往復予約を受け付けます。そして第2希望まで入力できます。

 こうなると予約画面は大幅に変りますし、選択処理も複雑です。画面に表一個増えただけように見えても、裏側でそれを察知するのは結構手間なのです。

 少なくとも時間帯によって処理が変ることを前提にしなければなりません。

--

 EX予約は、予約候補列車リストの中に乗り換えパターンも含んでくれます。

 一覧表示の処理をするためには、乗り換えパターンの選択肢をどうやって表示させるかも頭を悩ませる課題です。乗り換え駅と乗換駅での到着発車時刻、乗り換える列車についてなど扱うデータが増えるからです。

 EX予約は、様々な列車タイプが予約できます。

 「のぞみ」「ひかり」「こだま」はよく知られていますが、さらに西日本で走っている「レールスター」という列車もあります。

 それぞれの列車は、予約できる座席タイプが異なります。たとえば、ひかり号には禁煙だけでなく喫煙席があります。のぞみ号は全席禁煙ですが、喫煙ルームがあるので附近の座席を希望するか選べます。

 座席のリクエストとなれば、号車構成や号車毎の座席構成など様々な組み合わせを自由に閲覧して選択できるようにしなければなりません。


 EX予約は、チケットや割引サービスも様々です。

 EX予約は、基本的に登録会員本人の利用が多いと思います。つまり大人一人を予約してEX-ICカードで改札乗車するというスタイルです。

 ただ、複数人数の予約も可能です。この場合、EX-ICカードを全員が持っているわけではないので、必然的にきっぷ購入という形に切り替わります。

 「EX-IC乗車」と「きっぷ乗車」という2つの形に枝分かれした後、きっぷの場合は乗車券を合わせて購入するかどうかも選べます。他にも「e特急券」とか「IC早特」とか「グリーン特典」とか。季節限定「EXお出かけ早特」なんてサービスもあったり。

--

 斯様に、EX予約の紹介サイトを見ただけでも、予約の手続きに関係する要素が結構多くて可変的であることがわかります。

 こりゃ簡単には予約システムを改変できないだろうし、スマートフォン対応も夏までかかりそうという噂も「そりゃそうだろ〜ねぇ」と納得する他ありません。

 そして専用アプリを開発するハードルも高くなりがち。

 上記の様々な条件を踏まえた上で、全部に対応することは出来ませんから取捨選択してアプリ設計をしなければなりません。

 そのような下準備と開発に時間を掛けているうちに、JR東日本がEX予約のスマートフォン対応を完了させるかも知れないとしたら、開発すべきかどうかの判断も迷うところです。まして現行サービスがリニューアルされれば、アプリは作り直しです。

--

 とはいえ、以前も書いたように私は日曜プログラマ。

 開発動機は好奇心でなんとかなりますし、アプリの作り直しとなれば残念ですが、それもまた新しいチャレンジが増えたと考えることもできます。

 有料アプリにしてヒットを狙うなんて下心がないわけではないですが、夏にはスマートフォン対応が予定されていると分かっている今なら、逆に下心の賞味期限がハッキリしているわけですから、いやらしさも半減してるはず(あれ、そうでもない?)。

 というわけで、EX予約アプリの開発は地道に取り組んでいます。

 もっとも最初から有料アプリでは危なくてリリースできないので、アプリ内広告を入れた形で無料アプリとしてリリースできればいいかなと夢想しています。

 そうすればたくさん利用してもらえて、フィードバックも得られますので、機能改善など施すことも出来るでしょう。そのうえで高機能な有料版を出すのが一番スムーズな展開かなと思います(こういう捕らぬタヌキの皮算用妄想は楽しいですね)。

 iOS(iPhone)アプリを開発するにあたっては,技術的なことも大事ですが,開発の周辺事項(アプリのアイデア出しや完成したアプリの売り方など)も大事になってきます。

 また,そもそもどうやったらiOSアプリを開発できるのか,という事始めに関して丁寧に解説した本も必要です。

 こうした本としては従来まで以下のような本がありました。

  

 『iPhone/Androidアプリで週末起業』はiPhone向けに書かれた本の改訂版で,Androidに関する記述も増やしたものです。

 こうした内容の本は,不易流行を扱うため,タイミングを逃すと古くて役立たないこともしばしばです。どちらかといえば雑誌のサブ特集で扱う類いの内容とも言えますが,そういう記事も意外と少ないので,やはりこうした書籍を読むのが早いかも知れません。

 さて,このところさらに新顔の書籍も出てきたようなのでクリップしておきます。


  

 『C言語すら知らなかった私がたった2か月でiPhoneアプリをリリースするためにやったこと』は,筆者のブログの書籍化のようです。書名の通りの体験をした著者は,雑誌でも紹介されたりした人物です。ちょっと夢見てみる読み物としていいかも知れません。

 『売れるiPhoneアプリの法則』もWebの記事の書籍化です。iPhoneアプリ開発講座を開講している著者たちによる文章です。多くの開発者を育成したり,接したりしている立場から分かったことや格言をいろいろ書いています。個人的には少し中途半端な感じのする内容ですが,アプリを作り始めた人にはいいのかも知れません。

 『iPad/iPhoneアプリを作る前に知っておきたい70の常識』は様々なアプリを開発したり,開発本も書いている著者によるもの。あくまでもこれからアプリを開発してみたいと思っている人向けのQ&A式レクチャー本なので,技術的なことは期待できません。


 ちなみに,洋書にもこの手の本はたくさんあります。たとえば『App Savvy』はアプリのアイデア出しからマーケティングまでの流れに沿って解説した本です。目新しいことが書いてあるかは読む人によりますが,基本の中に新しい発見があることも確かです。


 その他,アプリデザインに特化した本などもあります。

 JR東海・西日本の新幹線予約サービス「エクスプレス予約」(EX予約)をスマートフォンで使うためのアプリを新規アプリとして開発することにします。

 すでに既存アプリについては概観しました。どのアプリもPC向け予約サイトをスマートフォンの画面に表示するための調整をするアプローチをとったものでした。そこに自動ログイン機能などが追加された形です。

 このアプローチは,PC用予約サイトの使い方を知っていればその知識を踏まえてつかえるというメリットはあります。一方で,どうしても小さい画面で操作しなければならず使いづらいというデメリットもあります。

 そうした現状に対して,とうとうJR側も重い腰を上げて,EX予約サイトをスマートフォンに対応させる意向を表明しました。

 となれば,標準ブラウザで快適な利用ができるのも時間の問題。既存アプリにとっても,自動ログイン機能のメリットはそのままにサイト側の改善で使いやすくなるので,一気に問題解決に向かいます。

 新しいアプリを開発する余地は無いのではないか,とも考えられます。

 しかし逆に、技術的なチャレンジができるという色合いも強まり,隙間時間プログラマーとしては興味の増すところです。採算は悪いですが、趣味の範疇のチャレンジとしては面白い。

--

 新規アプリは,iPhoneアプリらしくUIKitでインターフェイスを構築して操作できるEX予約アプリにすることにしました。

 既存のアプリのような調整型Webブラウザ方式じゃありません。

 Interface Builder(Xcode4では統合されちゃいましたが...)でボタンやラベル,テーブルビューやピッカービューを配置するような,ふつ〜のアプリにします。

 PC向けのEX予約サイトの中身に準じるとしても,Webの画面をそのまま出すのではなく,すべてアプリで覆い隠しちゃいましょうということです。

 それが出来たら,EX予約がもっと使いやすくなるはずです。

 つまり,EX予約専用アプリをゼロからつくろうというアイデアです。

--

 アイデア段階は楽しいのですが,実際のアプリにするためには,どんな条件が必要なのでしょうか。開発過程を構想してみます。

 既存アプリは,画面表示に調整を加える形のWebブラウザです。そのため画面調整と自動ログインの手続き以外,EX予約部分に関してはユーザーとJRのサーバーに仕事を任せているだけです。

 「Rapidy新幹線予約」はメニューアシスト機能があり,Webの画面に表示されているメニュー情報を読み取って処理しているようですが,予約画面を調整したら,そのまま表示しているという点は変わりません。

 要するに,基本的に既存アプリはEX予約サイトの手続き内容を理解して動いているわけではないということです。

 理解しているのは表示調整に必要なhtmlで記述された情報だけ。その他は,もともとiPhoneに備わっているWebブラウザ機能に任せればいいのです。もともとSafariブラウザのブックマークレットという裏技が発祥ですから,当然ですね。

 さて,もしもWebの画面をWebブラウザ機能に頼らず,すべて専用部品を使ったアプリ画面に置き換えるとしたら,どうでしょうか。

 それはつまり,自分自身でWebブラウザ機能がしていた機能をゼロから作るということです。htmlファイルを読み取って,理解させて,ルールにもとづいて画面を構成しなければなりません。

 新規アプリをつくるためには,EX予約サイトのhtmlを読み取って,それを解読して,必要な情報を表示した上で,必要な情報を送り返して,次の画面に移動(遷移)するという作業を埋め込まなければならないということです。

  • html受信
  • html解析
  • 予約手続き情報の処理
  • アプリ画面への表示
  • 選択操作
  • 情報送信
 なかなか大変そうです。

--

 htmlを受信して解析するなら簡単簡単とお思いの方もいるかも知れません。

 最近のiOSプログラム関連書でもRSSリーダーアプリがサンプルとして示されていることも多くなって,それを応用すれば情報を読み取って表示させることは難しくないように思えます。

 実際,基本的な仕組みは同じです。とすれば,あんまり心配することもないかも知れません。

 ただし,一筋縄ではいかないのが世の常。そもそも,読み取るべきhtml画面の数はいくつあるのか分かりません。
 Webブラウザ機能に任せればhtmlの変更があっても心配いりませんが,自分で解読する場合にはプログラムの修正が必要になることもあります。
 それに加えて,EX予約サイトは単純なホームページとは違って,セッション接続して手続きを進めます。接続する度に手続きのための番号が変るということで,これにきちんと対応しなければならないのです。

 というわけで,ゼロからつくるにあたって,まずはEX予約サイトをじっくりと分析する必要があります。

 JR東海の「エクスプレス予約」(以下,EX予約)は東海道・山陽新幹線のための予約サービスです。

 先日(3/19)サイトのリニューアルもされましたが,もともとは2001年から始まっており,すでに10年間の歴史を積み重ねています。

 またサービスの目玉の一つである「チケットレス」サービスは,ICカードの導入によって券売や改札の手間を省いたところが利点です。

 その他の事柄はJRのサイトやWikipediaに情報がありますので省略しましょう。もともとは法人利用を想定した流れのようですが,会費を払えば一般利用も可能です。

--

 EX予約を利用するには,1) JR東海の「エクスプレスカード」会員になる,2) JR西日本の「J-WESTカード」会員になる,3) JR東日本の「ビューカード」会員となってさらに「ビュー・エクスプレス会員」申込をする,などの道筋があります。

 1と2で申し込むと,それぞれのクレジットカードとともに「EX-ICカード」が発行され,それを使うことによってチケットレス改札が可能になります。

 3の場合は少し手間で,「モバイルSuica」サービスを申し込んで携帯電話のIC機能を使えるようにしてから「ビュー・エクスプレス会員」にも申し込んで初めてチケットレスが可能です。残念ながらビューカードのICは使用できません。

 まあ,携帯電話で予約することが多いし,その携帯電話でそのまま改札を通ると考えれば,便利といえないこともない。1と2の場合,在来線用のICカードは別に必要ですから2枚重ねで改札をタッチしますが,3だと,モバイルSuica携帯電話一つでOKです。

--

 さて,そこで登場したのがiPhoneでした。

 iPhoneにはIC機能が付いていません。つまりEX-ICサービスはもちろん,Suicaもおサイフケータイ機能も使えないという弱点がありました。登場当時は,そこをよくネガティブに突かれていました。

 いまNFC機能と呼ばれるIC機能が次期モデルに搭載されるのかどうかといった話題がされていますが,だからといってSuicaやEX-ICとして使えるようになるわけではないので,iPhoneとEX予約の関係は,なかなか難しいということになっています。

 けれども,iPhoneは爆発的に利用者を増やしましたし,特にビジネスマンにとってスマートフォンの多機能性は強い味方として受け入れられています。

 となれば,どうしてもiPhoneなどスマートフォンでもEX予約をうまく利用したい。IC機能はダメでも,予約くらいは対応できないか。そういう願いが強くなります。

--

 単純素朴にEX予約サイトをiPhoneから利用できないか...。

 そういう考えから,iPhoneのSafariブラウザでアクセスするも,多くの人達が頭を抱えることになりました。

 「使いにくい...(あるいは,使えない...)」

 PC用の予約サイトをiPhoneの小さな画面に表示させると,様々な問題があると分かってきたのです。

 端的に言えば,EX予約サイトの画面は設計が特殊なため,表示させられないことはないが,操作が使い物にならない程度に複雑になってしまうのです。

 ボタンの押し難さもさることながら,分割された画面の中に表示される情報をスクロールするのに苦労しなければならず,とてもiPhoneらしからぬ使い勝手になるのです。


 そこで,もともとシンプルな携帯電話用ページを使えば問題を解決できるのではないかと考えた人もいました。

 しかし,これはあっけなく失敗。

 EX予約の携帯電話向けサイトは,携帯電話会社経由での接続かどうかをチェックしているため,スマートフォンのような一度インターネットの公開部分を経由してから接続する仕組みの機器では受け付けてくれないのです。

 ということは,PC用のサイトを何とかするしかない。そう考えたある人が,当時ホームページを閲覧するのが便利になる「ブックマークレット」という裏技的(?)手法で少しでもiPhoneでサイトを見やすくする工夫を編み出しました。

 普段使うSafariブラウザにセットすればよいのですが,初心者にはなかなか難しいかも知れないということで,これをアプリにしたものがリリースされたというわけです。

 参考リンク→「エクスプレス予約をiPhoneで使う」(yoshimasa niwaさんのブログ)

--

 前置き大変長くなりましたが,いま公開されているアプリを探してみましょう。

○「Rapidy新幹線予約」(点スイッチ) 230円
○「EX予約ブラウザ」(Takuya Murakami) 115円
○「i新幹線予約」(taisuke fujita) 無料

ちなみにAndroid向けも覗いてみましょうか。

○「BooXpress」(yanzm) 無料

○「EX予約ブラウザ」(Takuya Murakami) 無料

 最後のアプリは同名のiPhoneアプリのAndroid版という事になりますが,こちらは無料で提供されています。

--

 まず最初にひとまとめで説明すると,これらはすべて上記の「ブックマークレット」という技と同じようなアプローチ,つまりPC用サイトをiPhoneあるいはiPadにある程度整えて表示するという方法を採用したアプリです。

 要するにEX予約専用のWebブラウザ。

 それに会員番号やパスワードを入力する手間を省く「自動ログイン」をつけたり,空席や料金情報のページも切り替えて見せたり,操作を手助けする機能をつけたりしているものです。


【Rapidy新幹線予約】

 ブックマークレットのアイデアを提供した方自身でつくったアプリ。デザインセンスがよく,自動ログイン機能,操作のアシスト機能,そしてiPad対応など,貫録も見せます。230円という値段もそれゆえといったところ。

 アカウント登録は一つまで。ログイン画面のURLを設定可能。アプリ起動時のロック機能は無し。

【EX予約】

 同じアイデアを使って先にリリースされたのがこちらのアプリ。自動ログインとパスコードロック(起動時のロック)機能があるシンプルなもの。
 アンドロイド版は,パスコードロック機能はなく。単純に自動ログイン機能の追加だけとなっています。

 アカウント登録は一つまで。iPhone版のみアプリ起動時のロック機能有り。

【i新幹線予約】

 iPhoneでは唯一無料のアプリ。自動ログイン機能はもちろん,タブの画面切り替えで「空席照会」「運賃ナビ」という別のサイトの情報も確認できる。画面を横にすればタブが消えてくれるので,ちょっと見やすい。

 アカウント登録は一つまで。パスワードだけは保存されないので毎回入力。起動時のロック機能は無し。

【BooXpress】

 こちらはAndroidアプリ。こちらも自動ログイン機能がついたシンプルなもの。メニューを開くといつでもログイン画面に戻るためのHomeボタンがあったりはする。

 アカウント登録は2つ可能。どちらでログインするかを選択しておく設定項目がある。接続切れ問題を防ぐための画面遷移待機時間を調整する設定項目もある。

--


 以上のことから,


  • 自動ログイン機能

  • 複数のアカウント登録

  • 起動時のロック機能


といった機能が欲しいところ。

余裕があれば空席照会や運賃表など


  • 補足情報の表示機能

  • 接続切れ対策機能


も搭載する,というのが既存のアプリの形になりそうです。

--

 個々のアプリに対するユーザーレビューを見ると,良い評価ばかりではないことが分かります。

 スマートフォン上でEX予約サイトを利用しやすくしている点は評価しつつも,動作が遅いであるとか,落ちて予約できなかっただとか,サイトのリニューアルなどあるとログインできなくなったとか,実に様々な指摘が過去に出ています。

 個々のアプリの対応は異なります。素早く問題に対処したり,サイト側の変更でいつの間にか問題が解決していたり,複雑な予約をしなければよいといったユーザー側の対処でしのいだり...。なかなか大変そうです。

 特にEX予約サイトの特殊性が開発者,ユーザー泣かせなところがあるようです。

 BooXpressのレビューを見ると,予約サイトとのセッション切れという問題が起こるため,わざと各Webページ読み込み時に待機時間を数秒設けて遅くしているという苦渋の対処を余儀なくされていることが分かります。これがEX予約サイトの特殊性の一つとして指摘されている問題です。

 興味深いことは,こうした紆余曲折の中,JRは昨年後半に一旦はスマートフォンは未対応とあらためて宣言すると同時に,Omni miniブラウザを「携帯表示」モードにすれば使えるかもねぇ...という情報をWebページに掲載しました。

 というわけで,いまのところユーザーは,アプリを使える人はアプリを使って自動ログインなどの恩恵を受けたり,アプリが安定して使えない人はOmni miniブラウザを使うなどのように個別状況判断しているのが実態のようです。

 そして,JRは利用者の声に押されたのか,2011年1月31日「スマートフォンによるエクスプレス予約ご利用について」というお知らせを掲載して,スマートフォンへの対応を予告したというわけです。

 以上が,エクスプレス予約サービスと既存アプリのレビューです。