業務ソフトとiPhoneプラットホーム
次週以降に解説するアプリケーションの概要
本連載では、iPhoneで稼働する業務ソフトの紹介をします。今週はまず概要を説明し、次週以降、サーバ側の処理の解説、iPhone側の解説、そしてiPad対応させる場合の解説と続けることにします。テーマは「観葉植物のレンタルのセールスマン」として、レンタル可能な植物をリストから選択し、予約を入れるというところに絞った機能にします。
最初にお断りしますが、完全な業務対応の仕組みを組み込むとなると、かなりたくさんのコードを書く事になり、全体が見渡しにくくなるので、解説記事として成り立つ範囲で最低限の組み込みとしています。組み込んでいない機能については、可能な限り方針等で説明しましょう。
まず、サーバーではMySQLを稼働させて、レンタル商品やスケジュールなどを管理しています。画像はWebサーバーに登録したファイルから読み出しています。なお、認証については組み込んでいませんが、業務ソフトであれば、「設定パネル」等を用意して、ユーザー名やパスワードを記録するといった仕組みは作っておくべきでしょう。Web側で認証をかけるようにしておき、ダウンロード時に認証を行う機能をCocoa側で呼び出せばいいでしょう。
アプリケーションを起動すると、サーバーからレンタル商品の一覧を取得して、リスト表示します。画像も表示しています。ネットワークにつながっていない場合の利用を考え、サーバーからのデータの取得が成功すれば、それをiPhoneの中に記録するようにしておきます。通信エラーが発生したとき、記録したデータがあれば、それを代わりに使うようにして、オフライン動作を行っています。
レンタル商品一覧と、その個別の画面を、お客さんと見ながら検討し、レンタル可能かどうかを予約が入っているかどうかでチェックします。データベースには予約だけを入れていますが、サーバーに予約状況を確認した時、「空き」のレコードを追加してiPhoneに返しています。そしてレンタルする商品と期間が決まれば、入力画面で必要な項目を埋めて、サーバーに登録します。なお、ネットワーク接続されていないときの登録については対応していません。
iPadの登場で業務アプリ開発はどうする?
この記事を書いているときには、米国でiPadが発売され、日本では未発売なものの、さまざまな方法で入手した人が見せびらかすという状況のまっただ中です。iPhoneが320×480ピクセルに対して、iPadは1024×768ピクセルと、画素数では5倍も違っています。明白に言える事は、iPhoneとiPadで共通の画面デザインで稼働させることはあり得ないことでしょう。
iPhoneは基本的に1画面に1機能ということになり、遷移するユーザー・インタフェースが中心でした。しかしながら、iPadでは「スプリットビュー」という仕組みが追加され、メールソフトであるようなリストと内容を並行して表示するようなユーザー・インタフェースが作りやすくなっています。
iPadでは「なるべく全画面の書き換えがないような工夫」が必要であるとされており、その点からもiPhoneとの違いはあります。
iPadではキーボードもそこそこ大きく表示され打ちやすいので、iPhoneと違って、「打ち込む」という作業をなるべく避けるということはしなくても済みそうです。また、iPhone OS 3.2から、キーボード自体をカスタマイズすることができるので、入力するデータに対応した使いやすいカスタム・インプット・ビューを定義するということができます。
iPhoneでは、ポップアップ・メニューやリストといったものが原則的にはなく、Webページでそうした素材がある場合には、画面半分を使って選択を行う「ピッカー」というオブジェクトを利用します。図3にあるサンプル・アプリケーション右端の下半分に出ているものです。
しかしながら、iPadでは独特のデザインのポップアップ・メニューがあります。これは「ポップオーバー(Popover)」という名前がついてます。これらは互換性がないので、iPhoneならピッカー、iPadならポップオーバーを使うという部分は組み替えが必要になります。また、「アクションシート」という名称で、プルダウン・メニュー的な仕組みも利用できますが、これは見栄えはポップオーバーと同じような感じです。
結果的には、iPhoneとiPadではそれぞれ別々のプログラムを作るのに近い労力がかかる可能性もあります。同じOSだからと言って静観はできません。
*編集部注:「Dashcode」の名称が間違っていたため、修正しました。(2010.05.24)