投稿

8月, 2011の投稿を表示しています

2週間の夏休みはActionBarとFragmentにどっぷり

正直な話、一度きれいに動作した多くのActivityだけでできたアプリをFragment化することは億劫なことで、やる気もなかなか出てきません。 しかたがなく、夏休みの夜はこれに対応することにしました。  いやいやなのでなかなかFragmentとActionBarのことは頭にはいらなくて、苦労しましたが、亀のような遅さで、2週間かけて移植しました。 が、できたコードは美しくなく、混乱もかなりありました。 その後、1週間かけてリファクタリングしてどうにか、馴染めるコードになってきましたが、Android Compatibility Package(androdi-support-v4.jar)を使っているため、Tabletで動かしてみてはPhone動かすという2重手間であまり楽しくないのが現状です。 ボクから観て、複雑さを嫌うGoogle System設計者は、今後Androidはまだまだ改良されるのでは?と思っています。 まぁ、これによって、さらに混乱しそうですが前進を止めることはないでしょう。

match_parentを使うのは"8"以降

ご存知のようにレイアウトの"fill_parent"はLevel 8 APIで"match_parent"へrenameされた。 これはAndroid2.2以降だが、すぐに"match_parent"を使うかは微妙で、現在作成中のアプリがlevel 7対応なのでfill_parentを使うことにしている。 これはGoogleオフィシャルのアプリを見たところそうなっているためで、Leve7非対応になった時点で"match_parent"へ変更する予定。 しなくていいリスクは避けるべきである。

MacBook Ubuntu 11.4 Unity対応、キーボードの円(¥)マークをバックスラッシュへ変更

日本用MacBook proにてUbuntu 11.4 unityを使う際、そのショートカットを利用するにはキーボード、レイアウト設定を、 Apple Aluminium Keyboard(JIS) するとうまくUnityのショートカットが使える。 しかし、現在副作用(Bug?)があって、¥を押すとunicodeの「¥」が表示されてしまい。  terminal, eclipseやemacs上で正規表現の指定などが不便になってしまう。 そこで以下の方法で解決。 ~/.xmodmapというファイルを作成 keycode 132 = backslash bar prolongedsound を一行入力 (注意・日本語キーボードの場合) xmodmap ~/.xmodmap で反映して試す。 うまくけば、起動時に~/.xinitrcを使って反映させれば完成である。 以下のサイトを参考にした。 (自動起動の詳細有り) http://lqwerty.blog44.fc2.com/blog-entry-246.html Thanks!  

Cannot cast from Fragment to X

例えば FragmentManager fm = getSupportFragmentManager(); mMyListFragment =  (MyListFragment)fm.findFragmentById(R.id.my_list_fragment); と書き、 Cannot cast from Fragment to MyListFragment. とエラーが発生したときは、Android Compatibility PackageとAndroid3.0以降のFragmentを混在してしまっている可能性がある。 どちらかにすべて統一しなければならない。 Android1.6からAndroid3.0未満でも動作させるならば、Android Compatibility Package。  

Phone or tablet

フォンかタブレットかをandroidで判断する方法 (ioschedから抜粋) public static boolean isHoneycomb() { // Can use static final constants like HONEYCOMB, declared in later versions // of the OS since they are inlined at compile time. This is guaranteed behavior. return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; } public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; } public static boolean isHoneycombTablet(Context context) { return isHoneycomb() && isTablet(context); }

Mercurialとgit

gitを使っていて、困ることは、大きなもので二つある。 Windowsのexeバイナリ等を含めると、安定しない点がある。  同名(.exeなし)のlinux用コマンドと混乱するようで、cygwin上で安定した運用が出来ないことである。 その点、google codeで使われているmercurialはいい感じなようで、tortoiseHGと併用するとスムーズにWindows環境でも動作するようである。  もうひとつはデザイナーやアシスタントを含めて教えるのが非常につらい点がある。 visual sorce safe(パフォーマンスを無視すれば)はこのあたりは突出して説明しやすかったが、分散型は結構難しい。 その上、gitはオプションが細かすぎてしまうので、hgのほうが*まだ*説明がしやすい。 mercurialはcommandの流れはgitとよく似ているので、時間があるときに使ってみたいと思う。