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予約サイトをじっくりと分析する必要があります。
コメントする