Canvas座標で使われる値
端末画面のドット数は端末機種によって様々だが、AppInventorのアプリがCanvas座標で使う値は、画面の横幅はどんな端末でも320で、高さはそれに合わせて縮小した値が使われる。HT-O3Aなど画面の横幅が320ドットの端末では、Canvasで指定する値は実際の画面のドット位置と一致するが、Desireなど解像度の高い端末では描画されるときはそれなりに変換された値になる。これよって、どんな機種の画面でも同じアブリでは、だいたい同じように描画される。
GDDフォン(HT-03A) の Canvas.Width, Canvas.Height を表示してみた図。画面全体の大きさは幅320高さ480だが、Canvasの高さはタイトルバーの50ドットを除いた430ドットとなっている。幅が320なので、実際の値とApp Invendor のアプリから見た値は同じものとなる。
こちらは同じアプリでDesire上で描画されたもの。Desireの画面は幅480高さ800、タイトルバーの高さが76ドットなのでCanvasの有効高さは残り724ドットとなる。実際の幅480ドットが320に縮小するので、この比率で724を縮小した値483が、App Invendor のアプリから見たCanvasの高さとなる。
ImageSpriteに貼り付けられたTシャツ型のこの画像は、実際には横80ドットである。このまま描画するとDesireでは見かけが半分くらいになってしまうはずだが、座標の変換ルールは画像の大きさにも適用されるので、両方の端末で同じような見かけの大きさで描画されている。
DesireとHT-03Aで縦横比率が違うが、Canvasのバックグラウンド画像は目いっぱい引き伸ばされて描画されるので、アスペクト比が微妙に違ってくる。
Torect Lite
部品をドラッグして移動し、並べ替えて長方形にするゲーム。部品は回転したり裏返したりできない。簡単そうだが、第一面からちょっと考え込んでしまうくらいの手ごたえがある。Lite版ということだが、100面もあるので十分じゃないかな。
各部品は重ならないようになっていて、ドラッグして別の部品に当たるとそのままいっしょに押し込むことができる。現実のパズルに近い動きだが、大きな部品を右から左に配置換えしようとすると、まわりの部品をどかさないといけなかったりして面倒なことがある。
つり革につかまり端末を片手でにぎり、親指ですりすりドラッグしながらゲームするにはいい感じ。
シンプルな2chビューワー 「anちゃん」
シンプルな2chビューワー。動作は軽快で余分な機能はないので、使い方に迷うこともない。お勧め。
・カテゴリ一覧⇒板一覧⇒スレ一覧⇒スレ表示と選んでいけば画面が切り替わる。
・スレ表示に貼られているリンクをクリックすれば、ブラウザが立ち上がって画像や YouTube が見れるし、前スレへのリンクだったらそのままビューワーで見れる。
・よく見る板はブックマークに置いておける。
・スレ検索などの機能もある
色使いとかフォントの大きさに文句がないわけではないが、ごちゃごちゃしたUIメニューがつくよりは、このままシンプルでいて欲しい。ただ、アイコンは線が細くて分かりにくい。もうちょっとなんとかならんか。
Android Marcket にて "2ch" で検索するとインストールできる。
HTC Magic 使い心地メモ
常用していた携帯 X01T (WindowsMobile機) のバッテリーがヘタってきていたので、Android を貰ったのはちょうどいいタイミングだった。もはや戻る気はなし。
もらってから数週間使ってみての感想。iPhone は知らないので、X01T と比べる感じ。
電話、3Gパケット
SoftBank の SIM を挿して使っている。電話は使えた。3Gネットワークのユーザーパスワードをググって設定したら、接続することができた。パケット使い放題になってると思う。携帯に届いたメール(@softbank.ne.jp)が読めないのが困ったところ。
GMail / Google Calender 連携は素晴らしい
GMail に新着が来ると着信音がなる。いままでは GMail に届いたメールを携帯に転送してたけど、その必要なし。未読・既読の状態も瞬時で伝わる。カレンダーもリアルタイムで同期。Google メニューに依存してる人はめちゃくちゃ便利。
スクリーン
画面の指紋が気になる、ドラッグしようとすると指の油でネトついてうまく滑らない、などの問題があったが、液晶保護シートを貼ったら解消した。専用のシートがないので、ノートパソコン用のでっかいシートを切りぬいて使っている。かなり割安だが、切り口の加工がヘタくそなので不細工。
電源スイッチ
電源OFFすると画面ロック状態になるのは使いやすい。X01T は別々にセットしなきゃならなかった。
動画
X01T では、YouTube からダウンロードした flv データを TCPMP で直接見ることができた。その他の avi ファイルも、見れるものがたくさんあって重宝してた。HTC Magic では見れる動画フォーマットが限られているのが残念。
ただし、flv は見れないけど、YouTube で fmt=18 の MP4 フォーマットでダウンロードしたものならOK。WMV も見れるやつがあるので、それほど深刻には困らない。WiFi 環境ではストリーム視聴ができるので、そっちの方が使い出があるかもしれない。
カメラ
X01T のカメラはしょぼしょぼだったので、HTC Magic の圧勝。不満点はシャッター音を消したいくらい。そのうちなんとかしよう。
PC連携
AndroidMarket がちょっと使いにくい。端末側で操作完結するのはいいのだが、欲しいアプリを探すところは PC とかで行いたいと思う。いまのところ、PCのブラウザでよさげなアプリを見つけても、端末の AndroidMarket メニューで再検索しないとインストールできない。検索などの操作はすべてPC側で行い、ボタン一発でケーブル接続した端末にインストールしたいところ。
SDカードをPC側本体側同時にマウントできないのも不便。Android に挿した SD カードは、ケーブルで繋がった PC からはリムーバルディスクに見える。Android側 でマウントする操作を行うと、PC からみえるようになるが、Android 側からはアクセスできなくなる。PC に妙なソフトをインストールしなければならない Windows Mobile の ActiveSync よりはマシだが。
Android Bazaar and Conference 2009 Spring
日本アンドロイドの会主催の Android Bazaar and Conference 2009 Spring に行ってきた。午前中の docomo や Google の講演は申し込み時にすでに満員で入れなかった。無料とはいえ、平日の昼間に数百の人間が集まるんだから、Android への関心の高さが分かる。デザインのセッションでこないだのGoogleが配ったAndroid携帯を持っている人と言ったら、2、3割の人が手を挙げたから、あっちから雪崩れ込んできた参加者も相当いたみたい。
駅からイベント会場に向かう道や会場前の広場でワイシャツにスラックスという夏のビジネスマンの格好をした人をたくさん見かけたので、さすがdocomo 関連は客層が違うなぁと関心してたら、別のセミナーの参加者だった。国立オリンピック記念青少年総合センターは大きくて、いろんな団体が会合をやってるのでした。
Androidのオープンソースアプリ戦略 佐々木 陽 株式会社GClue 代表取締役
Google側の戦略の話ではなくて、Android に群がるハードソフトメーカー側の話。というか、GClue自身や関連する China Moblie の製品紹介が主でした。大手はオープンソースで標準化を狙い、弱小企業はクローズドソースで差別化を狙う、というまぁ当たり前の結論ながら、これまで弱小では手が出せなかったミドルウェアやフレームワークの開発も、オープンソースの上に乗っかればなんとかなりそうという話もあり。
China Mobile が開発している Android ベースのスマートフォン OPhone は、Linuxカーネルを最適化し、TV やら WAP ブラウザやら既存のJavaVMやら(AndroidはGoogle製のJVM) をなんだかんだぶっこんで1年で開発したそーな。
アプリデザイン、色使いで差を付けろ! 矢野 りん デザイナー/ライタ
いいアプリを作っても、アイコンがダメだと Android Market で目立たないと選んでもらえない。逆にアイコンがよければ、CDのジャケ買いのようにアイコンデザインのみでユーザーに選んでもらえるかもしれない。なるほど。
・Android Market の背景は黒。これでは原色でも目立たない。白っぼい色(パステル調)がよい。
・寒色(青系)は引っ込んで見えるの。
・アイコンの中身と同系色で暗い色の外枠をつけると立体感が出る。
・光が当たる位置を明るく塗った3Dデザインの方がかっこいい。
・同じメーカーが出すアプリの色を統一してブランド化するという手もあり。
・文字は小さいとつぶれるのでよくない。
・目立つ色のキャラものがいい。
・色を設定するときは、RGBよりも色相と明度で調節した方がいい。
セカイカメラのつくりかた 近藤 純司 頓智ドット株式会社
セカイカメラとは、モバイル機の位置情報をキーにしてサーバーに写真やテキストなどを格納しておき、現地で取り出して実際の景色にそれらの情報を重ねて表示するもの。
開発における具体的な手法の話が多くて面白かった。
センサ
・加速度やコンパスの現データは値が細かく変動して安定していない。ソフト的なローパスフィルタを入れて使っている。
・位置測定には GPS 以外に PlaceEngine (koozyt) を使っている。PlaceEngine は無線LANの電波から位置を判定するもので、室内でも有効。
・GPS の読み出しは無線LANからの位置測定の10倍の電力を使う。
カメラ
・android.hardware.Camera の autoFocus() で設定するコールバックから呼び出される onPreviewFrame で指定したフォーマットでデータが読み出せない。
性能チューニング
・起動時間は logcat の出力で測定。 フレームレート onDraw() の呼び出し間隔で見る。
・セカイカメラは Activity はひとつだけで、View をとっかえて表示している。背後のカメラキャプチャ映像を絶やさないため。起動時に全ての View を必要としないので、起動時に展開しないView を ViewStub で指定。 起動時間が 4.59s -> 4.15s に短縮。
・Hierarchy Viewer で View の構造を調査して、不要な View を探す。
・NoBackground style で @null を指定して不要な背景を描画しないようにしたら、フレームレートが向上。 21.2fps -> 30fps
・GC! DDMS の Allocation Tracker でメモリ消費量を調査。実行中のメモリ割付をやらないようにする。
・XmlPullParser がメモリを食うので、JSON とかに置き換えることを検討。
Androidで3Dグラフィクスを極める道 Vol.2 高橋 憲一 日本Androidの会 幹事
3D に興味はあるが、OpernGL とかやってないので半分以上ちんぷんかんぷん。
圧縮テクスチャ
・メモリ使用効率向上
・ハードウェアで伸張。ATITC方式とPVRTC方式がある。
・HTC 製 Android では ATITC が使えるが、定数が未定義なので裏技っぽい。
0x8c92 - ATITC_RGB 0x8c93 - ATITC_RGBA
Matrix Palette
・間接で繋がっているモデルにおいて、間接の先の部品の位置を自動的に計算してくれるもの。現在未サポート。
Vertex Buffer Object (VBO)
・頂点データをGPU側メモリに置くことでデータ転送のオーバーヘッドを節約。形状の変化しない背景データの描画などに有効。
・プログラムでの具体的な使い方の例が紹介されたが、よく分からず。
GLSurfaceView
・onPause onResume で使えるという話は先日Googleでも聞いた。
NDK
・native-code サポートキットが出た。次回はこの話?