iPhone OS (iOS)4.0 の詳細をどこよりも詳しくレポート!

ホーム / Hardware / iPhone SDK

更新:12/07/03 | iPhone OS SDK 4.0 beta | iOS 4.0

iOS4でのAPI変更点注意点

iOS4で影響を受けたのは以下のポイントでした。

キーボード出現時のデリゲーションイベントが変更(割愛)されている。

iPhone SDK 3までは

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];

のようにして、NSNotificationCenterにUIKeyboardWillShowNotificationイベントを登録することで、キーボードが出現する際に特定のコードを呼び出すことが出来ていました。これを利用して、数字キーボードにピリオドをレイヤーオンさせていたわけですが、何の前触れもなくこのイベントが消し去られてしまいました。

今のところ代替イベントも見あたらないので、UIKeyboardDidShowNotificationイベントを使わなくてはなりません。デメリットとしては、キーボードが表示された後にちょこんとピリオドが乗っかるイメージで、ちょっとダサイという所です。

因みに、OSのバージョンを判定してコードを変えたい場合にはプリプロセッサで

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30000

のようにしてしまうパターンと、

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.0) {

のように動的に稼働するプラットフォームに応じて変化させる方法があります。

同様にして、キーボードに特定のユーザービットマップを配置した場合に、今度はキーボードが隠れるときや場合によってはViewWillDisappear時にこれをremoveする必要があります。今までだと

if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:periodButton];

としてイテレーターで回しながらプリフィックスでキーボードのViewを特定していましたが、3.2移行では

if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:periodButton];

このようにプリフィックスが変更されているようです。つまり

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:periodButton];
} else {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:periodButton];
}

のように記述しなければなりません。

iPhone OS ver4.0 BETA

iPhone SDK Ver.3.0デベロッパーとしてADC(Apple Developer Connection)に参加していているため、iPhone OS ver4.0 ベータ版をインストールする機会を得ましたので巷の噂の実際を軽めご紹介します。

まず、iPhone OS ver4.0 ベータ版はADCで有償登録している会員のみがダウンロード、インストールできるものです。当然ながら実機のOSだけでなくiPhone OS ver3.0ベータSDKも4.0ベータ版が用意されており4.0の機能を使って開発したアプリケーションを実機で検証できるようになっています。

