FragmentTransaction機能とアプリをリリースする上での心構え
Fragmentを用いたスマートフォンアプリ
Fragment機能の説明をした際にFragmentを用いることで、UIや振る舞いをタブレットアプリとスマートフォンアプリで共通化できるということを説明したかと思います。
ここでは実際に先ほど作成した3つのFragmentを用いて、スマートフォンアプリを作成する手順について簡単に説明します。
なお、Fragment機能はAndroid3.0から追加された機能ですので、エミュレータの環境はAndroid4.0のものを準備して実行してください。
Activityの準備
スマートフォンアプリでFragmentを使う場合、1つのFragmentに対して1つのActivityを作成することになります。
今回は3つのFragmentを使いますので、3つのActivityを作ります。例えば、MyListActivity,MyWebViewActivity,MyDetailViewActivityのような3つのActivityを作成することでActivityの準備は完了です。
また、先ほど作成したFragmentと、Fragmentで利用するdetail.xml を、HelloFragmentプロジェクトからコピーしてください。
Activity間の連携
各Acrivity間の連携はIntentを使って行います。MyListActivityでリストアイテムがクリックされたら、IntentにURLを設定し、MyWebViewActivityをstartActivityで呼び出す形になります。
また、MyDetailViewActivityのように編集した結果を戻す必要があるActivityは、Activity終了時にsetResult()メソッドで編集した結果を設定後、finish()メソッドで呼び出し先のActivityに編集されたデータを戻してください。
今回はスマートフォンアプリの連載ではないので、詳細なコードの説明は割愛させて頂きます。実際に上記の対応を行い、Fragmentを使った形のソースコード一式は、会員限定特典としてダウンロードできます。記事末尾をご確認ください。
Fragmentには全く手を加えずにスマートフォンアプリとして動作するようになっていますのでご確認ください。
アプリをリリースする前に
最後になりますが、アプリをリリースする前に気をつける点を記載します。
- それはホントに画像を使う必要があるか検討する
- 例えば、画面の背景に画像を使う場合、その画像だけでメモリを圧迫します。特にタブレットアプリは画面サイズが大きいので、それだけでメモリをかなり使います。ですので、背景画像やボタンなどに画像を使う場合はよく検討してから利用してください。
例えば、グラデーションを用いた背景や陰影のあるボタンなどはShapeを使うことで実現できますので、それらの利用を検討してください。 - それはホントに実機で動くのか試す
- アプリ開発時は大抵の場合、エミュレータを使って開発していると思います。エミュレータは所詮疑似的な環境ですので実機とは動作が異なる箇所が多々あります。ですので、リリースする前には少なくともターゲットとしている実機で動作を確認してください(といっても、これは個人にはなかなか難しいのですけどね...)。
- それはホントに実際に使う人の環境になっているか検討する
- Androidアプリを実機で開発している場合、よく「スリープモードにしない」にチェックを入れていることがあります。ただ、実際に使う人はそんな設定にはしてないですし、していたとしても電源に繋ってない場合はスリープモードになってしまいます。
スリープモードになった際にはActivityは画面から消える状態になるため、onPause()メソッドが呼び出されます。開発時に「スリープモードにしない」にチェックを入れたまま開発していると、スリープモードに入った際にもonPause()が呼び出されるということを忘れがちになります。
必ず、リリース前には「スリープモード」になった場合にも問題ないかを確認してください。 - それはホントに解像度に合った画像になっているか確認する
- Androidは画面が小さい端末やタブレットのように画面が大きい端末まで、画面のサイズだけ見てもいろんな端末があります。幸いAndroidには画面解像度に合わせて画像リソースを自動的に選択する機能がありますので、見た目を気にするアプリを使う場合は解像度に合わせた画像リソースを準備してください。
- 最後にちゃんとテストしましょう
- Androidマーケットにリリースされたアプリは良くも悪くもダウンロードしたユーザーの評価がつけられます。最初にリリースしたバージョンに致命的な不具合があり、その際についてしまった評価はいくら改善しても、なかなか良くなりません。
最初が一番肝心です。無理をせず、自分たちが確実に出せる範囲でまずはリリースしましょう。
さいごに
この連載を読んで頂いた皆さま、おつかれさまでした。これにて、この連載は終了となります。これまでに書いた内容がみなさんのタブレットアプリ開発に役に立てばと思います。
また、どこかでこのような連載をすることがありましたら、またお読みいただければと思います。ありがとうございました。
「HelloFragment」サンプルプログラム
「HelloSmartphone」サンプルプログラム