iOS 8 Application Development in 24 Hours, Sams Teach Yourself
Sams Publishing
978-0-672-33723-9 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
Step-by-step instructions carefully walk you through the most common iOS development tasks.
Quizzes and Exercises help you test your knowledge.
By the Way notes present interesting information related to the discussion.
Did You Know? tips show you easier ways to perform tasks.
Watch Out! cautions alert you to possible problems and give you advice on how to avoid them.
John Ray is currently serving as the Director of the Office of Research Information Systems at the Ohio State University. His many books include Using TCP/IP: Special Edition, Maximum Mac OS X Security, Mac OS X Unleashed, Teach Yourself Dreamweaver MX in 21 Days, and Sams Teach Yourself iOS 7 Application Development in 24 Hours.
Printed in full color–figures and code appear as they do in Xcode
Covers iOS 8 and up
Learn to navigate the Xcode 6.x development environment
Prepare your system and iDevice for efficient development
Get started quickly with Apple’s new language: Swift
Test code using the new iOS Playground
Understand the Model-View-Controller (MVC) development pattern
Visually design and code interfaces using Xcode Storyboards, Segues, Exits, Image Slicing, and the iOS Object Library
Use Auto Layout and Size Classes to adapt to different screen sizes and orientations
Build advanced UIs with Tables, Split Views, Navigation Controllers, and more
Read and write preferences and data, and create System Settings plug-ins
Use the iOS media playback and recording capabilities
Take photos and manipulate graphics with Core Image
Sense motion, orientation, and location with the accelerometer, gyroscope, and GPS
Integrate online services using Twitter, Facebook, Email, Web Views, and Apple Maps
Create universal applications that run on both the iPhone and iPad
Write background-aware multitasking applications
Trace, debug, and monitor your applications as they run
John Ray currently serves as the Director of the Office of Research Information Systems at The Ohio State University. He has written numerous books for Macmillan/Sams/Que, including Using TCP/IP: Special Edition, Teach Yourself Dreamweaver MX in 21 Days, Mac OS X Unleashed, My Yosemite MacBook, and Teach Yourself iOS 7 Development in 24 Hours. As a Macintosh user since 1984, he strives to ensure that each project presents the Macintosh with the equality and depth it deserves. Even technical titles such as Using TCP/IP contain extensive information about the Macintosh and its applications and have garnered numerous positive reviews for their straightforward approach and accessibility to beginner and intermediate users. You can visit his website at http://teachyourselfios.com or follow him on Twitter at @johnemeryray or #iOSIn24.
Introduction 1
HOUR 1: Preparing Your System and iDevice for Development 5
Welcome to the iOS Platform . . . . . . . 5
Becoming an iOS Developer . . . . . . . . . . . . . . . . . . . . . . . . . 9
Running an iOS App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Developer Technology Overview . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 23
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
HOUR 2: Introduction to Xcode and the iOS Simulator 29
Using Xcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Using the iOS Simulator . . . . . . . . . . . . . . . . . . . . . . . . 63
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Summary . . . . . . . . . . . . . . . . . . . . . . . . . 71
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
HOUR 3: Discovering Swift and the iOS Playground 77
Object-Oriented Programming and Swift . . . . . . . . . . . . . . . .. . . . . . . . . . . 77
The Terminology of Object-Oriented Development . . . . . . . . . . . . . . . .. . . . . . . . . 79
Exploring the Swift File Structure . . . . . . . . . . . . . . . . . . . . . . . . . 82
Swift Programming Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Memory Management and Automatic Reference Counting . . . . . . . . . . . . . . . 107
Introducing the iOS Playground . . . . . . . . . . . . . . . . . . . . . . . . 108
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Q&A . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Workshop . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Activities . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
HOUR 4: Inside Cocoa Touch 117
What Is Cocoa Touch? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Exploring the iOS Technology Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Tracing the iOS Application Life Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Cocoa Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Exploring the iOS Frameworks with Xcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Further Exploration . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 143
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
HOUR 5: Exploring Interface Builder 147
Understanding Interface Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Creating User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Customizing the Interface Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Connecting to Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
HOUR 6: Model-View-Controller Application Design 185
Understanding the MVC Design Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
How Xcode Implements MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Using the Single View Application Template . . . . . . . . . . . . . . . . . . . . . . . 191
Further Exploration . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . 209
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 210
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
HOUR 7: Working with Text, Keyboards, and Buttons 215
Basic User Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Using Text Fields, Text Views, and Buttons . . . . . . . . . . . . . . . . . . . . . . . . . 217
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
HOUR 8: Handling Images, Animation, Sliders, and Steppers 251
User Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Creating and Managing Image Animations, Sliders, and Steppers . . . . . . . . . . . . . 253
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Summary . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
HOUR 9: Using Advanced Interface Objects and Views 281
User Input and Output (Continued) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Using Switches, Segmented Controls, and Web Views . . . . . . . . . . . . . . .. . . . . 287
Using Scrolling Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Q&A . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
HOUR 10: Getting the User’s Attention 317
Alerting the User . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Exploring User Alert Methods . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 328
Further Exploration . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
HOUR 11: Implementing Multiple Scenes and Popovers 349
Introducing Multiscene Storyboards . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 350
Using Segues . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 377
Popovers, Universal Applications, and iPhones . . . . . . . . . . . . . . . .. . . . . . . . 390
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
HOUR 12: Making Choices with Toolbars and Pickers 401
Understanding the Role of Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Exploring Pickers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Using the Date Picker . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Using a Custom Picker . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
HOUR 13: Advanced Storyboards Using Navigation and Tab Bar Controllers 445
Advanced View Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Exploring Navigation Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Understanding Tab Bar Controllers . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 452
Using a Navigation Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Using a Tab Bar Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 481
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 483
HOUR 14: Navigating Information Using Table Views and Split View Controllers 485
Understanding Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Exploring the Split View Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
A Simple Table View Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Creating a Master-Detail Application . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 523
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
HOUR 15: Reading and Writing Application Data 527
iOS Applications and Data Storage . . . . . . . . . . . . . . . . . . . . . . . . 527
Data Storage Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Creating Implicit Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
Implementing System Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Implementing File System Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
HOUR 16: Building Responsive User Interfaces 573
Responsive Interfaces . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Using Auto Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Programmatically Defined Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
HOUR 17: Using Advanced Touches and Gestures 611
Multitouch Gesture Recognition . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . 611
Adding Gesture Recognizers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Using Gesture Recognizers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
HOUR 18: Sensing Orientation and Motion 639
Understanding Motion Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
Accessing Orientation and Motion Data . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Sensing Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Detecting Acceleration, Tilt, and Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Summary . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
Activities . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
HOUR 19: Working with Rich Media 669
Exploring Rich Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
The Media Playground Application . . . . . . . . . .. . . . . . . . . . . . . . . 683
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
Activities . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
HOUR 20: Interacting with Other iOS Services 713
Extending iOS Service Integration . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . 713
Using the Address Book, Email, Social Networking, and Maps . . . . . . . . . . . . . . . . . . . . 730
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Workshop . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
HOUR 21: Implementing Location Services 751
Understanding Core Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Creating a Location-Aware Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
HOUR 22: Building Background-Ready Applications 783
Understanding iOS Backgrounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
Disabling Backgrounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
Handling Background Suspension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
Implementing Local Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
Using Task-Specific Background Processing. . . . . . . . . . . . . . . . . . . . . 795
Completing a Long-Running Background Task . . . . . . . . . . . . . . . . . . . . . . . 800
Performing a Background Fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
HOUR 23: Building Universal Applications 815
Universal Application Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
Size Classes . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 819
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 833
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 834
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
HOUR 24: Application Tracing, Monitoring, and Debugging 837
Instant Feedback with NSLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
Using the Xcode Debugger . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 841
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
Index 863
ONLINE APPENDIX A: Introducing Xcode Source Control
Verlagsort | Indianapolis |
---|---|
Sprache | englisch |
Maße | 179 x 231 mm |
Gewicht | 1198 g |
Themenwelt | Informatik ► Betriebssysteme / Server ► Macintosh / Mac OS X |
Informatik ► Programmiersprachen / -werkzeuge ► Mac / Cocoa Programmierung | |
Informatik ► Software Entwicklung ► Mobile- / App-Entwicklung | |
Informatik ► Weitere Themen ► Smartphones / Tablets | |
ISBN-10 | 0-672-33723-1 / 0672337231 |
ISBN-13 | 978-0-672-33723-9 / 9780672337239 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |