Cover
Copyright
Table of Contents
Preface
Audience
Organization of This Book
Additional Resources
Using Code Examples
O’Reilly Safari
How to Contact Us
Acknowledgments
Chapter 1. iMessage Stickers and Apps
1.1 Setting Up a Sticker Pack Application
Problem
Solution
Discussion
See Also
1.2 Adjusting Sticker Sizes
Problem
Solution
Discussion
See Also
1.3 Building a Full-Fledged iMessage Application
Problem
Solution
Discussion
See Also
1.4 Adding an iMessage App Extension to an Existing App
Problem
Solution
Discussion
See Also
1.5 Utilizing an Expanded View in a Sticker Pack App
Problem
Solution
Discussion
See Also
1.6 Appending Rich Information to Stickers
Problem
Solution
Discussion
See Also
1.7 Creating Interactive Conversations with iMessage Apps
Problem
Solution
Discussion
See Also
Chapter 2. SiriKit
2.1 Setting Up Your Project for Siri
Problem
Solution
Discussion
See Also
2.2 Defining an Intent Handler
Problem
Solution
Discussion
See Also
2.3 Resolving Ambiguity in an Intent
Problem
Solution
Discussion
See Also
2.4 Reporting Progress for Resolving an Intent
Problem
Solution
Discussion
See Also
2.5 Handling an Intent
Problem
Solution
Discussion
See Also
Chapter 3. Measurements and Units
3.1 Converting Between and Working with Length Units
Problem
Solution
Discussion
See Also
3.2 Working with and Switching Between Angle Units
Problem
Solution
Discussion
See Also
3.3 Representing and Converting Between Durations of Time
Problem
Solution
Discussion
See Also
3.4 Using and Working with Frequency Units
Problem
Solution
Discussion
See Also
3.5 Working with and Using Power Units
Problem
Solution
Discussion
See Also
3.6 Representing and Comparing Temperature Units
Problem
Solution
Discussion
See Also
3.7 Working with and Converting Volume Units
Problem
Solution
Discussion
See Also
Chapter 4. Core Data
4.1 Designing Your Database Scheme
Problem
Solution
Discussion
See Also
4.2 Writing Data to the Database
Problem
Solution
Discussion
See Also
4.3 Reading Data from the Database
Problem
Solution
Discussion
See Also
4.4 Searching for Data in the Database
Problem
Solution
Discussion
See Also
4.5 Performing Background Tasks with Core Data
Problem
Solution
Discussion
See Also
Chapter 5. Swift 3.0, Xcode 8, and Interface Builder
5.1 Handling Errors in Swift
Problem
Solution
Discussion
See Also
5.2 Specifying Preconditions for Methods
Problem
Solution
Discussion
See Also
5.3 Ensuring the Execution of Code Blocks Before Exiting Methods
Problem
Solution
Discussion
5.4 Checking for API Availability
Problem
Solution
Discussion
See Also
5.5 Categorizing and Downloading Assets to Get Smaller Binaries
Problem
Solution
Discussion
5.6 Exporting Device-Specific Binaries
Problem
Solution
Discussion
5.7 Linking Separate Storyboards Together
Problem
Solution
Discussion
See Also
5.8 Adding Multiple Buttons to the Navigation Bar
Problem
Solution
Discussion
See Also
5.9 Optimizing Your Swift Code
Problem
Solution
Discussion
See Also
5.10 Showing the Header View of Your Swift Classes
Problem
Solution
Discussion
See Also
5.11 Creating Your Own Set Types
Problem
Solution
Discussion
See Also
5.12 Conditionally Extending a Type
Problem
Solution
Discussion
See Also
5.13 Building Equality Functionality into Your Own Types
Problem
Solution
Discussion
See Also
5.14 Looping Conditionally Through a Collection
Problem
Solution
Discussion
5.15 Designing Interactive Interface Objects in Playgrounds
Problem
Solution
Discussion
5.16 Grouping Switch Statement Cases Together
Problem
Solution
Discussion
5.17 Bundling and Reading Data in Your Apps
Problem
Solution
Discussion
Chapter 6. The User Interface
6.1 Animating Views
Problem
Solution
Discussion
6.2 Attaching Live Views to Playgrounds
Problem
Solution
Discussion
6.3 Running Playgrounds as Interactive and Continuous Apps
Problem
Solution
Discussion
6.4 Arranging Your Components Horizontally or Vertically
Problem
Solution
Discussion
6.5 Customizing Stack Views for Different Screen Sizes
Problem
Solution
Discussion
6.6 Creating Anchored Constraints in Code
Problem
Solution
Discussion
6.7 Allowing Users to Enter Text in Response to Local and Remote Notifications
Problem
Solution
Discussion
See Also
6.8 Dealing with Stacked Views in Code
Problem
Solution
Discussion
6.9 Showing Web Content in Safari View Controller
Problem
Solution
Discussion
6.10 Laying Out Text-Based Content on Your Views
Problem
Solution
Discussion
6.11 Improving Touch Rates for Smoother UI Interactions
Problem
Solution
Discussion
6.12 Supporting Right-to-Left Languages
Problem
Solution
Discussion
6.13 Associating Keyboard Shortcuts with View Controllers
Problem
Solution
Discussion
6.14 Recording the Screen and Sharing the Video
Problem
Solution
Discussion
Chapter 7. Apple Watch
7.1 Downloading Files onto the Apple Watch
Problem
Solution
Discussion
7.2 Noticing Changes in Pairing State Between the iOS and Watch Apps
Problem
Solution
Discussion
7.3 Transferring Small Pieces of Data to and from the Watch
Problem
Solution
Discussion
7.4 Transferring Dictionaries in Queues to and from the Watch
Problem
Solution
Discussion
7.5 Transferring Files to and from the Watch
Problem
Solution
Discussion
See Also
7.6 Communicating Interactively Between iOS and watchOS
Problem
Solution
Discussion
See Also
7.7 Setting Up Apple Watch for Custom Complications
Problem
Solution
Discussion
See Also
7.8 Constructing Small Complications with Text and Images
Problem
Solution
Discussion
7.9 Displaying Time Offsets in Complications
Problem
Solution
Discussion
See Also
7.10 Displaying Dates in Complications
Problem
Solution
Discussion
See Also
7.11 Displaying Times in Complications
Problem
Solution
Discussion
See Also
7.12 Displaying Time Intervals in Complications
Problem
Solution
Discussion
See Also
7.13 Recording Audio in Your Watch App
Problem
Solution
Discussion
See Also
7.14 Playing Local and Remote Audio and Video in Your Watch App
Problem
Solution
Discussion
See Also
Chapter 8. Contacts
8.1 Creating Contacts
Problem
Solution
Discussion
8.2 Searching for Contacts
Problem
Solution
Discussion
See Also
8.3 Updating Contacts
Problem
Solution
Discussion
8.4 Deleting Contacts
Problem
Solution
Discussion
8.5 Formatting Contact Data
Problem
Solution
Discussion
See Also
8.6 Picking Contacts with the Prebuilt System UI
Problem
Solution
Discussion
See Also
8.7 Creating Contacts with a Prebuilt System UI
Problem
Solution
Discussion
See Also
8.8 Displaying Contacts with a Prebuilt System UI
Problem
Solution
Discussion
See Also
Chapter 9. Extensions
9.1 Creating Safari Content Blockers
Problem
Solution
Discussion
9.2 Creating Shared Links for Safari
Problem
Solution
Discussion
9.3 Maintaining Your App’s Indexed Content
Problem
Solution
Discussion
Chapter 10. Web and Search
10.1 Making Your App’s Content Searchable
Problem
Solution
Discussion
10.2 Making User Activities Searchable
Problem
Solution
Discussion
See Also
10.3 Deleting Your App’s Searchable Content
Problem
Solution
Discussion
See Also
Chapter 11. Multitasking
11.1 Supporting Split Views
Problem
Solution
Discussion
11.2 Adding Picture in Picture Playback Functionality
Problem
Solution
Discussion
11.3 Handling Low Power Mode and Providing Alternatives
Problem
Solution
Discussion
Chapter 12. Maps and Location
12.1 Displaying a Specific Location on the Map
Problem
Solution
Discussion
12.2 Requesting the User’s Location a Single Time
Problem
Solution
Discussion
See Also
12.3 Requesting the User’s Location in the Background
Problem
Solution
Discussion
See Also
12.4 Customizing the Tint Color of Pins on the Map
Problem
Solution
Discussion
12.5 Providing Detailed Pin Information with Custom Views
Problem
Solution
Discussion
12.6 Displaying Traffic, Scale, and Compass Indicators on the Map
Problem
Solution
Discussion
12.7 Providing an ETA for Transit Transport Type
Problem
Solution
Discussion
See Also
12.8 Launching the iOS Maps App in Transit Mode
Problem
Solution
Discussion
See Also
12.9 Showing Maps in Flyover Mode
Problem
Solution
Discussion
Chapter 13. UI Testing
13.1 Preparing Your Project for UI Testing
Problem
Solution
Discussion
13.2 Automating UI Test Scripts
Problem
Solution
Discussion
See Also
13.3 Testing Text Fields, Buttons, and Labels
Problem
Solution
Discussion
See Also
13.4 Finding UI Components
Problem
Solution
Discussion
See Also
13.5 Long-Pressing on UI Elements
Problem
Solution
Discussion
See Also
13.6 Typing Inside Text Fields
Problem
Solution
Discussion
See Also
13.7 Swiping on UI Elements
Problem
Solution
Discussion
See Also
13.8 Tapping UI Elements
Problem
Solution
Discussion
See Also
Chapter 14. Core Motion
14.1 Querying Pace and Cadence Information
Problem
Solution
Discussion
14.2 Recording and Reading Accelerometer Data
Problem
Solution
Discussion
Chapter 15. Security
15.1 Protecting Your Network Connections with ATS
Problem
Solution
Discussion
15.2 Binding Keychain Items to Passcode and Touch ID
Problem
Solution
Discussion
See Also
15.3 Opening URLs Safely
Problem
Solution
Discussion
15.4 Authenticating the User with Touch ID and Timeout
Problem
Solution
Discussion
See Also
Chapter 16. Multimedia
16.1 Reading Out Text with the Default Siri Alex Voice
Problem
Solution
Discussion
16.2 Downloading and Preparing Remote Media for Playback
Problem
Solution
Discussion
16.3 Enabling Spoken Audio Sessions
Problem
Solution
Discussion
Chapter 17. UI Dynamics
17.1 Adding a Radial Gravity Field to Your UI
Problem
Solution
Discussion
17.2 Creating a Linear Gravity Field on Your UI
Problem
Solution
Discussion
17.3 Creating Turbulence Effects with Animations
Problem
Solution
Discussion
17.4 Adding Animated Noise Effects to Your UI
Problem
Solution
Discussion
17.5 Creating a Magnetic Effect Between UI Components
Problem
Solution
Discussion
17.6 Designing a Velocity Field on Your UI
Problem
Solution
Discussion
17.7 Handling Collisions Between Nonrectangular Views
Problem
Solution
Discussion
Index
About the Author