開発者向けiOS 9、WatchOS 2、Swift 2、Xcode 7の新機能と新しいApple Developer Programの参考情報まとめ:夏休みに捗る(2/3 ページ)
iOS 9、WatchOS 2、Swift 2、Xcode 7の新機能や、Apple Developer Programについて、その概要とアップルが公開している参考情報をまとめて紹介します。
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サーバーにリクエストを投げて新しいコンテンツを取得できます。
参考資料
- WatchOS 2 for Developers(Prerelease)
- WatchOS 2 Transition Guide(Prerelease)
- WatchOS Developer Library(Prerelease)
- WWDC 2015 Videos
- Platforms State of the Union - WWDC 2015 Videos
- What's New in HealthKit - WWDC 2015 Videos
- Introducing WatchKit for WatchOS 2 - WWDC 2015 Videos
- WatchKit In-Depth, Part 1 - WWDC 2015 Videos
- WatchKit In-Depth, Part 2 - WWDC 2015 Videos
- Introducing Watch Connectivity - WWDC 2015 Videos
- Networking with NSURLSession - WWDC 2015 Videos
- Apple Watch Programming Guide(日本語訳)
- Apple Watch(一般向け情報)
- 03#
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.
関連記事
- iPhone 6/6 Plusアプリ開発入門
iPhone 6/6 PlusアプリをSwift言語で作成してみたいという初心者向けにiOS 8の新機能を使ったアプリの作り方を一から解説する入門連載 - 初心者のためのSwiftで始めるプログラミング入門
本連載では、これからプログラミングやiPhoneアプリ開発を始めてみたい方を対象に、開発に必要な知識を基礎から解説していきます。 - 実機を触って分かった、“使われる”Apple Watchアプリのキモ
ただApple Watch対応アプリを開発するのではなく、ユーザーに使ってもらえるアプリを開発する際のキモとは何だろうか。筆者自身がApple Watchを使っていて感じたこと、そして周囲の開発者と話して気付いたことをまとめてみよう。 - 開発者視点で見る、あのドデカい「iPhone 6/6 Plus」
開発者は新iPhoneの画面サイズに合わせ、UI全てを作り直さないといけないの? アプリ開発者でもある筆者が、その現状を調べてみた。 - Cocoaの素、Objective-Cを知ろう
iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基本を理解しよう。 - 生産性ガチアゲなオープンソースiOSライブラリ
ゼロからiOS SDK開発を始める新規開発者でも超高速・高品質な開発を可能にするオープンソースのライブラリを目的別に紹介していく連載です。実際にライブラリを組み込みながら技術的な側面も併せて詳細に説明していきます。 - iOSアプリ開発でもCI/継続的デリバリしようぜ
現代の開発現場において欠かせないCI/継続的デリバリを、iOSアプリ開発に適用するためのツールやノウハウを解説する連載。