2011

Android Bazaar & Conference Summer 2011に行ってきた所感要点だけまとめ

Android Bazaar and Conference Summer 2011というAndroidのイベントに参加してきました。2011年7月17日@早稲田大学。 細かいことは置いておいて、気付いたことの要点だけ書く。聞いたセッションは以下。 主にDeNA、GREE、CyberAgentのセッションを聞いてきて、DeNAは2セッションあってどちらもngCore関係(2つ聞いたんだけど、ほとんど内容同じだった。)、GREEはGREE Platform、CyberAgentは自社の開発環境や体制についての話。

外部のActivityを明示的Intentで開始するやりかたの要点だけ

Androidアプリの開発で、パッケージ名およびActivity名が分かっているアプリを、自分のアプリから起動したい時がある。たとえばプリインストールのGoogle製アプリとか。 この場合も、自パッケージ内の明示的インテントと同様に起動することができる。具体的には以下みたいにする。 Intent i = new Intent(); i.setAction(Intent.ACTION_MAIN); i.setClassName(“com.example.external.package”, “com.example.external.package.SomeActivity”); //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //外部Activityを自分のActivityスタックとは別に立てたいとき。 startActivity(i); 注意点として、setClassName(String packageName, String ActivityName)するときに、ActivityName側もフルパッケージ名で指定する必要があること。これをしないとClassNotFoundExceptionになる。 あと、setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)しないと、例えば起動したアプリをHOMEボタンで終了した後にもう一回自分のアプリを立ち上げた時、自分のパッケージから起動したSomeActivityの方の画面が出てよくわからない事になる。これを避けるにはIntent.FLAG_ACTIVITY_NEW_TASKフラグを指定した状態でstartActivity()する。 このへんはTASKについて整理する必要がありそうだけど、別の機会にします。

OSX Lionから”Mac”が消えたことを深読みすると見えてくる未来

OSX LionのGM seed(「ほとんど完成版」ていう意味で、問題がなければこのまま出荷される)が出たそうで、OSX Lionの一般リリースも今週末だとか来週の7/12だとか噂が出始めた。 OSX Lionの目玉は以前のエントリでも述べたLaunchpadやMission Control、マルチタッチジェスチャーなどで、これはiOSで培われたフルスクリーンUIの操作性をMacの世界にも取り込んだことだけど、今回はOSX Lionでこっそりと行われた大きな変更、OSXから”Mac”の文字がはずれたことに注目したい。

iOS Notification(通知)バッジナンバー表示の要点だけ

iOSのNotificationでは、アプリケーションアイコンの右肩に数字(バッジ)を表示することができるけど、その数字を消去するときにちょっとした落とし穴があるのでメモ。まずはUIApplicationオブジェクトを取得して直接バッジを設定する場合。 (1)アプリケーションオブジェクト(UIApplication)を通じて直接、バッジ設定する場合 .applicationIconBadgeNumber = badgeNumber; この場合は、badgeNumber(NSInteger)の数字が正の数であれば、バッジ数字が表示、ゼロであればバッジアイコンは消去される。 ではローカル通知を通じた場合はどうなるか。 (2)ローカル通知オブジェクト(UILocalNotification)を通じたバッジ設定の場合。ちなみにローカル通知はiOS4から利用可能 NSInteger badgeNumber = 1; UILocalNotification *notification = init]; notification.fireDate = ;//30秒後 notification.alertBody = @”ローカル通知メッセージ“; notification.applicationIconBadgeNumber = badgeNumber; scheduleLocalNotification:notification]; ; badgeNumberが正の数であれば、通知時に該当アプリのバッジにその数字が設定される。しかしゼロの場合は、直前のバッジ数字がそのまま残る。消去したい場合は、applicationBadgeNumberに負の数を設定すれば良い。ちなみに(1)のパターンのときもゼロでなく負の数を与えてもバッジは消える。

Android Developerサイトにあるデザインテンプレートまとめ(PSD)

Android Developersサイトを見ていたら、色んなところにデザインテンプレートが落ちていたのでメモ。慣れるまではこれを下敷きにすれば、効果的にデザインが作れるのではないでしょうか。PSDで提供されてるので使いやすい。 1.アイコン 色んなアイコンテンプレート詰め合わせ。 http://developer.android.com/intl/ja/guide/practices/ui_guidelines/icon_design.htm 中身は以下のとおり ・ダイアログ ・ランチャー(HOME) ・リスト ・メニュー ・通知 ・タブ Icon Templates Pack for Android 2.3 http://developer.android.com/shareables/icon_templates-v2.3.zip 2.ウィジェット ウィジェットもサイズに合わせて色々とテンプレが用意されてました。 http://developer.android.com/intl/ja/guide/practices/ui_guidelines/widget_design.html 4x1_Widget_Frame_Portrait.psd http://developer.android.com/images/widget_design/4x1_Widget_Frame_Portrait.psd 3x3_Widget_Frame_Portrait.psd http://developer.android.com/images/widget_design/3x3_Widget_Frame_Portrait.psd 2x2_Widget_Frame_Portrait.psd http://developer.android.com/images/widget_design/2x2_Widget_Frame_Portrait.psd 4x1_Widget_Frame_Landscape.psd http://developer.android.com/images/widget_design/4x1_Widget_Frame_Landscape.psd…

AndroidアプリをSDカードにインストール可能にする要点だけ

Android 2.2 “Froyo” からandroidmanifest.xmlで設定することでSDカードへのインストール、移動が可能になった デフォルト設定は「端末のみ可」なので注意 <manifest>の要素にandroid:installLocationを指定する。 auto:通常端末内。端末容量が足りないときにSDカードへ。端末とSDカード間で移動可能 internalOnly:端末内のみインストール可。android:installLocationを設定しないときのデフォルト値 preferInternal:SDカードに優先的にインストール。SDカードの容量が足りないときに端末インストール。事後インストール可。 アプリがSDカードにあるときも各種データは端末内。 <追記> つまり、アプリ側が対応してないと、SDカードに移動することは無理ってことですね。rootedな環境とかは知らない。

iCloudで訪れたiOSの「終わり」

先日のWWDC 2011で事前の予告通り、Mobile meの後継になるクラウドサービスとなる”iCloud”が発表された。 そして発表のKeynoteの中で語られたのは、iCloudは単なるネットサービスの枠を越えて、Appleの戦略上とても重要な位置を占めるものということだった。 「10年前にAppleはデジタルハブというビジョンを掲げた。Macが様々なデジタル機器、メディアの中心になる」とジョブズ氏は語った。当時はまだやっとADSLが普及し出した頃だったしiPhoneみたいな小型の機器に一昔前のスーパーコンピューターに匹敵するみたいな性能が搭載されるなんてまだまだ先の話と思われた。レインポーiMacの発表はぶつぶつ切れるアナログモデム経由で見たんだった。