カテゴリー別アーカイブ: Androidアプリ開発

スマホアプリのタブ数の表示上限

スマートフォンアプリ制作の仕事をやっていると、
盛り込みたい機能が沢山あり、
それぞれの機能をタブ(tabGroup)で切替表示したいと依頼がある。

しかし、iPhone、Androidそれぞれでタブ数には表示上限がある。
iPhoneでは5つが表示上限だ。
この表示上限を超えると、
下記の赤枠のように、「・・・(more)」が出てしまう。

more

この「more」はユーザ受けが良くない。

一方、Androidは端末に依存し、
XperiaのSOL24 等では5つあるが、ほとんど4つの表示上限だ。
表示上限を超えると、下記の赤枠のタブバー(tabBar)が横スクロールし、隠れていたタブの選択ができる。

Android tabGroup

この横スクロールもユーザ受けが良くない。

そのため、事前に表示上限を超えないよう、仕様変更してもらうか、
タブバーを非表示にして、オリジナルで作成する方法になりそう。。

Androidアプリのテキストボックスの制御

Androidアプリを作成しているとテキストボックスが大体必要になってくる。
エンドユーザはキーパットで入力することになるのだが、
仕様でfocusやblurの処理をaddEventListenerで組み込むことが出てくると、
Androidアプリがいうことを聞かず、キーパットが一瞬で閉じてしまうことがある。

こんな時は、Androidキーボードを推奨するといいことがありそう。
やり方はAndroid端末のテキストボックスを長押し(ロングタップ)
そうすると、メニューが表示され入力方法→Androidキーボードが
選択できるようになるのだ。

これで、キーパットが閉じられることはなくなった。
このあたりはヘルプでアナウンスするという方法で乗り切りましょう。

アプリで縦固定の方法

iPhoneアプリの場合
tiapp.xmlに
<iphone>
<orientations device=”iphone”>
<orientation>Ti.UI.PORTRAIT</orientation>
</orientations>
</iphone>
と記述する
Androidアプリの場合
AndroidManifest.xmlに
全てのactivityタグに
「android:screenOrientation=”portrait”」要素を追加する。

また、AndroidManifest.xmlが無い場合の作成方法
ビルドする。
buildフォルダに作成されるので、
platformフォルダを作成し、androidフォルダと共にコピーする。

TitaniumのcreateWindowの値の受け渡しについて

複数ページ表示するアプリをTitaniumで作成することが多い。
ページを作成するにあたり、下記のようにcreateWindowを使用するのだが、
その値の渡し方についての備忘録

●app.js
var aaa = 9;
var xxx = Ti.UI.createWindow({
url:’win_xxx.js’
});

■win_xxx.js側で変数「aaa」を受け取るには、下記のように追加する。

●app.js
var aaa = 9;
var xxx = Ti.UI.createWindow({
url:’win_xxx.js’,
_aaa:aaa,
});

一方、受け取る側も、下記のように取得する。

●win_xxx.js
var win = Ti.UI.currentWindow;
alert(win._aaa); // 9を表示

Androidアプリの作成時のエラーについて(その1)

Androidアプリを作成し、Googleのデベロッパー コンソールで初回アップロードでは発生するエラーの解決方法を紹介する。

デベロッパーコンソールで、商品詳細を入力し、アプリのapkファイルを登録する画面がある。しかし、登録するために、apkファイルをサーバにアップロードしようとすると、次のエラーが出てしまう!

「アップロードで予期しないエラーが発生しました。しばらくしてからもう一度お試しください。」

このメッセージ通りに、しばらくしてからもう一度試すが、同じエラーが発生してしまう。
そこで、このエラーをググってみると「何十回もアップロードすべし」と書かれている。
しかし、2012年9月現在ではGoogle側のサーバが強化され、状況が改善されました。
このエラーは、Resourcesフォルダと同階層に「i18n」フォルダがあるが、その直下の「en」フォルダが無いことが多くの原因のようだ。