iPhoneヒューマンインターフェースガイドラインより。iOSベースのデバイスで動作するアプリケーション開発時の留意点で覚えておきたいことを書き出し。
-----■念頭に置くべきデバイスの特徴-----
<コンパクトな画面サイズ>
iOSベースのデバイスは、小さく、かつ高解像度の画面となるため、ユーザインターフェイスは重要なものに焦点を絞るようにする。
<メモリの制限>
メモリはiOSでは重要なリソースであり、メモリを管理することは非常に重要。iOS仮想メモリモデルにはディスクスワップスペースは含まれないため、デバイス上で利用可能なメモリより多くのメモリを割り当てないように注意する。
メモリ不足の状態が起こった場合、iOSは実行中のアプリケーションに警告を発し、問題が持続するとアプリケーションを終了させる場合がある。メモリ使用量の警告にすぐに対応し、タイミング良くメモリをクリーンアップするようにしておく。
<ユーザが目にするのは一度に1画面>
iOS環境とコンピュータ環境の最も大きな相違の1つは、ウインドウパラダイムである。モーダルビューの一部を例外として、ユーザがiOSベースのデバイス上で目にする画面は、一度に1つとなる。
iOSアプリケーションには、必要なだけ異なる画面を含めることができますが、それらの画面を順に見ることはできても同時に見ることはできない。
<ユーザが対話するのは一度に1つのアプリケーション>
フォアグラウンドに表示できるのは一度に1つのアプリケーションだけ。ユーザがあるアプリケーションから別のアプリケーションに切り替える場合、前のアプリケーションは終了される。
4.0より前のiOSでは、終了するアプリケーションはすぐにメモリから削除されていたが、iOS 4.0以降では、終了するアプリケーションはバックグラウンドに移行され、継続することも、しないこともできる。
この機能はマルチタスキングと呼ばれ、再起動されるか終了されるまで、アプリケーションをバックグラウンドに残しておくことができる。
ほとんどのアプリケーションは、バックグラウンドに移行すると一時停止状態になる。アプリケーションを再起動する場合、ユーザインターフェイスを再ロードすることなく、終了した時点からの実行の再開を簡単に行うことができる。
アプリケーションによっては、ユーザがフォアグラウンドで別のアプリケーションを実行している間、バックグラウンドでの実行を継続しなければならない場合がある。
たとえば、ユーザは別のアプリケーションを使っている間も、オーディオ再生アプリケーションに再生を継続することを求めると想定される。
----------------------------------------
メモリ周りとマルチタスキングはポイントかなと。WEBで調べてみると、iOS系アプリにはガベージコレクションが無いという記述もちらほら見かけるので、本来は基礎中の基礎ですが、いらないメモリをしっかりと開放することは重要ですね。
-----■念頭に置くべきデバイスの特徴-----
<コンパクトな画面サイズ>
iOSベースのデバイスは、小さく、かつ高解像度の画面となるため、ユーザインターフェイスは重要なものに焦点を絞るようにする。
<メモリの制限>
メモリはiOSでは重要なリソースであり、メモリを管理することは非常に重要。iOS仮想メモリモデルにはディスクスワップスペースは含まれないため、デバイス上で利用可能なメモリより多くのメモリを割り当てないように注意する。
メモリ不足の状態が起こった場合、iOSは実行中のアプリケーションに警告を発し、問題が持続するとアプリケーションを終了させる場合がある。メモリ使用量の警告にすぐに対応し、タイミング良くメモリをクリーンアップするようにしておく。
<ユーザが目にするのは一度に1画面>
iOS環境とコンピュータ環境の最も大きな相違の1つは、ウインドウパラダイムである。モーダルビューの一部を例外として、ユーザがiOSベースのデバイス上で目にする画面は、一度に1つとなる。
iOSアプリケーションには、必要なだけ異なる画面を含めることができますが、それらの画面を順に見ることはできても同時に見ることはできない。
<ユーザが対話するのは一度に1つのアプリケーション>
フォアグラウンドに表示できるのは一度に1つのアプリケーションだけ。ユーザがあるアプリケーションから別のアプリケーションに切り替える場合、前のアプリケーションは終了される。
4.0より前のiOSでは、終了するアプリケーションはすぐにメモリから削除されていたが、iOS 4.0以降では、終了するアプリケーションはバックグラウンドに移行され、継続することも、しないこともできる。
この機能はマルチタスキングと呼ばれ、再起動されるか終了されるまで、アプリケーションをバックグラウンドに残しておくことができる。
ほとんどのアプリケーションは、バックグラウンドに移行すると一時停止状態になる。アプリケーションを再起動する場合、ユーザインターフェイスを再ロードすることなく、終了した時点からの実行の再開を簡単に行うことができる。
アプリケーションによっては、ユーザがフォアグラウンドで別のアプリケーションを実行している間、バックグラウンドでの実行を継続しなければならない場合がある。
たとえば、ユーザは別のアプリケーションを使っている間も、オーディオ再生アプリケーションに再生を継続することを求めると想定される。
----------------------------------------
メモリ周りとマルチタスキングはポイントかなと。WEBで調べてみると、iOS系アプリにはガベージコレクションが無いという記述もちらほら見かけるので、本来は基礎中の基礎ですが、いらないメモリをしっかりと開放することは重要ですね。