AndroidタッチパネルによるXFormsを進化させたXMLフォーム処理アプリケーション開発の課題

31 views
Skip to first unread message

uForms

unread,
Sep 8, 2008, 9:40:30 PM9/8/08
to Android-SDK-Japan
現在、先日投稿した「タッチパネルによるAndroid実装用XMLフォームプロセッサ開発の課題」が「XMLフォーム プロセッサー」で検索する
と、iGoogle46,500件、nifty20,800件のトップに表示されており、Androidとタッチパネルによるフォーム処理には関心が持
たれているようです。

現在Android実装用XMLフォーム処理アプリケーションプラットフォームをAndroidバージョンm5から0.9へのコンバージョンを行ってい
ます。
タッチパネルフォーム処理に関して現在残っている課題は、正式版(バージョン1.0)では解決されているべきと思います。
今回のバージョンアップでのAndroidフォーム処理に関しての感想は 1.Android設計方針が明確であり、それに必要な機能を備えていく
SDKの開発が必要ですが、方向が明確でなくふらつきが多い。 2.改定、統合、バグ解消は必要でしょうが、機能を廃止する場合は、互換性保証のためと
アプリケーションデザインへの影響を避けるため、同等の機能を他の方法で実現できる手段を保証すべき。 3.いまだオープン化されていないために.各
Viewの機能とその使用方法に不明が多く、またアプリケーション開発者による改良によるSDK機能の改良と拡大ができない。4.クラスレファレンスで
定義はされているが実体が完全に実装されていないフォーム処理用メソッドが見られまだ開発途上という印象が強い。

フォーム処理に関してはAndroidとiPhoneでは全く同等である。しかしながらXMLレイアウト方式はAndroid固有の機能でありこれを最
大限に生かすことによりAndroidは他にない優れたフォームアプリケーション作成ツールとして発展していくことができると思われます。
そのためには以下の2つの機能を備えることで実現可能になると思われます。
1.XMLレイアウトを動的に(プログラム処理時)に読込むことを可能とする機能。
2.今後主流となると思われるXFormsの複雑さの課題を解消し、モバイル用にXFormsのサブセットを搭載するという手法ではなく、本来のXML
フォームであるフォーム上にどのような項目を配置するかのネイティブXMLフォームを処理できる機能。

Android version0.9 Viewのオーバービュー及び課題の実例
http://homepage2.nifty.com/frpunion/uForms/XML/android09.html

現在開発中のモバイル端末XMLフォーム処理デザイン・コンセプトは以下のようなものであり、
1 閲覧ではなく編集モードが主体となるために、直接的(直感的)ではあるが、同時に確実性(正確性)のある操作を可能とすること。
2 ビジネス利用価値を高めるために、フォーム処理ではありながら同一画面にCM、商品説明等のためのグラフィック領域を十分確保すること。
3 アプリケーションはフォーム項目定義、ロジック、表示を分離して開発を行うこと。
4 携帯端末用にデザインしたフォームを、PCにも適用可能なデザイン手法を採用すること。
5 アプリケーションは同等のキー処理とタッチパネル処理を実装すること。
6 シンプルで、簡単で、わかりやすいアプリケーションプログラムの開発が可能なこと。
7 片手の親指一本の操作を基本とすること。
8 アイコン、プロンプトでタッチパネル処理をサポートすること。
9 汎用性のため単一アプリケーションを画面解像度、縦横画面に合わせてモバイル端末に表示できること。

この(処理デザイン・コンセプト)に対するAndroidバージョン0.9次の2点の課題があります。
1 XMLレイアウトに関して
2 ListViewに関して

