ちょっと間があいてしまいましたが、Flash Builder BurritoでAIR for Androidを試してみた(実行編)で作成したプロジェクトの基本機能ができましたので、実機で試してみました。
作成したのはデスクトップ向けのAIRアプリ、TranslatAIRのAndroid版です。
※ バックナンバーはこちら。
画面はこんな感じです。今回はViewが1つで、翻訳する機能のみを実装しました。
※ 以下の画面はFlash Builder Burritoに付属しているエミュレータで実行しています。
このViewでは、言語を選択するところにDropDownListコントロールを使用していますが、プレビュー版であるFlash Builder Burrito(Flex SDK Hero)では、モバイルプロジェクト向けには最適化されていません。
見た目は、デフォルトのままだとちょっと小さいですが、調節すればなんとかなります。ですが、リストが表示された時の状態が、通常のAndroidアプリのものとは異なります。
通常のAndroidアプリの場合、Spinnerコントロールというものを使いますが、選択されるとこのように表示されます。
1つ1つの選択肢にある程度の高さがありますので、指で選択するのもにもあまり不自由は感じません。
一方、AIR for Androidの場合はこのようになります。
これはちょっと選びづらいです。
ちょっと調べたところ、表示されるリストの高さを変更できることがわかりました。
<s:DropDownList id="ddlLanguageSrc" width="185" height="75" chromeColor="#FFFFFF" color="#000000" dataProvider="{languages}" contentBackgroundColor="#FFFFFF"> <s:layout> <s:VerticalLayout gap="0" horizontalAlign="contentJustify" requestedRowCount="4" /> </s:layout> <s:itemRenderer> <fx:Component> <s:ItemRenderer height="50"> <s:Label text="{data.label}" /> </s:ItemRenderer> </fx:Component> </s:itemRenderer> </s:DropDownList>
結果は以下のようになります。
先ほどよりは、少し選びやすくなったと思いますが、使いやすいとは言い難いです。正式版では改善されていることを期待します。
※ 右側のDropDownListはあえてそのままにしています。
それでは、実機で動かしてみたいと思います。
HTC Desireでは、以下のようになりました。
左側のDropDownListを選択した状態です。
右側のDropDownListを選択した状態です。
Flash Builder Burritoのエミュレーターを使った時と違いは全くありません。
次に、Sharp Galapagos 003SHで試してみました。
普通に起動した状態では違いはなかったのですが、ソフトウェアキーボードを表示しているときの状態に違いがありました。
ソフトウェアキーボードが表示されている場合、通常はActivity自体が上にスクロールするので、画面下部が隠れることはないのですが、Sharp Galapagos 003SHで試した際にはスクロールされませんでした。
試しになにか入力してみると、その時に初めてスクロールされることがわかりました。
それともう1つ気付いた点があります。
Android端末には、Back(戻る)ボタンのようなものがついていますが、Back(戻る)ボタンでActivityを閉じた後などに、Homeのアイコンなどから再度立ち上げると、通常のAndroidアプリではActivityの初期化処理が実行されますが、AIR for Androidでは初期化されず、前回入力された値が残った状態で起動するようです。
というわけで、今回は以前開発したAIRアプリの一部の機能をAndroidアプリに移植して、実機で試してみました。開発については、過去の資材がそのまま生かせるので、ほとんど手間がかかりません。
ですが、動作の方は、ちょっと試しただけでいくつか気になるところがありました。Androidの機種も増えてきて、独自実装されているものも増えてきましたので、しばらくは、実機を使ったテストにかなりの重点を置かないと、痛い目に会いそうな気がします。この辺の差異のほとんどはAIRランタイムに吸収してほしいところです。また、Android端末自体も独自実装を極力減らしてほしいですね。