SlideShare a Scribd company logo
1 of 32
Download to read offline
自作アプリを
watchOS 2 対応した話
∼FastCheckin編∼
Kosuke Ogawa (@koogawa)
2015.9.30 もくもくiOS勉強会@ネクスト 1周年記念LT会
• 小川航佑 Kosuke Ogawa
• @koogawa
• nanapi 所属
• iOSアプリを仕事・趣味でいろいろ開発
• foursquare好き
70万DL突破! 20万DL突破!
FastCheckin
•素早く簡単にfoursquareにチェックイ
ンするためのアプリ
ぶち当たった様々な問題
1. App Groupsでデータを共有できない問題
2. 画像がキャッシュできない問題
3. WatchKit Extensionのbundle identifier問題
4. startUpdatingLocationが使えない問題
5. NSURLConnection がエラーになる問題
App Groupsで
Watch iPhone間の
データ共有ができない問題
watchOS 1
App
Group
(watchOS 2 Transition Guideより引用)
watchOS 2
(watchOS 2 Transition Guideより引用)
App
Group
Watch Connectivity 使おう
DATA
(Introducing Watch Connectivityより引用)
http://qiita.com/koogawa/items/b39e1419cbbcda8efc07
画像がキャッシュ
できない問題
func addCachedImage(_ image: UIImage!, name name: String!) -> Bool
func addCachedImageWithData(_ imageData: NSData!, name name: String!) -> Bool
func removeCachedImageWithName(_ name: String!)
func removeAllCachedImages()
キャッシュ系メソッドが
使えなくなっている
watchOS 1
Image
(watchOS 2 Transition Guideより引用)
watchOS 1
(watchOS 2 Transition Guideより引用)
Image
watchOS 1
(watchOS 2 Transition Guideより引用)
Cache
watchOS 2
(watchOS 2 Transition Guideより引用)
Image
watchOS 2ではWatch Extensionが
Apple Watch側に移動したため、
キャッシュする必要がなくなった
WatchKit Extensionの
bundle identifier問題
watchOS 1
Bundle identifier
Watch App com.koogawa.SampleWatchApp.watchkitapp
WatchKit
Extension
com.koogawa.SampleWatchApp.watchkitextension
ビルドすると
Embedded binary's bundle identifier
is not prefixed with the parent app's
bundle identifier.
つまり
watchOS 2では
WatchKit Extension の bundle identifier が、
親の WatchApp の bundle identifier を
Prefix に持ってないといけない
watchOS 2
Bundle identifier
Watch App com.koogawa.SampleWatchApp.watchkitapp
WatchKit
Extension
com.koogawa.SampleWatchApp.watchkitapp.watchkitextension
startUpdatingLocationが
使えない問題
watchOS 2
watchOS 2
watchOS 2
• requestLocation 使おう
• 一回きりの位置情報取得が可能
NSURLConnection が
エラーになる問題
watchOS 2
• NSURLSession
• Apple Watch 単体で
サーバと通信可能
(Introducing Watch Connectivityより引用)
一方で…
• NSURLConnection が使えない
• Error Domain=NSURLErrorDomain
Code=-1009 "The Internet connection
appears to be offline."
• NSURLSession ベースに切り替える必要がある
参考リンク
• watchOS 2 Transition Guide(必読)
• Introducing Watch Connectivity - WWDC
2015
• What's New in Core Location - WWDC 2015
宣伝
•今だけ無料!(いつもは100円)
•FastCheckinで検索
WE ARE HIRING!!
http://recruit.nanapi.co.jp/
ありがとう
ございました

More Related Content

What's hot

What's hot (7)

2017/05/24 potatotips #40
2017/05/24 potatotips #402017/05/24 potatotips #40
2017/05/24 potatotips #40
 
2018_02_01ヒカラボ登壇資料
2018_02_01ヒカラボ登壇資料2018_02_01ヒカラボ登壇資料
2018_02_01ヒカラボ登壇資料
 
アプリチームを支えるSlack bot
アプリチームを支えるSlack botアプリチームを支えるSlack bot
アプリチームを支えるSlack bot
 
RealmとApp Extensionのガイダンス/Realm meetup vol.6
RealmとApp Extensionのガイダンス/Realm meetup vol.6RealmとApp Extensionのガイダンス/Realm meetup vol.6
RealmとApp Extensionのガイダンス/Realm meetup vol.6
 