1 XMLレイアウトに関して
XMLフォーム処理デザイン・コンセプトのフォーム項目定義、ロジック、表示の分離により、1. XMLレイアウトではプログラム作成時にフォーム上の
項目、統一する属性によるフォーム レイアウトの定義を行い、2. プログラムメソッドでは実行時に配置位置、項目の幅、高さ、個別属性の定義を行
い、3. XMLレイアウトはAndroidリラティブレイアウトを主レイアウトとし、これとリニアーレイアウト、スクロールビュー、その他ビューを組
合せてレイアウトする手法とっている。この手法に対してバージョン0.9の課題は
(1)XMLレイアウトではカスタムListViewのような派生させたビューの指定ができないため、XMLレイアウトのみでのフォームレイアウトはで
ず、フォーム項目定義とロジック、表示の完全分離はできず、XMLレイアウトも中途半端な使い方しかできない。
(2)プログラム作成時と実行時との定義を完全に分離できず、混在してフォームレイアウトを行わなくてはならずレイアウト方式の統一化ができない。
特に多用するScrollView をXMLレイアウトで定義する場合は、動的にメソッドでサイズの変更できず、XMLレイアウトての固定されたサイズ
でしかレイアウトできずデザインの多様化には応じられない。
(3)ビジネス利用価値を高めるためにグラフィック画面をsetEnabled()により使用不可にし、その上にフォーム項目を透過形式で表示する機能
が廃止されて使用できなくなった。これを解決するめに、onCreate()時にViewサイズが取得できない、ページスクロールのあるフォームでは
ページ上のViewサイズを正確に取得できないという制約があり、グラフィックでのクリップをおこなうには複雑なプログラムが必要となってしまう。
(4)タッチパネルによるページスクロールとリスト上の項目スクロールとが同一のフォーム上ではできない。
(5)XMLレイアウトでidを指定したViewのプログラムでの再定義なしでのインスタンス化できる機能がなく、2重定義になっている。
(6)Androidは既にXMLレイアウトをパースし、検証を行ってるので、XMLレイアウトを実行時に処理できる機能を備えることにより、他のOS
にない単一アプリケーションでさまざまなフォーム処理を可能とするシステムの開発が可能となる。
(7)グラフィックビューでのピンチ・イン/アウトより便利な画像拡大、縮小機能が必要。
(8)タッチパネル処理ではフォーカスを必要としないため、新たなイベント処理の開発が必要。特にEditTextでonFocusChange()で
入力データの取得ができない場合が発生するために、全ビューで共通して使用できるデータチェンジのイベントハンドラーを備えるべきである。
(9)Spinnerは初期設定時にonItemSelected()イベントが発生し、最初の項目が入力されてしまう。Spinnerは
ListViewで代替でき不用だと思われ。
(10)XMLGUIレイアウトのプレビュー機能はさまざまな理由により正確なフォームの表示ができないために、全く不用な機能である。

2 ListViewに関して
今後のWebフォームアプリケーションの主体となるW3C仕様のXFormsではフォーム定義をinput、select、select1で行
い、FirefoxのXFormsプロセッサーはデフォルトのselect、select1はListViewであり、inputは
EditText、Buttonであり、この3ビューのみでフォームを作成することが可能となっており、特にListViewは重要なViewとなり多
様なフォームデザインに応えられるよう、機能の充実が必要にもかかわらず、ListView、EditTextに関してAndroidバージョン0.9
では課題が残っている。
(1)setChoiceMode(),setSelection(),setItemChecked()が機能せず、選択されたリスト項目の表示手段
がない。
(2)ListViewはキー操作で選択すると、選択された項目がリスト最上段移動するが、タッチ操作ではなにも起こらない。
setSelection(int position)のクラスレファレンスでは
Sets the currently selected item position Index (starting at 0) of
the data item to be selected. If in touch mode, the item will not be
selected
but it will still be positioned appropriately. となってる。
(2)Android ListViewはリスト項目の背景色、文字色、高さの指定、カーソル表示、グラフィック表示に制約があり、組合せにより実装で
きない場合が多く、デザインの多様化に対処できない。
(3)タッチパネルによるページスクロールとリスト上の項目スクロールとが同一のフォーム上ではできない。
(4)タッチパネルによる項目の多いリストの場合はスクロールにフリックを多用し、処理に時間がかかる。
(5)キー入力時、項目が多い場合のショートカット機能、リストからのフォーカス移動の機能がなく、処理に時間がかかる。
(6)ドロップダウンリストの実装方法、チェツク付リストのチェツク機能の実装方法が不明。
(7)EditTextで背景色を指定すると、フレームが非表示になり、直感的にEditText,TextViewの区別が困難になる。
Reply all
Reply to author
Forward
0 new messages