Fragmentを用いたスマートフォンアプリ

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マーケットにリリースされたアプリは良くも悪くもダウンロードしたユーザーの評価がつけられます。最初にリリースしたバージョンに致命的な不具合があり、その際についてしまった評価はいくら改善しても、なかなか良くなりません。
最初が一番肝心です。無理をせず、自分たちが確実に出せる範囲でまずはリリースしましょう。

さいごに

この連載を読んで頂いた皆さま、おつかれさまでした。これにて、この連載は終了となります。これまでに書いた内容がみなさんのタブレットアプリ開発に役に立てばと思います。

また、どこかでこのような連載をすることがありましたら、またお読みいただければと思います。ありがとうございました。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30