第2回インフラエンジニアのためのプレゼン技術研究会(オススメの技術書)
第2回インフラエンジニアのためのプレゼン技術研究会(オススメの技術書)第2回インフラエンジニアのためのプレゼン技術研究会(オススメの技術書)
第2回インフラエンジニアのためのプレゼン技術研究会(オススメの技術書)
 
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LTさくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
さくらのシンプル監視でWi-Fiの死活監視をしてみた wakate2016w LT
 
Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例
 

Similar to 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
VOYAGE GROUP
 

Similar to 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜 (12)

「オープンなジオデータを考える」資料
「オープンなジオデータを考える」資料「オープンなジオデータを考える」資料
「オープンなジオデータを考える」資料
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
 
ABC 2011 Summer
ABC 2011 SummerABC 2011 Summer
ABC 2011 Summer
 
ABC
ABC ABC
ABC
 
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考えるJavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
 
UI/UX に影響の大きい watchOS 2 の新機能 3つ
UI/UX に影響の大きい watchOS 2 の新機能 3つUI/UX に影響の大きい watchOS 2 の新機能 3つ
UI/UX に影響の大きい watchOS 2 の新機能 3つ
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
 
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩みKeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
 
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
 
第21回八子クラウド座談会資料(討議メモ付き) 20161022
第21回八子クラウド座談会資料(討議メモ付き) 20161022第21回八子クラウド座談会資料(討議メモ付き) 20161022
第21回八子クラウド座談会資料(討議メモ付き) 20161022
 
[20140625]wwdc2014 feedback
[20140625]wwdc2014 feedback[20140625]wwdc2014 feedback
[20140625]wwdc2014 feedback
 

More from Kosuke Ogawa

Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Kosuke Ogawa
 
iOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみるiOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみる
Kosuke Ogawa
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
Kosuke Ogawa
 
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
Kosuke Ogawa
 
iOSで笑顔を認識する
iOSで笑顔を認識するiOSで笑顔を認識する
iOSで笑顔を認識する
Kosuke Ogawa
 
iOSで光を感知する
iOSで光を感知するiOSで光を感知する
iOSで光を感知する
Kosuke Ogawa
 

More from Kosuke Ogawa (20)

iOS対応のCIサービス「Bitrise」を使ってみた
iOS対応のCIサービス「Bitrise」を使ってみたiOS対応のCIサービス「Bitrise」を使ってみた
iOS対応のCIサービス「Bitrise」を使ってみた
 
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
Stack Overflowで最も投票数の多かったiOS関連のQuestionベスト10(2015年版)
 
コードを書かずにUINavigationBarを スワイプで表示/非表示させる
コードを書かずにUINavigationBarを スワイプで表示/非表示させるコードを書かずにUINavigationBarを スワイプで表示/非表示させる
コードを書かずにUINavigationBarを スワイプで表示/非表示させる
 
ビールのはなし
ビールのはなしビールのはなし
ビールのはなし
 
What's New in Core Location - WWDC 2015
What's New in Core Location - WWDC 2015What's New in Core Location - WWDC 2015
What's New in Core Location - WWDC 2015
 
AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方
 
iOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみるiOS 8 App Extension「Action」でアプリ間連携してみる
iOS 8 App Extension「Action」でアプリ間連携してみる
 
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
 
facebook/popを使ってみた
facebook/popを使ってみたfacebook/popを使ってみた
facebook/popを使ってみた
 
勉強会に行こう
勉強会に行こう勉強会に行こう
勉強会に行こう
 
Map Kitでローカル検索を試してみた
Map Kitでローカル検索を試してみたMap Kitでローカル検索を試してみた
Map Kitでローカル検索を試してみた
 
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみたUIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
 
Objective-Cのいろいろな反復処理
Objective-Cのいろいろな反復処理Objective-Cのいろいろな反復処理
Objective-Cのいろいろな反復処理
 
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
初めてのテスト 〜2014年だしXcodeで単体テストでも初めてみるか〜
 
App Store 申請Tips
App Store 申請TipsApp Store 申請Tips
App Store 申請Tips
 
iOSで笑顔を認識する
iOSで笑顔を認識するiOSで笑顔を認識する
iOSで笑顔を認識する
 
Dynamic Type の基本的なお話
Dynamic Type の基本的なお話Dynamic Type の基本的なお話
Dynamic Type の基本的なお話
 
iOSで光を感知する
iOSで光を感知するiOSで光を感知する
iOSで光を感知する
 
iOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckiniOS 7 対応事例 FastCheckin
iOS 7 対応事例 FastCheckin
 

Recently uploaded

Recently uploaded (12)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

自作アプリを watchOS 2 対応した話 〜FastCheckin編〜