開発者向けiOS 9、WatchOS 2、Swift 2、Xcode 7の新機能と新しいApple Developer Programの参考情報まとめ夏休みに捗る(2/3 ページ)

» 2015年07月24日 05時00分 公開
[平屋真吾クラスメソッド]

Apple Watch向けOSの最新版「WatchOS 2」

 WatchOS 1の場合、Apple Watch用のアプリはApple Watch上で動作するWatchアプリとiPhone上で動作するWatchKit extensionから構成されていました。WatchOS 2では、WatchKit extensionもApple Watch上で動作します。Watchアプリとextensionが共にApple Watch上で動作するので、両者間のやりとりはWatchOS 1のときよりも高速です。また、WatchOS 2用のアプリはユーザーのiPhoneが近くになくても動作するようになりました。

 さらに、WatchOS 2ではサードパーティのアプリでも「Digital Crown」「Taptic Engine」「加速度センサー」などを使用できるようになっており、アプリから利用できる機能が大幅に増えています。

WatchKit for WatchOS 2

 WatchOS 2用のWatchKitで利用できる主な機能は以下の通りです。

  • アイテム選択のためにDigital Crownを使用する
  • オーディオやビデオを再生する
  • マイクを使用して録音する
  • Taptic engineを使用してユーザーにフィードバックを与える
  • HealthKitを使用して心拍数データを取得する
  • 加速度センサーの値を取得する
  • アラートやアクションシートを表示する

ClockKit Framework

 ClockKit FrameworkはWatchKitアプリに関連するcomplicationの管理をサポートします。

 Complicationは時計の文字盤上に表示できる小さなエレメントであり、最新かつ有用な情報を表示するために使用できます。これまでApple Watchユーザーが使用できたのは組み込みのComplicationのみでしたが、WatchOS 2で追加されたClockKitを使用することで、サードパーティのアプリ開発者もComplicationを作成できるようになりました。

Watch Connectivity

 Watch Connectivity Frameworkは「Apple Watch上のWatchKit extension」と「iPhone上のcontaining app」との間の双方向の通信を提供します。デバイス間でのファイルやデータの受け渡しに使用できます。

 また、WatchOS 2はNSURLSessionを使用できます。例えば、Apple WatchからWebサーバーにリクエストを投げて新しいコンテンツを取得できます。

参考資料

iOS/WatchOS/OS Xアプリ開発向けプログラミング言語の最新版「Swift 2」

 SwiftはWWDC 2014で発表された新しいプログラミング言語であり、以下のような特徴を備えています。

  • モダンな言語仕様
  • 安全な設計
  • 高速かつパワフル
  • Playground

 WWDC 2015ではSwift 2が発表されました。この新バージョンの主な変更点は以下の通りです。

  • パフォーマンスの改善
  • 新しい APIの追加
  • 言語機能の追加・改善

OSS(Open Source Software)化

 WWDC 2015の基調講演で、Swiftは2015年末までにOSSとしてリリースする予定であることが発表されました。この発表が行われた瞬間、会場は大きく盛り上がりました。

 OSS化に関して現時点で公表されている情報は以下の通りです。

  • Swiftのソースコードは、OSD(The Open Source Definition)準拠のライセンスで公開予定
  • オープンソースコミュニティからの貢献も積極的に受け入れる方針
  • まずは、OS X、iOS、Linux向けでリリースする予定
  • 公開するソースコードにはSwiftのコンパイラーや標準ライブラリも含む

エラーハンドリング

 Swift 2ではdo-catch文を使用して、エラーの検出と対処する処理を記述することができます。

// do-catch 文を使用したエラーハンドリング
do {
    // エラーを起こしうるメソッドを呼ぶ
    try validateName(name)
 
} catch ValidateNameError.LongLength {
    print("too long")
} catch ValidateNameError.ShortLength {
    print("too short")
} catch _ {
    assert(false)
}

 エラーを投げる可能性がある関数・メソッドは「throws」キーワードとともに定義します。

// 名前(文字列)の長さをチェックするメソッド
func validateName(name: String) throws {
    if name.utf8.count > 10 {
        throw ValidateNameError.LongLength
    } else if name.utf8.count < 4 {
        throw ValidateNameError.ShortLength
    }
}

 Swift 2ではErrorTypeプロトコルに準拠した型を使用してエラーを扱います。

enum ValidateNameError: ErrorType {
    case LongLength
    case ShortLength
}

OSのバージョンごとに処理を分岐

 最新のOSの機能を使いつつ、古いOSをサポートする場合、条件分岐のコードを書く必要が出てきます。Swift 2では「#available条件式」を用いてOSのバージョンごとに処理を分岐させることができます。

let locationManager = CLLocationManager()
if #available(iOS 8.0, *) {
    locationManager.requestWhenInUseAuthorization()
}

文法の改善点

 Swift 2のその他の改善点は以下の通りです。

  • 「do」「guard」「defer」「repeat」文を利用した制御フロー
  • if、while、for-inの条件式でパターンマッチングを使用
  • Protocol extensions

参考資料

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。