Xcode
iOS
Swift
WatchKit
watchOS

watchOS 2 の新機能のサンプルコード集

More than 3 years have passed since last update.

WWDC15 にて watchOS 2 が発表され、ついに待望のネイティブ動作する Apple Watch アプリがつくれるようになりました。それに伴い、WatchKit には多くの機能が追加され、ClockKit や WatchConnectivity 等の新しいフレームワークも登場しました。さらにいえば、従来フレームワークもウォッチ側で動作するようになったことから、これらもある意味新APIであるといえます。

どんな機能が追加されたのかは既に多くのキーノートのまとめ記事などで紹介されてはいますが、新しいAPIはどう使うのか、実際に何がどこまでできるのか、快適に動作するのか、といった具体的なところが、英語のドキュメントや動画や記事をながめているだけだと正直あまりよくわかりません。やはり実際にコード書いて動かしてみるのが一番わかりやすい、ということで、

watchOS 2 の新機能のサンプルコード集『watchOS-2-Sampler

をつくりました。オープンソースなのでどなたでも GitHub から clone してお試しいただけます。


Contents

今のところ18個のサンプルが入っています。まだまだ少ないですが、随時追加していく予定です。機能追加等のプルリク大歓迎です!


Animated Properties

animateWithDuration:animations: メソッドを利用して、アニメーションで拡大縮小やフェードイン/アウト、移動(実際には Alignment)を行うサンプル。


Table Animations

WKInterfaceTable のセル(row)をアニメーション付きで insert / remove するサンプル。insertRowsAtIndexes:withRowType:, removeRowsAtIndexes: メソッドを利用。


Picker Styles

WKInterfacePicker の全スタイル(List, Sequence, Stack)を試せるサンプル。


Taptic Engine

WKInterfaceDevice の playHaptic メソッドに指定できる全タイプ(WKHapticType)を試せるサンプル。

ちなみに WKHapticType は次のように定義されています。


swift

enum WKHapticType : Int {

case Notification
case DirectionUp
case DirectionDown
case Success
case Failure
case Retry
case Start
case Stop
case Click
}



Audio Rec & Play

presentAudioRecordingControllerWithOutputURL:preset:maximumDuration:actionTitle:completion: メソッドを利用して音声を録音する UI を表示し、録音したファイルを presentMediaPlayerControllerWithURL:options:completion: メソッドを利用して再生するサンプル。

参考記事:


Animation with Digital Crown

デジタルクラウンの回転に合わせ、WKInterfacePicker にセットしたアニメーションを表示するサンプル。setCoordinatedAnimations メソッドを利用。


Draw Paths

Core Graphics を用いてパスを描画するサンプル。


Gradations

Core Graphics を用いてグラデーションを描画するサンプル。

※Core Graphics を用いたパス描画やグラデーション描画についての詳細は、こちらの記事・スライドもご参照ください。


Heart Rate

HealthKit を用いて心拍数を取得・表示するサンプル。

kitasuke さんより pull request いただきました。


Accelerometer

Core Motion を用いて加速度センサの値を取得するサンプル。


Gyroscope

Core Motion を用いてジャイロスコープの値を取得するサンプル。 1


Device Motion

Core Motion を用いてデバイスのモーションデータを取得するサンプル。 2


Pedometer

CMPedometer を用いて歩数や距離、階の昇り降り情報を取得するサンプル。


Alert

presentAlertControllerWithTitle:message:preferredStyle:actions: メソッドで指定できる全アラートスタイル(WKAlertControllerStyle)を試せるサンプル。

ちなみに WKAlertControllerStyle は次のように定義されています。


swift

enum WKAlertControllerStyle : Int {

case Alert
case SideBySideButtonsAlert
case ActionSheet
}



Interactive Messaging

iPhone と Apple Watch で相互にメッセージをやりとりするサンプル。Watch Connectivity フレームワークを利用。


Audio File Player

WKAudioFilePlayer を利用してオーディオファイルを再生するサンプル。

※要Bluetoothヘッドセット


Open System URL

WKExtension の openSystemURL: メソッドを利用して、電話およびSMSアプリを開くサンプル。


Network Access

NSURLSession を用いてネットワーク経由で画像データを取得するサンプル。KAMEDAkyosuke さんより pull request いただきました。


おまけ:watchOS 2 で使えるようになった従来フレームワークのリスト


  • MapKit

  • UIKit

  • WatchKit

  • CoreGraphics

  • ImageIO

  • CFNetwork

  • Contacts

  • CoreData

  • CoreFoundation

  • CoreLocation

  • CoreMotion

  • EventKit

  • Foundation

  • HealthKit

  • HomeKit

  • MobileCoreServices

  • PassKit

  • SystemConfiguration

  • Core OS Layer

  • Security


iOS-9-Sampler

iOS 9 の新機能のサンプル集はこちらにあります。


関連





  1. 現行 Apple Watch では CMMotionManager の gyroAvailable が必ず false を返してくるので、今のところ実質的に利用できません。(API的には利用可能であるためサンプルに残してあります) 



  2. 現行 Apple Watch では CMMotionManager の deviceMotionAvailable が必ず false を返してくるので、今のところ実質的に利用できません。(API的には利用可能であるためサンプルに残してあります)