ロボット池田 (2010年7月 9日 16:30) 企画開発部 / iPhone
iPhoneの新OSであるiOS4、そして新型のiPhone4が発売されました、 既存のアプリケーションをiOS4やiPhone4に対応させる手順で、 簡単なものをいくつか紹介します。
まず、これまでにリリースされたソフトウェアも基本的には動きますが、 (一部のアプリケーションは動かなくなる場合があります) そのままではiOS4で追加されたマルチタスクや、 バックグラウンドでの状態保持が利用出来ません。 マルチタスクへの対応はプログラムの処理の変更が必要ですが、 バックグラウンドでの状態保持はプロジェクトの対象SDKバージョンを、 SDK4に設定してビルドしなおせば、自動的に使用可能になります。
逆にバックグラウンドで状態保存されると困るアプリケーションの場合、 plistファイルのApplication does not run in backgrにチェックを入れれば、 以前と同じホームボタンを押すと終了するアプリケーションになります。 (Application does not run in backgrがない場合は、 Add Rowで項目を追加してください。)
iPhone4はCPUやバッテリーの強化など色々な面で性能が向上していますが、 見た瞬間に気がつくのが液晶の解像度の向上です。 縦、横それぞれ2倍の解像度となっていますので、 既存のアプリケーションの背景画像などは、 iPhone3GSなどで表示した時と同じように見えますが、 折角の解像度が無駄になってしまいます。
このためSDK4では既存の画像のファイル名の後に「@2x」という文字列を付けて、 「既存ファイル名@2x.拡張子」という形で同じパスに設置することで、 iPhone4の場合は@2xの画像を優先して使用することが出来ます。 (また、その後にipadやiphoneと付けることでデバイスの指定も可能です。)
またプログラム内で画像の生成を行っている場合も、 iPhone4とそれ以前のiPhoneで適した画像の解像度が異なります。 これまでUIGraphicsBeginImageContextを使って解像度の変更を行っていた処理を、 UIGraphicsBeginImageContextWithOptionsに変更し、 第2引数の透明度に「NO」、第3引数の倍率に「0.0」と指定することで、 デバイスに最適な倍率を指定することが出来ます。 (iPhone3GSまでの場合は1.0、iPhone4の場合は2.0の倍率が採用されます)
iOS4とiPhone4にアプリケーションを対応させる
ロボット池田 (2010年7月 9日 16:30)
企画開発部 / iPhone
iPhoneの新OSであるiOS4、そして新型のiPhone4が発売されました、
既存のアプリケーションをiOS4やiPhone4に対応させる手順で、
簡単なものをいくつか紹介します。
まず、これまでにリリースされたソフトウェアも基本的には動きますが、
(一部のアプリケーションは動かなくなる場合があります)
そのままではiOS4で追加されたマルチタスクや、
バックグラウンドでの状態保持が利用出来ません。
マルチタスクへの対応はプログラムの処理の変更が必要ですが、
バックグラウンドでの状態保持はプロジェクトの対象SDKバージョンを、
SDK4に設定してビルドしなおせば、自動的に使用可能になります。
逆にバックグラウンドで状態保存されると困るアプリケーションの場合、
plistファイルのApplication does not run in backgrにチェックを入れれば、
以前と同じホームボタンを押すと終了するアプリケーションになります。
(Application does not run in backgrがない場合は、
Add Rowで項目を追加してください。)
iPhone4はCPUやバッテリーの強化など色々な面で性能が向上していますが、
見た瞬間に気がつくのが液晶の解像度の向上です。
縦、横それぞれ2倍の解像度となっていますので、
既存のアプリケーションの背景画像などは、
iPhone3GSなどで表示した時と同じように見えますが、
折角の解像度が無駄になってしまいます。
このためSDK4では既存の画像のファイル名の後に「@2x」という文字列を付けて、
「既存ファイル名@2x.拡張子」という形で同じパスに設置することで、
iPhone4の場合は@2xの画像を優先して使用することが出来ます。
(また、その後にipadやiphoneと付けることでデバイスの指定も可能です。)
またプログラム内で画像の生成を行っている場合も、
iPhone4とそれ以前のiPhoneで適した画像の解像度が異なります。
これまでUIGraphicsBeginImageContextを使って解像度の変更を行っていた処理を、
UIGraphicsBeginImageContextWithOptionsに変更し、
第2引数の透明度に「NO」、第3引数の倍率に「0.0」と指定することで、
デバイスに最適な倍率を指定することが出来ます。
(iPhone3GSまでの場合は1.0、iPhone4の場合は2.0の倍率が採用されます)