続・ショートカット作成アプリ
もともとは来るべきActionBarActivity
への移行に備えて手を動かしてみようということで、アプリ内に存在する任意のActivity
を起動/ショートカット作成を行う、というアプリを作ってみたんだけど、なかなか面白かった。
開発者向けオプションへ直で飛べるショートカットを作成できたり(普通にやる方法があるのかもしれないけど)、バージョンによってはマルチタスクボタンをショートカット化できたりする。
あとは外部非公開のActivity
を覗き見するほか、テスト用と思われるActivityを起動することもできる。画像はChoromeのもの。新しいAPIのテスト用なんだろうか。
ActionBarActivityの感想など
ActionBarActivity
への移行自体はそこまで大変じゃないけど、タブレットのサポートを踏まえたFragment
の分割など、事前に考えることが多くなりそうな感じ。しかし見た目がぐっとAndroidっぽくなるのはいいよね。2.X時代のゾンビアプリのメンテナンスはもう嫌だ…。
あと、このアプリでやることがあるとすれば、設定画面を作るくらいなんだけど、Deprecated
だらけのPreferenceActivity
はActionBarActivity
として使えないので論外として、PreferenceFragment
は相変わらずCompatibilityサポートの対象になってないみたいで詰んでる。
設定画面の自作が大変というわけではないけど、SherlockPreferenceActivity
相当がないのは痛い。公式のActionBarActivity
を使うメリットがいっこ減った感じ…。
あとAndroid lint
で@NewAPI
で互換性に問題のあるメソッドを呼び出していないかチェックをし
ているのだけど、 KitKatで挙動が変わったメソッド についてまでは追跡してくれないのね。
具体的には、ListView
のaddHeaderView()
は、setAdapter()
を呼び出す前に実行しなければならない制約があったのですけど、KitKat以降ではいつでも呼び出せるように変更されています。
結果として、KitKatでは合法なコードが、過去バージョンだと実行時エラーになるという…。こういう複数のバージョンの端末持ってないとバグを検出できない仕様変更はやめて欲しい所存。
ListFragment
で楽をしようと思うと、addHeaderView()
を使いたくなるけれど、setEmptyText()
を設定するとヘッダの部分も消える(ヘッダもListView
の一部だから当然といえば当然なんだけど)ので、そもそもヘッダとリストを別のFragment
として制御した方がよさそう。
よくあることだけど
QuickShortcutMaker - Android Apps on Google Play
自分が作ってるのより、はるかに洗練されてるアプリがストアにあった。