iPhone OS 4.0では様々なAPIの追加、機能の追加が予定されていますが、中でも注目のアップデートは次の通りです。

  1. マルチタスクに対応。
    巷では、待ちに待ったマルチタスクなどと持て囃されておりますが、実態は期待しているマルチタスクとは、全く異なる実装になるでしょう。
    実際、このマルチタスク機能は実行するアプリケーションが対応していなければまず無意味です。アプリケーションAを実行中にアプリケーションBを実行して、またAに戻ろうとしたときに、アプリケーションAがマルチタスクに対応したコーディングを施していなければ、今まで通り頭から起動し直されるだけなのです。
    iPhone OS 4.0マルチタスク機能の実態
    ホームボタンをダブルクリックすると、裏タスクの一覧が表示されることになっているが、実際にはマルチタスクに対応していないアプリケーションは既に終了済み。これらのアプリケーションを選択したところで、再度、頭からアプリケーションが初期化されて起動してくるだけとなる。
    ローカルノティフィケーション:裏タスクで稼働しているアプリケーションから、ノティフィケーションを出せるようになりました。プッシュノティフィケーションと同じようですので、音を出したり、メッセージをポップアップしたり、バッジを付けたり出来るはずです。
  2. 複数のメールボックスをまとめて見渡せるように。
    意外と便利なユニバーサルメールボックスの実装が実現しました。GMail、会社のメール、個人のメール、MobileMeアカウント、ソフトバンクのメールなど、目的や都合によって複数のメールアドレスを管理しなくてはならない人は多いはずです。
    今までは、各メールボックスを行ったり来たりしてチェックしなくてはなりませんでしたが、ユニバーサルメールボックスから全てのメールを見渡せるようになりました。
    今まで通り、それぞれのメールボックスもあるので個別に確認することも出来ます。
  3. メールのスレッド表示に対応。
    iPhoneの小さな画面では仕方がないのでしょうが、スレッド表示と言ってもスレッドがあるメールの右側に「3≫」などと表示されるだけです。これが使いやすいのかどうかはまだよく分かりません。
  4. スプリングボード(メイン画面)でフォルダを作成できるように。
    一部の情報ではいくつでも入れられると言った表現がされていますが、フォルダに入れられるアプリケーションは12個までです。
    iPhone OS 4.0フォルダー機能
    アプリケーションの上に、アプリケーションを重ねるとフォルダーが作られます。アプリケーションのカテゴリーからデフォルトのフォルダー名が付けられますが、ユーザーが自由に変更することも可能です。
  5. メイン画面の背景を選択できるように。
    今までは、待機画面(ロック中の画面)の壁紙だけを変えられましたが、同じ要領でスプリングボードの壁紙を指定することが出来ます。カメラロールなどから画像を選んで、「壁紙として使う」をタッチすると、「ホーム画面に設定」「ロック中の画面に設定」「両方に設定」から選択できます。
    デフォルトではアルミ板に水滴が付いたような壁紙となっていますが、これを変更すると元のデフォルトに戻せなくなるという罠がありますので、デフォルトの壁紙が気に入っている人は注意しましょう。
  6. Bluetooth Keyboardに対応。
    iPhone OS 3.0ではBluetoothステレオヘッドフォン(A2DP(Advanced Audio Distribution Profile)プロファイル)に対応したことが最も個人的にはニュースだったのですが、今回個人的に最も期待しているのがこのHID(Human Interface Device Profile)への対応です。
    かなりフリッカー入力が高速化されたとは言え、インデントや特殊文字(・とか)の入力が面倒なため、iPhoneで議事録をとることは出来ませんでしたが、これからはiPhoneとキーボードでビジネスシーンでの活躍の場が広がります。
    勿論、一般的なインターフェイスなので、Apple純正キーボードでなくても接続は可能で、音量調節のショートカットキーなども使えます。
    ブルートゥース(Bluetooth)キーボードについて、もう少し具体的にご紹介していきます。 ブルートゥース自体が業界標準の規約であるため、このプロファイルに準拠した入力デバイスであれば、原則としてiPhoneでも認識が出来るはずです。

    肝心の認識させる設定方法ですが、
    【1】 iPhoneの設定≫一般≫Bluetoothへと進みBluetoothのスイッチをオンにします。 すると、接続可能なデバイス一覧が順次検索されて表示されます。
    【2】 このとき、ペアリングしたいキーボードデバイスは一般的に「ペアリングモード」状態になっている必要があります。 たいがいの場合は、ブルートゥースマーク(◇<)のボタンを長押ししたりしてこのモードに入ります。
    【3】ペアリングさせたいキーボードデバイス名を見つけてタッチするとペアリングを開始します。 この際、ペアリングを確定するために4桁の数字をキーボードから入力するように促されますのでしたがいます 。
    【4】最後にEnterキーを押し忘れないように注意して下さい。 ペアリングが完了したら、ブルートゥースキーボード入力が可能になりますがiPhone側のキーボード設定に注意が必要です。



    iPhoneの設定≫一般≫キーボード≫各国のキーボードから、利用するキーボードスタイルを取捨選択します。 ブルートゥースキーボードからの入力では、日本語 Romajiが含まれている必要があります。(ローマ字入力の場合)
    親指シフト入力(かな入力)を使っているという方は、日本語 Kanaを選択します。
    逆に、絵文字などはキーボードからは入力できません。 このキーボード設定は、ソフトウェアキーボードと、ブルートゥースキーボードの設定両方を兼ねてしまっているためソフトウェアキーボードではフリッカー入力を利用し、ブルートゥースキーボードではローマ字入力を利用しているような場合には、Romaji、Kanaの両方を追加しておかなくてはなりません。
    この辺りは、今後のOSアップデートで使いやすくして頂きたいところです。(ブルートゥースモードと、ソフトウェアキーボードモードで使用する種別のセットを分けるなど) これで、晴れてキーボードから日本語を入力できるようになりました。



    試しに標準のメモアプリケーションなどを起動して入力をしてみましょう。 前述の入力モードを切り替えるショートカットキーはCmd+Space(コマンドキー+スペースキー)となっております。
    Spaceを1回押すとポップアップが表示され、2回目以降は順次モードの選択が遷移します。 ここで、日本語 Romajiを選択すればブルートゥースキーボードからローマ字入力が可能となります。

  7. iPhone OS 4.0単語登録機能。ユーザー辞書機能ユーザー自身が好きな単語と読みを単語登録出来るように。
    使いづらくても単語を登録できる(擬似的に変換候補に出てくるよう苦肉の工夫をしているだけなのですが)アプリケーションが上位にランクインされるほどに、iPhoneのFEP環境は貧弱のひとことでしたが、やっとユーザー辞書機能(単語登録できるだけですが)が搭載されることになりました。

    システム設定のキーボード設定に、単語を編集という項目が追加されています。ここから、ユーザーが好きな単語に読み仮名を割り当てることが可能となりました・
  8. iPhone OS 4.0スポットライトからWikipediaスポットライトからWeb検索、Wikipedia検索が可能に。
    結論から言うと大した機能ではありません。単純にWeb、WikipediaのサイトをSafariで開くだけの機能です。

    個人的には、メールの内容まで含めた全文検索機能を期待していたのですが、今回も追加されることはありませんでした。





  9. iPhone OS 4.0 カメラズーム機能カメラでデジタルズーム(5倍)に対応。
    デジタルズームなのであまり大した喜びはありませんが、後からトリミングする手間が省けるというユーザーには朗報かも知れません。むしろ、タイマー機能を付けてくれた方が個人的には嬉しかったです。(そういうアプリケーションもありますが、スプリングボードがカメラアプリで氾濫することは余り歓迎できないため)
  10. ビデオ録画の際にタッチしてピント合わせが可能に。
    ビデオを録画している最中に、ピントがずれた場合は画面をタッチすることで再度ピント合わせをすることが出来ます。
  11. 「写真」アプリで、人々やイベント、撮影地に対応。iPhone OS 4.0 カメラロールに人々や撮影地が追加
    アプリケーション内で、顔認識をしてくれるのかと思いきやそうではありませんでした。単純にiPhotoの顔認識結果をiTunesとの同期時に指定して管理できるというだけのものです。撮影地については、地図が表示されず、現状はそのままアプリが不正終了してしまうのみです。
  12. 「Game Center」なる標準アプリが追加された。
    アカウントを登録してみましたが、あまりピンと来ません。ネットワークをりようしたゲームの機能拡張要素ということになりますが、今後の対応ゲームアプリケーション待ちというところと思われます。
    スティーブ・ジョブズの発表の場では、SONYのPSPと、任天堂のDSが対抗馬として引用されていたようですので、日本の数少ないグローバルトップ市場を席巻するかどうかが注目されます。
    APIとしては、ゲームキットと呼ばれるフレームワークを使ってGame Centerを利用します。マッチング、招待、掲示板、プレイヤー、スコア、音声チャットなどの機能が含まれているようです。

