iOSアプリケーションのアーキテクチャについて

使い勝手のよいアプリケーションを実現するためには、iOSとの連携が不可欠です。アプリケーションそのものの設計やユーザインターフェイス以外にも、さまざまな要因を考慮しなければなりません。ユーザはiOSアプリケーションに対して、きびきびと動作するだけでなく、省電力であることも期待します。さらに、最新のiOSデバイス上で動作する一方、個々のデバイスに適合した挙動であることも重要です。こういった事柄をすべて考慮しながら実装するのは、最初は大変そうに思えるかも知れませんが、iOSには必要な支援機能がそろっています。

../Art/ios_pg_intro_2x.png

この資料では、アプリケーションがiOSとうまく連携するようにするために考慮するべき、主な事項を解説します。ここで説明する機能をすべて実装することはないかも知れませんが、ひと通り検討してください。

概要

着想を具体的なアプリケーションに実装する段階では、システムとアプリケーションとの間でどのようなやり取りが発生するか、理解しておく必要があります。

どのアプリケーションにも必ず実装するべき、鍵となる機能がいくつかある

システムはあらゆるアプリケーションに、アイコンや、動作のために必要なハードウェア機能に関する情報など、所定のリソースや設定データがあるものと想定しています。Xcodeはプロジェクトを新規に作成する際、若干の情報を用意しますが、リソースファイルは開発者が作成しなければなりませんし、App Storeに登録するまでに、情報が正しいかどうか確認することも必要です。

アプリケーションは適切に定義された手順で動作する

アプリケーションは、ユーザが起動してから終了するまで、適切に定義された手順にそって動作します。この間に、フォアグラウンド状態とバックグラウンド状態が切り替わるほか、一時停止した後に再起動したり、一時的にスリープ状態になったりすることもあります。状態が切り替わると、アプリケーションに対するシステムの想定も変わります。フォアグラウンド状態であればほとんどあらゆる処理が可能ですが、バックグラウンド状態の間は、実行する処理を最小限に抑えなければなりません。状態が遷移する機会に挙動を切り替えてください。

アプリケーションはマルチタスク環境で効率よく動作しなければならない

電池の「持ち」はユーザにとって、処理性能や応答性、使い勝手に劣らず重要です。電力消費を抑えれば、充電せずにまる一日動かすことも可能になるでしょう。一方、迅速に起動し、即座に実行できることも重要です。iOSに実装されているマルチタスク機能の恩恵で、応答性や使い勝手を犠牲にすることなく、省電力化を図ることができますが、そのためにはアプリケーションも、システム側の挙動を考慮する必要があります。

アプリケーション間の通信は所定の経路でおこなう

セキュリティ保護のため、iOSアプリケーションはサンドボックス内で動作し、他のアプリケーションとのやり取りも制限されます。通信は所定の方法で実行しなければなりません。

アプリケーションの性能調整は重要である

アプリケーションが実行するタスクにはすべて、電力消費というコストがかかります。電池を無駄に消費するアプリケーションは使い勝手が悪いので、1回の充電で何日も動作するものの方が好まれるでしょう。したがって、それぞれの処理のコストを意識するとともに、システムの省電力機能を有効に活用してください。

この文書の使い方

この資料は、iOSアプリケーション開発の初心者向けではありません。App Storeでの配布に向けて、アプリケーションの仕上げ段階に到った開発者が対象です。アプリケーションがシステムとどのようにやり取りするか、円滑にやり取りできるようにするにはどうすればよいか、を検討するためのガイドとして利用してください。

お読みになる前に

この資料では、iOSアプリケーションのアーキテクチャに関する詳細な情報を提供するとともに、アプリケーションレベルのさまざまな機能を、どうすれば実装できるか紹介します。iOS SDKをインストールし、開発環境が設定済みであること、Xcodeでアプリケーションを作成、実装するための基本事項を理解していることが前提です。

iOSアプリケーションの開発が初めてであれば、『Start Developing iOS Apps (Swift)』を読んでください。手順を追って開発の流れを解説しているので、短期間で作業を波に乗せることができるでしょう。簡単なアプリケーションを実際に開発し、動かしてみながら、開発工程をひと通り体験できるようになっています。

関連項目

iOSについて学びたければ、iOSアプリケーションに組み込める技術や機能を解説している、『iOS技術の概要』を読むとよいでしょう。