iPadで稼働するアプリケーションへの発展
スプリットビューとロールオーバー
スプリットビューの特徴は、ポートレートになったときに、リスト表示のビューが消えることです。 代わりにツールバーにボタンを表示しますが、どこまでをフレームワークがやってくれるのかが気になるところでしょう。
ここで、ポートレートになったときに表示される詳細ビュー(BookingListViewController)に対して、 スプリットビューコントローラからのデリゲートを受けるようにしておきます。デリゲートはビューが消える、 表示するというタイミング、つまりランドスケープとポートレートが変わるときに呼び出されます。
デリゲートメソッドでは、消えたビューの内容を表示するためのボタンがアプリケーションに戻されます。 そして、ボタンの先にはやはりフレームワーク側に作られたポップオーバーのオブジェクトができあがっています。 従って、アプリケーションはデリゲートメソッド内で引き渡されたボタンをツールバーに追加するという作業を行います。
そして、ビューが見えるときつまりランドスケープになったときにはボタンを取り除きます。 具体的にはサンプルプログラムを見てほしいのですが、少々ややこしいものの、 このやり方はパターンとしてそのまま多くの場合に使えると思われます。
データの入力はポップオーバーを使っています。 ポップオーバーはビュー・コントローラ配下のビューを表示できる点では汎用的なのですが、逆に「日付を選択する」という単機能なものではありません。 今回のようにiPhone向けにビューが作られていればすぐにポップオーバー化はできますが、 ポップオーバーも1つのビューによる画面であるこということで設計を進めるようにすべきでしょう。
なお、「日付の入力」や「選択入力」には、新たなオブジェクトはなく、手軽に行うには、iPhoneと同様にピッカーを使うことになります。 ユーザーインタフェースの自由度が高いだけに、効率のいい画面設計にはノウハウを積む必要があるかもしれません。
iPadとiPhoneの両対応について
iPhone SDK 3.2でiPad対応になってから、プロジェクトやあるいはクラスのためのファイル追加で、 iPhoneかiPadかを選択する場面が増えてきました。もちろん、iPadのみで使用できるスプリット・ビューのテンプレートなど、 片方のプラットフォームだけのものもありますが、いずれにしても、プロジェクトを作るときにはiPhoneなのかiPadなのかを しっかり意識して作る必要があります。そして、クラスのファイルを作る場合も同様です。
図3:プロダクトを作成するときはそれぞれの違いを意識する(クリックで拡大) |
Appleは2010年夏には、iPhone OS 4.0をリリースして、マルチタスクなどに対応することをすでに表明しています。iPad対応は「秋」となっています。
ニュース・リリースを見ると「A version of iPhone OS 4 will be coming to iPad this Fall.」という書き方をしています。 主語はさしずめ「iPhone OS 4に対応する(iPadの)バージョン」でしょうか。はっきりとiPhone OS 4であるという書き方をしていません。
想像を許していただければ、1つあり得るのは、iPad向けのOSが登場し、iPhoneとは別系列になるということです。 今のように、3.1までがiPhone、3.2がiPodといった区分ですら分かりにくくなりつつあるのに、同一バージョンで iPhoneとiPadが動くというのはさらに混乱を含めるでしょう。
iPadはきっと日本でも大好評で熱狂のうちに発売されることになるでしょうが、ホーム画面にまばらに並んだ アイコンはいかにもとって付けたような印象も持ちます。これは、iPadのOSとしてiPhone OSは本命ではなく、 iPadに適したものをそのうちリリースするよと言っているようなものじゃないかと思います。みなさんはどう思われるでしょうか?
iPadは電子ブックリーダーとしての期待が大きい訳ですが、業務システムへのインパクトも決して小さくはありません。 コンパクトさを優先すればiPhone、大きな画面でリッチな情報提示をしたいならiPadと使い分けることもできます。
その昔、携帯が登場したときにパソコンがなくなると言う論調がありましたが、そうはなりませんでした。 しかし、iPadやスマートフォンこそ、パソコンの領域に浸食するものでもあります。 いずれにしても、これからのデバイスですので、有効な活用方法を今すぐに考え始めるべきでしょう。