14. Communication -
Shared Data
• NSUserDefault
• App groups must be
enabled
• Commands, Data are
stored in Shared Data
• Shared Data changed
Notification is sent
WatchPhone
SD
notification
data
15. Communication -
OpenParentApplication
• Main method of Data
exchange
• No more sharedData
• One direction
• Watch needs to check and
sync everything.
• Too expensive
WatchPhone
openParent
data
notification
16. Communication -
WatchAppNotificationCenter
• CFNotification Center &
Darwin Notification Center
• Allows adding specific
observers and keys
• Only updates what is
necessary
• Better performance
WatchPhone
openParent
data
Notification Center
21. Debugging
• Need to manually attach process to
iPhone and Apple Watch on
simulator
• Xcode crashes when attaching
process on real device
• Could only debug with NSLog
22. Launching in
background
• Crash every time we launched app from
watch
• Because app is only launched in
background
• Be careful with what you do in the
background
• Doesn’t show on simulator.
23. Cache Images
• WatchKit Extension is slower than
simulator and unstable sometimes
• Cache any static images you can as
early as possible
• A simple menu could cause
unexpected lag
24. Creating Tables
• 2 out of 10 times, tables won’t load
• Task finished in code but screen only
shows a loading indicator
• System bug?
• Left lab without a solution :(
25. Creating Tables
• Last resort was keeping only Now Playing
• UX > Functionality
• Apple suggested maybe try using SharedData
• Rebuilt the communication infrastructure.
• Solved the problem.
26. Solution
• Instant status updates
• OpenParentApplication
• Data transfer
• SharedData
WatchPhone
SD
data
openParent
data
Notification Center