Acknowledgments |
|
ix | |
Preface |
|
xi | |
|
1 An Overview of Apple Watch |
|
|
1 | (6) |
|
|
1 | (1) |
|
Apple Watch App-Design Concepts |
|
|
2 | (1) |
|
From iPhone App to Apple Watch App |
|
|
3 | (3) |
|
|
6 | (1) |
|
2 WatchKit Extension Overview |
|
|
7 | (8) |
|
Creating Your First WatchKit Extension |
|
|
7 | (2) |
|
Adding User Interface Elements |
|
|
9 | (1) |
|
|
10 | (2) |
|
The iPhone App--WatchKit Extension Relationship |
|
|
12 | (1) |
|
Deployment of WatchKit Apps |
|
|
13 | (1) |
|
|
14 | (1) |
|
3 WatchKit User Interfaces |
|
|
15 | (16) |
|
|
15 | (6) |
|
Creating Interface Objects |
|
|
21 | (1) |
|
Designing Your UI in the Storyboard |
|
|
21 | (2) |
|
|
23 | (1) |
|
Creating Your Apple Watch App |
|
|
24 | (6) |
|
|
30 | (1) |
|
4 Organizing Your UI with Groups |
|
|
31 | (12) |
|
|
31 | (2) |
|
Adding Detail to a Screen |
|
|
33 | (4) |
|
|
37 | (4) |
|
|
41 | (2) |
|
5 Delivering Dynamic Content with Tables |
|
|
43 | (14) |
|
Comparing WatchKit Tables and iOS Table Views |
|
|
43 | (1) |
|
Row Types and Storyboard Groups |
|
|
44 | (2) |
|
Linking Content to the UI with Row Controllers |
|
|
46 | (1) |
|
Configuring the Content in Tables |
|
|
47 | (4) |
|
|
51 | (2) |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
55 | (2) |
|
6 Navigating Between Interfaces |
|
|
57 | (26) |
|
Linking Interfaces in Your Storyboard |
|
|
57 | (5) |
|
Interface Transitions in Code |
|
|
62 | (4) |
|
Passing Data Between Interfaces |
|
|
66 | (6) |
|
Configuring Tracks in TapALap |
|
|
72 | (9) |
|
|
81 | (2) |
|
7 WatchKit Extension Lifecycle |
|
|
83 | (8) |
|
|
83 | (5) |
|
Adopting Handoff in the Extension Delegate |
|
|
88 | (1) |
|
Responding to Notifications |
|
|
89 | (1) |
|
|
90 | (1) |
|
8 Communicating with WatchConnectivity |
|
|
91 | (22) |
|
Making Network Requests on Apple Watch |
|
|
91 | (1) |
|
Preparing for WatchConnectivity: Persisting Data in TapALap |
|
|
92 | (5) |
|
Talking to the iPhone with WatchConnectivity |
|
|
97 | (14) |
|
|
111 | (2) |
|
9 Creating Complications with ClockKit |
|
|
113 | (20) |
|
Watch Faces and Complications |
|
|
113 | (3) |
|
Providing Complications in Your App |
|
|
116 | (13) |
|
Managing Complication Privacy |
|
|
129 | (1) |
|
Providing Placeholder Complications |
|
|
130 | (1) |
|
Restricting Complication Families |
|
|
131 | (1) |
|
|
132 | (1) |
|
10 Extending Complications with Time Travel |
|
|
133 | (12) |
|
Making Your Complication Excellent with Time Travel |
|
|
133 | (7) |
|
|
140 | (4) |
|
|
144 | (1) |
|
11 Getting Personal with Sensor Data and HealthKit |
|
|
145 | (22) |
|
Getting Device Motion with the CoreMotion Framework |
|
|
145 | (6) |
|
Working Out with HealthKit |
|
|
151 | (14) |
|
|
165 | (2) |
|
12 Unlocking Watch App Performance |
|
|
167 | (10) |
|
Making Apps Launch Quickly |
|
|
167 | (3) |
|
Increasing Performance by Removing Data |
|
|
170 | (2) |
|
Inspecting Performance with Instruments |
|
|
172 | (2) |
|
The Illusion of Performance: Preloading Data |
|
|
174 | (1) |
|
|
175 | (2) |
|
13 Being a Good Watch App Citizen |
|
|
177 | (14) |
|
Localizing and Internationalizing Your App |
|
|
177 | (8) |
|
Supporting Every User with Accessibility |
|
|
185 | (5) |
|
|
190 | (1) |
Index |
|
191 | |