株式会社ライブキャストロゴ 株式会社ライブキャスト

ちょっと間があいてしまいましたが、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端末自体も独自実装を極力減らしてほしいですね。