端末に依存しないアプリを開発する

端末に依存しないアプリを開発する

さて、一口に端末依存といっても、さまざまな要素があります。ここでは大きく、「表示」、「操作」、そして「機能」の3つに分けて考えてみましょう。

「表示」は、画面の表示内容にかかわる部分です。

例えば、設定でユーザーが選択している言語が日本語か英語かによって表示する言語を切り替えたり、また、画面の解像度やディスプレイの向きによって一画面に表示する内容やレイアウトを変えたりする必要があります。

「操作」は、ユーザーが端末を操作する入出力装置にかかわる部分です。

前述のとおり、Xperiaには、HT-03Aにはある「トラックボール」が搭載されていません。従って、トラックボールがあることを前提に設計すると、Xperiaでの操作ができなくなってしまいます。

また、先に述べたように、ハードウエアのキーボードの有無や、検索キーなどの特殊キーの有無についても検討しておく必要があります。

「機能」は、端末自身に備わる機能にかかわる部分です。

Androidでは、搭載しているセンサー・デバイスの種類や位置情報を取得する手段(衛星測位/基地局情報)が共通であることも保証されていません。このため、XperiaにあってHT-03Aに無いセンサー、またその逆も存在するのです。

位置情報やセンサーを活用するアプリの場合、機能そのものが存在しない場合は、手の打ちようがありません。しかし、利用する機能が無い場合にはメッセージを出すなどして、ユーザーに非対応の端末であることを通知する必要があるでしょう。

以上、具体的な対応方法については後の回に説明するとして、アプリを開発する上では、表示や操作に関する対応を、検討する指標にしてください。

大切なのは、「同じこと/あること」を前提に考えるのではなく、「違うこと/無いこと」を前提に考えるということです。機能の違いを確認し、その差分を埋めていく。複数端末への対応は、地味で、しかし非常に大切な作業です。

全機種テストの恐怖

複数端末対応について話をすると、「現在使用されている端末の全機種を使ってテストしなければならないのか」という質問を受けることがありますが、個人的にその必要は無いと考えています。

なぜなら、上に挙げた3つのうち「表示」や「操作」に関しては、かなりの部分を、コードそのものを変更せずに対応できるからです。

また「機能」に関しても、機能そのものの有無を検出したり、最適な代替手段を選択する補助的なAPIが用意されているので、それらを利用してケースごとの処理を切り替えたり、場合によっては代替処理を実装したりすれば事足りるのです。

さらに、アプリケーションの挙動は、多くの場合、エミュレータを適切に設定することで検証が可能になるので、実際の端末上で動かさなければ現象が再現できないことは極めてまれです。

(ここで言う複数端末への対応とは、各端末の「表示」「操作」「機能」の違いを意識して対応することを言います。同じバイナリで、端末固有のエラーが発生しないかを検証/対応する作業ではないことをご理解ください)

しかしながら、これまでの携帯アプリの開発に慣れている人ほど、全機種テストに対する恐怖が根強くあるようです。

そこで、次のページでは、実際に複数端末対応の仕組みの中心になる「リソース・マネージャ」について見ていきましょう。

この記事のキーワード :

人気記事トップ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