2012年10月23日火曜日

【訂正】ウィジェットサイズの指定について

あちゃー
以前の投稿 でウィジェットサイズの指定についてを言及してましたが、解釈に間違いがありました。
鵜呑みにしてしまった方、すみません・・・。


事の発端は Nexus 7 で開発中のアプリを動作させてみたところ、意図したセル数にならないことに気が付きました。


以前の記事では、
Android 4.0以前では

74dip × n - 2dip

を指定し、Android 4.0 以降では

70dip × n − 30dip

を利用する旨を書いていましたが、これが勘違いでした。


-----------------------------------------------------
ここからが、訂正後の話。(この解釈も間違っていたらゴメンナサイ。。)

意図したセル数を指定するには、大雑把には  74dip × n - 2dip でいいのですが、この値を 最小値 と捉えてはいけなかった。(原文に Minimum size って書いているけども。)

「1セル を指定するには 74dip × n - 2dip = 72dip を minWidth および minHeight に指定すれば良い。」

ではなく、1セルに収めるには 72dip 以内に収めること。と考えなくてはいけなかった。 当たり前といえば当たり前。

つまり、minWidth = 1dip と指定しても 30dip と指定しても 72dip を超えなければ、1セルに収まります。

1セルを指定したいがために、範囲の最大値である72dip を指定する必要はありません


これを行ったがために 以前の投稿に書いたとおり、Galaxy Nexus の問題に遭遇しました。



-----------------------------------------------------
Galaxy Nexus の問題とは、minWidth = 72dip , minHeight = 72dip を指定しているのに、Galaxy Nexus だと 2×2セルが確保されてしまうものでした。 他のFroyo端末だと 1×1セル となっている。

これは、 74dip × n - 2dip はあくまで 推奨値 であり 目安 に過ぎなかったのです。

他の端末とは解像度が異なるため、Galaxy Nexus だと 1セルの範囲値が以下となっていました。(地道に1つずつ調べました・・・。)


1セル  ~64dip
2セル  ~144dip
3セル  ~224dip
4セル  ~304dip
 :       :
nセル  80dip × n - 16dip


上記に照らし合わせると minWidth および minHeight を 72dip で指定していると、2セル確保されてしまうのです。


【余談】
色々なウィジェットアプリを入れてみたのですが、Galaxy Nexus 以外だと 1×1セルなのに、Galaxy Nexus だと 2×2セルになっているアプリがチラホラありました。一方、SDKに付属してくるApi Demos アプリをみると、ちゃんと1×1セルになっています。ソースをみると minWidth = 60dip 、 minHeight = 30dip と指定していました。必要な領域をきちんと指定していました。なるほど。

-----------------------------------------------------

さて、今回の問題が発覚した Nexus 7 ですが、これまたセルの範囲値が他の端末と異なっていました。
(解像度が全然違うので、そりゃそうですね・・)

1セル  ~79dip
2セル  ~176dip
3セル  ~272dip
4セル  ~368dip





ちなみに開発中のウィジェットアプリは minWidth = 250dip 、 minHeight = 40dip と指定していました。
これだと、Galaxy Nexus だと  1×4 セル 確保されるのですが、Nexus 7 だと  1×3 セルしか確保されません。


-----------------------------------------------------

そろそろ、まとめ。。

ウィジェットの領域はセル数を指定できるように出来ていない。ってことを理解しなくてはいけないですね。どの端末でも、意図したセル数を確保したいのですが、現状の作りでは困難。(・・・ですよね?)

dip で指定するしかないですが、その目安となる値も、多種多様な端末の前では、ズレが起きてしまう。

1セル、2セル、3セルぐらいなら、何とかなりそうですけど、4セル、5セル使うようなウィジェットだと、スマホにも対応しつつ、解像度が異なるタブレットにも対応する・・・っとなると大変そう・・・。


そんなわけで、長くなりましたが、このへんで。

ウィジェットに苦しんでいる人の参考 になれば幸いです。

※間違い等がありましたら、 お知らせください。






訂正後の情報は Android Memo Wiki にまとめています。



2012年10月17日水曜日

Nexus 7 を買いました。

写真だと大きさがわかりづらいので、ドロイドくん比較。(でもわかりづらい)

Nexus 7 買いましたー。

待望の Jelly Bean です。

さっと使ってみた感じICSとの違いがよくわかりませんが、

Nexus 7 のスペックのせいか、ものすごく快適です。


NFCも搭載しています。

試しに、自作アプリの NFC Fighter を動作させましたが、

NFCタグの読み取りともに正常に動作することを確認できました。(よかったよかった)


ケースを買わないと。

2012年10月12日金曜日

新しいアプリ制作

画面は開発中のものです。
NFC Fighter のダウンロード数が急激に増えたので

何かと思ったら、オクトバさんで紹介記事が掲載されたみたいですね。

さすが、影響力がすごい・・・。そして、掲載ありがとうございます。

-----------------------------------------------------

各キャリアの携帯新機種みましたが、NFC搭載機種が
少しづつ増えていますね!

NFCの知名度も徐々に上がってくることを期待しております。


-----------------------------------------------------

さて、NFC Fighterに次ぐ、次回作ですが順調?に制作しております。

ジャンルはいわゆる放置型のRPGです。


① 冒険にいく。(そして放置)

② いつの間にか返ってきていて、経験値を取得。 → レベルアップ。

③ そしてまた冒険に。

時間に忙しい人でも、気軽に遊べるようにしようと思っております。



また、「Google App Engine」の連携を考えており、

アプリから冒険に行った時点で、オートマティックにパーティを組んで、一緒に冒険をする。

っといった仕組みをサーバー側で作ろうとしています。

なんちゃってなソーシャル感を出そうと。 



今回は、アプリだけでなくサーバー側の処理も作らないと行けないので、ちょっと時間かかっています。

サーブレットは久しぶりなので、 勉強しながらー。

2012年8月2日木曜日

4コマ漫画を描いてみた。

そういえば、名前決めていない。
4コマ漫画を描いてみました。

せっかく描き上げたドロイドくん達なので

次回のアプリでも使おうと思っています。



目指すはグッズ化。

 









この4コマは NFC Fighter に載っています。

2012年7月23日月曜日

Android4.0以降のウィジェットのサイズについて

まずは読む方。
※2012/10/23 追記
 この記事は間違っていたため、2012/10/23の投稿にて訂正をしています。そちらもご覧ください。
http://d1skroid.blogspot.jp/2012/10/blog-post_23.html
-------------------------------------------------

アプリウィジェットを作ろうと、
参考書を読んだり色んなサイトを参考にしています。
それらでは、アプリウィジェットの最小サイズ指定は


74dip × n - 2dip


と書かれていました。

まずは 1×1 サイズのウィジェットを作ってみようと

minWidth = "72dip"
minHeight = "72dip"

と指定すると、Galaxy NEXUS では 2 × 2 サイズのウィジェットに。
 
試しに、別の端末(解像度はHDPI ) で同じアプリをインストールすると、

ちゃんと 1 × 1サイズのウィジェットに。



原因は TargetSdkVersion15 を指定していたため。

どうやら、Android4.0以降では、ウィジェットのサイズの指定が異なるみたいですね。
http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#anatomy


TargetSdkVersion が 14以上だと、ウィジェットのセル最小サイズは 40dip
TargetSdkVersion が 14未満だと、ウィジェットのセル最小サイズは 72dip


思わぬところでハマるのでした。








この情報は Android Memo Wiki にてまとめています。 

2012年7月18日水曜日

Eclipse Juno導入しました。

パワーアップ
NFC Fighterのリリースも終えたので、
バージョンアップを考えつつ、次回作にも取り掛かろうとしています。


次回作で考えているのは、「Google App Engine」 を利用したアプリです。

サーバ側と連携することが出来れば、幅が広がるはずでしょう。




っと、Google App Engine を利用するために
いろいろと環境を整えていたのですが、
Eclipse 向けの Google plugin の導入でエラーが発生してしまい、どうにもこうにもうまくいかない。

今現在使っていた Eclipse のバージョンは Helios でしたが、この際なので最新の Juno を導入してみました。


がらっと、見た目も変わっています。

ひとまず、Androidアプリのビルドにも影響がなさげなので、こちらに切り替えてみます。


2012年7月11日水曜日

アプリ公開しました。


ようやく、一本アプリを公開することが出来ました。
NFCタグを使ったゲームです。
バーコードバトラーのような感じです。



いろいろとアイディアがでて、アレもコレも状態で作成していきましたが、
まずはシンプルな状態でリリースする運びとなりました。



NFC搭載端末以外でも遊べるようにはしていますので、ぜひ遊んでみてください。

----------------------------------------------------------

ダウンロードは Google play
https://play.google.com/store/apps/details?id=jp.ne.sakura.nbrt&feature=search_result


ゲーム内容紹介ページ
http://nbrt.sakura.ne.jp/zino/nfcf/