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」「加速度センサー」などを使用できるようになっており、アプリから利用できる機能が大幅に増えています。
WatchOS 2用のWatchKitで利用できる主な機能は以下の通りです。
ClockKit FrameworkはWatchKitアプリに関連するcomplicationの管理をサポートします。
Complicationは時計の文字盤上に表示できる小さなエレメントであり、最新かつ有用な情報を表示するために使用できます。これまでApple Watchユーザーが使用できたのは組み込みのComplicationのみでしたが、WatchOS 2で追加されたClockKitを使用することで、サードパーティのアプリ開発者もComplicationを作成できるようになりました。
Watch Connectivity Frameworkは「Apple Watch上のWatchKit extension」と「iPhone上のcontaining app」との間の双方向の通信を提供します。デバイス間でのファイルやデータの受け渡しに使用できます。
また、WatchOS 2はNSURLSessionを使用できます。例えば、Apple WatchからWebサーバーにリクエストを投げて新しいコンテンツを取得できます。
SwiftはWWDC 2014で発表された新しいプログラミング言語であり、以下のような特徴を備えています。
WWDC 2015ではSwift 2が発表されました。この新バージョンの主な変更点は以下の通りです。
WWDC 2015の基調講演で、Swiftは2015年末までにOSSとしてリリースする予定であることが発表されました。この発表が行われた瞬間、会場は大きく盛り上がりました。
OSS化に関して現時点で公表されている情報は以下の通りです。
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をサポートする場合、条件分岐のコードを書く必要が出てきます。Swift 2では「#available条件式」を用いてOSのバージョンごとに処理を分岐させることができます。
let locationManager = CLLocationManager() if #available(iOS 8.0, *) { locationManager.requestWhenInUseAuthorization() }
Swift 2のその他の改善点は以下の通りです。
Copyright © ITmedia, Inc. All Rights Reserved.