新たに追加されたその他のAPI

  1. イベントキット
    標準のカレンダーに登録されている予定を読み込んだり、新たに作成するAPIが公開されました。標準カレンダーと連携するアプリケーションを作れるようになりました。
  2. 暗号化
    データを暗号化するAPIが公開されました。今までは、自前で暗号化アルゴリズムを実装した場合、審査に申請する際に輸出規制に関する余計な手順が必要でしたが、それが不要になるのかも知れません。
  3. 電話機能
    端末の電話番号、通話状態などの情報を利用できるようになりました。
  4. iAd:広告
  5. AV機能の拡張
    Media asset management
    Media editing
    Movie capture
    Movie playback
    Track management
    Metadata management for media items
  6. フォトライブラリへのアクセス
    従来は、ユーザーに一つ写真を選ばせるしかなかったAPIが、フォトライブラリ全体にアクセス出来るようになりました。
  7. メディア・ビデオ
    ローレベルでメディア、ビデオにアクセスするAPIが複数公開されました。名前を見た限りでは、自前のビデオプレイヤーを作れるかなというレベルでした。
  8. ブロックコードに対応
    これは、開発者にしか関係ないことなのですが、コーディングに便利なブロック(Block) という記述方法が対応されました。
    int (^myBlock)(int) = ^(int num) {
    return num * 7;
    };

    のように、ブロックを定義して使います。今までだと、プライベート関数やApplicationDelegateに記述した関数などを呼び出していたものが、簡単に実装できるようになりそうです。
  9. GPSが消費する電力が少なくなったようです。
  10. マップキット
    マップキットにオーバーレイが拡張されたため、一般のアプリケーションで地図上に情報を表示したりするのが簡単になりました。
  11. SMS(Message UIの拡張)
    SMSを内容を指定して送信できるなどの拡張がなされました。今までは、SMS:xxxxxなどとしてSMSを起動するのが関の山でした。
  12. その他
    PDF作成
    ファイルシェア
    ジェスチャ
    カスタムフォント
    なども追加、変更されています。iPad向けの機能強化が影響しているものも多々あるようですね。今後のアプリケーション活用に期待が寄せられるところです。

