iOS4になって、アプリを開いている最中に環境設定も開けるようになったわけで、ドキュメントにもそれに備えろよ、と言うことは書いてありますが、じゃあ根本的な設定が変わったらどうするの?と。その最たるモノが言語設定。途中で変わると画面から何から作り直さなくてはいけないので、どうなるかと試してみた。
まあ、当たり前と言えば当たり前だが、アプリは黙って殺されます。初期化にし直しましょうと言うことでしょうか。
関心空間作ってます。他には駅ベル, NoMeMo Busters, Ramblin, TapBar, など。 興味あるのは Mac, Newton, iPhone, Django, nginx, PHP, CakePHP, Python, Objective-C, Smalltalk, Programmer, Dog, 阪神Tigers
2010-07-06
2010-06-17
iOS 4のマルチタスクへの対応
前のポストで、そもそもiOS 4に対応するフェーズをまとめました。で、iOS 4に対応するとした場合、どの機能に対応するとどうなるかをまとめます。
バックグラウンド・オーディオ
Info.plistでバックグラウンドでの再生を希望する旨を記述しておくと、バックグラウンドに回った場合の音の再生処理が継続して行えます。アプリ側で特別にやらなくてはいけないことは増えませんが、メモリの使い量、I/Oの使い方など工夫しなくてはいけなくなると予想されます。
Voice over IP
バックグラウンドロケーション
Info.plistでロケーションを取得したいと記述しておくと、バックグラウンドにいるときも位置情報を取得できるアプリが作れます。バッテリーのことを考えると一番やっかいな種類のアプリです。
タスクの完了待ち
これら上記の特定用途のマルチタスク機能と関係なく、すべてのiOS 4対応アプリは、バックグラウンドに回る前に一定期間の猶予が与えられます。まだ仕事完了してないよって場合には、ブロックで処理を記述して実行させることができます。この処理が終わるまでサスペンドはされません(見た目上バックグラウンドに回ったことにはなります)。一定時間を過ぎてもタスクが終わっていない場合、システムのやつは勝手に殺すぞと言ってますので気をつけましょう。
ローカル・ノーティフィケーション
上記のバックグラウンド処理がユーザーに通知するUIとしてローカル・ノーティフィケーションが追加されてます。
これ以上の詳しい情報は、iPhone developer登録をすればドキュメントで見れますので、各自調べること。
高速アプリ切り替え
SDK 4.0でビルドすると自動的に対応します。ただし、マルチタスク自体のアプリとしては、裏に回ったときの正しい作法というものがありますので、それに従った動作が求められます。
バックグラウンド・オーディオ
Info.plistでバックグラウンドでの再生を希望する旨を記述しておくと、バックグラウンドに回った場合の音の再生処理が継続して行えます。アプリ側で特別にやらなくてはいけないことは増えませんが、メモリの使い量、I/Oの使い方など工夫しなくてはいけなくなると予想されます。
Voice over IP
Info.plistでVoIPを実装したいと記述しておくと、インターネット電話を実現するために必要な待ち受け接続への対応をシステムがやってくれます。起動し続けなくても、必要なときに起こされます。標準の電話アプリと同じような立ち位置になれると言うことです。実装は大変でしょう。
Info.plistでロケーションを取得したいと記述しておくと、バックグラウンドにいるときも位置情報を取得できるアプリが作れます。バッテリーのことを考えると一番やっかいな種類のアプリです。
タスクの完了待ち
これら上記の特定用途のマルチタスク機能と関係なく、すべてのiOS 4対応アプリは、バックグラウンドに回る前に一定期間の猶予が与えられます。まだ仕事完了してないよって場合には、ブロックで処理を記述して実行させることができます。この処理が終わるまでサスペンドはされません(見た目上バックグラウンドに回ったことにはなります)。一定時間を過ぎてもタスクが終わっていない場合、システムのやつは勝手に殺すぞと言ってますので気をつけましょう。
ローカル・ノーティフィケーション
上記のバックグラウンド処理がユーザーに通知するUIとしてローカル・ノーティフィケーションが追加されてます。
これ以上の詳しい情報は、iPhone developer登録をすればドキュメントで見れますので、各自調べること。
iOS 4への対応の仕方まとめ
| 未対応 | iOS 4テスト済み | iOS 4対応 | |
|---|---|---|---|
| ビルドするSDK※1 | ~ SDK 3.2 | ~ SDK 3.2 | SDK 4.0 ~ |
| iOS 4で動作するか? | わからん | する | する |
| OS 3.1で動作するか? | する | する | する※2 |
| バックグラウンドで動作 | しない | しない | 可能※3 |
| サスペンドするか? | しない | しない | する |
| アプリ切り替えリスト※4に並ぶ | 並ぶ | 並ぶ | 並ぶ |
| 高速アプリ切替 | 非対応 | 非対応 | 対応 |
※1 Base SDKのこと
※2 Deployment TargetがiPhone OS 3.1以前になっていれば
※3 追加で設定、コードの記述が必要
※4 マルチタスク切り替えのために画面の一番下に出るアプリのリスト
登録:
投稿 (Atom)