iPhone OS 4.0は今夏リリース予定で、iPad向けには今秋リリース予定だそうです。まだ、バグや最適化されていない部分(遅かったり)もありますので、今後何回かのベータ版リリースを重ねて完成を目指すものと思われます。

iPhone/iPod OSのダウングレード方法

ベータ版を利用している場合には尚更ですが、古いバージョンにダウングレードしたい場合があります。例えば、3.1.3では問題が起きないが2.2.1では問題が再現するような場合には、やり実機での確認が必要になります。

DFUモード(Dvice Firmware Upgrade)

ダウングレードする場合、いわゆるリカバリーモードからでは失敗してしまいます。リカバリーモードではなくDFUモードにてiPhone/iPodを起動させる必要があります。DFUモードで起動させる方法についてはWeb上でも幾つかの情報がありますが、確実にDFUモードにする方法と異なる(運任せの)方法が掲載されている状況が散見されましたので、確実にiPhone/iPodをDFUモードにする方法をご紹介しておきます。

  1. iPhone/iPodの電源を入れてPC/Macと接続します。
  2. iTunesを起動します。(後のDFUモード起動の確認のため)
  3. iPhone/iPodの電源を切ります。上部の電源ボタンを長押しして通常の手順通り「電源オフ」をスライドします。
  4. 電源ボタンを改めて長押しして、電源を入れます。
  5. 画面が点灯したら、電源ボタンを一度離します。
  6. その直後にすかさず電源ボタンとホームボタンを同時に長押しします。およそ10秒程度掛かります。画面が真っ暗になるまで維持します。
  7. 電源ボタンのみを離して、引き続きホームボタンのみを長押しします。およそ10秒程度掛かります。
  8. recoveryモード画面が真っ暗になったままiTunesにiPhone/iPodが認識されればDFU モードで起動したことになります。
    もしもこの時点で、iTunesアイコンとUSBケーブルのイメージが表示されるような場合は、DFUモードではなくてリカバリーモードになっています。改めて3の電源を切るところからやり直します。


 

 
お勧めリンク
ダウンロード
ストリーミング関連
Macintosh関連
Windows関連
メディアなど
 
ハードウェア
ソフトウェア/サービス/開発SDK
デジタル一眼レフカメラ
テクニカル記事
趣味関連
ゲーム 〜楽しいゲームの紹介や攻略法
RoverMNI(ローバーミニ) 
雑記
その他
コメント・フィードバック
©1998 CNXGROUP. このページの全部あるいは一部を無断で利用(コピー)することを禁じます。
>