iOS Components and Frameworks
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-85671-5 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
iOS Components and Frameworks will help you leverage iOS’s powerful components and frameworks to build apps with outstanding performance, reliability, interactivity, media support, and customization.
Pioneering iOS developers Kyle Richter and Joe Keeley illuminate the sophisticated intermediate-to-advancedlevel techniques you’re now ready for. You’ll find example-rich coverage of topics ranging from social support to security, Core Data, TextKit, iCloud support, UIKit Dynamics, MapKit, and Passbook. There’s also a complete section on advanced performance and security, including the effective use of Grand Central Dispatch and Keychain.
Each chapter contains a complete sample project that walks you through integrating its technology into a typical iOS app. You’ll discover how multiple iOS features can be combined into exceptionally powerful apps and walk through a complete case study project: a fully functional game with complete Game Center integration.
Coverage includes:
New physics-based animation effects provided by UIKit Dynamics
Making the most of Core Location, MapKit, and Geofencing
Leveraging Game Center features such as Leader Boards and Achievements
Giving users access to their address and media libraries from within your app
Using lightweight JSON to move data among servers, apps, and websites
Syncing apps via iCloud using UIDocument and key-value store syncing
Securing user data with Keychain
Informing users of important app-related events via Notifications
Storing and retrieving persistent data locally with Core Data
Using advanced Objective-C features to write more manageable, concise apps
Improving responsiveness through concurrency with Grand Central Dispatch
Advanced text handling and display with TextKit
Smoothly handling complex and continuous gestures
Effective debugging techniques with Xcode 5 and Instruments
Building passes for Passbook and PassKit
If you’re a serious iOS developer who wants to build cutting-edge apps, iOS Components and Frameworks delivers the practical skills, reusable code, and expert insights you’re looking for.
Kyle Richter is the founder of Dragon Forged Software, an award-winning iOS and Mac Development Company, and co-founder of Empirical Development, a for-hire iOS shop. Kyle began writing code in the early 1990s and has always been dedicated to the Mac platform. He has written several books on iOS development, as well as articles on many popular developer blogs and websites. He manages a team of more than 20 full-time iOS developers and runs day-to-day operations at three development companies. Kyle travels the world speaking on development and entrepreneurship; currently he calls Key West his home, where he spends his time with his border collie Landis. Joe Keeley is the CTO of Dragon Forged Software, and Project Lead at Empirical Development. Joe works on Resolve and Slender, and has led a number of successful client projects to completion. He has liked writing code since first keying on an Apple II, and has worked on a wide variety of technology and systems projects in his career. Joe has presented several different technical topics at iOS and Mac conferences around the U.S. Joe lives in Denver, Colorado, with his wife and two daughters, and hopes to get back into competitive fencing again in his spare time.
1 UIKit Dynamics 1
Sample App 1
Introduction to UIKit Dynamics 2
Implementing UIKit Dynamics 3
Gravity 3
Collisions 4
Attachments 6
Springs 8
Snap 9
Push Forces 9
Item Properties 11
In-Depth UIDynamicAnimator and UIDynamicAnimatorDelegate 13
Summary 13
Exercises 14
2 Core Location, MapKit, and Geofencing 15
The Sample App 15
Obtaining User Location 15
Requirements and Permissions 16
Checking for Services 19
Starting Location Request 20
Parsing and Understanding Location Data 22
Significant Change Notifications 23
Using GPX Files to Test Specific Locations 24
Displaying Maps 26
Understanding the Coordinate Systems 26
MKMapKit Configuration and Customization 26
Responding to User Interactions 28
Map Annotations and Overlays 29
Adding Annotations 29
Displaying Standard and Custom Annotation Views 32
Draggable Annotation Views 35
Working with Map Overlays 36
Geocoding and Reverse-Geocoding 37
Geocoding an Address 37
Reverse-Geocoding a Location 41
Geofencing 44
Checking for Regional Monitoring Capability 44
Defining Boundaries 45
Monitoring Changes 46
Getting Directions 48
Summary 52
Exercises 53
3 Leaderboards 55
Whack-a-Cac 55
Spawning a Cactus 57
Cactus Interaction 60
Displaying Life and Score 62
Pausing and Resuming 63
Final Thoughts on Whack-a-Cac 64
iTunes Connect 65
Game Center Manager 68
Authenticating 70
Common Authentication Errors 71
iOS 6 Authentication 73
Submitting Scores 75
Adding Scores to Whack-a-Cac 78
Presenting Leaderboards 80
Score Challenges 82
Going Further with Leaderboards 84
Summary 86
Exercises 86
4 Achievements 87
iTunes Connect 87
Displaying Achievement Progress 89
Game Center Manager and Authentication 91
The Achievement Cache 91
Reporting Achievements 93
Adding Achievement Hooks 95
Completion Banners 96
Achievement Challenges 97
Adding Achievements into Whack-a-Cac 100
Earned or Unearned Achievements 101
Partially Earned Achievements 102
Multiple Session Achievements 104
Piggybacked Achievements and Storing Achievement Precision 105
Timer-Based Achievements 106
Resetting Achievements 107
Going Further with Achievements 108
Summary 110
Exercises 110
5 Getting Started with Address Book 111
Why Address Book Support Is Important 111
Limitations of Address Book Programming 112
Introduction to the Sample App 112
Getting Address Book Up and Running 112
Reading Data from the Address Book 115
Reading Multivalues from the Address Book 116
Understanding Address Book Labels 117
Working with Addresses 118
Address Book Graphical User Interface 120
People Picker 120
Programmatically Creating Contacts 125
Summary 128
Exercises 128
6 Working with Music Libraries 129
Introduction to the Sample App 129
Building a Playback Engine 131
Registering for Playback Notifications 131
User Controls 133
Handling State Changes 135
Duration and Timers 139
Shuffle and Repeat 140
Media Picker 141
Programmatic Picker 143
Playing a Random Song 144
Predicate Song Matching 145
Summary 147
Exercises 148
7 Working with and Parsing JSON 149
JSON 149
Benefits of Using JSON 149
JSON Resources 150
Sample App Overview 150
Accessing the Server 150
Getting JSON from the Server 151
Building the Request 151
Inspecting the Response 152
Parsing JSON 153
Displaying the Data 154
Posting a Message 155
Encoding JSON 156
Sending JSON to the Server 158
Summary 159
Exercise 159
8 Getting Started with iCloud 161
The Sample App 161
Setting Up the App for iCloud Support 162
Account Setup 162
Enabling iCloud Capabilities 163
Initializing iCloud 164
Introducing UIDocument 165
Subclassing UIDocument 165
Interacting with UIDocument 167
Interacting with iCloud 168
Listing Documents in iCloud 168
Detecting Conflicts in iCloud 172
Conflict Resolution 173
Key-Value Store Syncing 178
Summary 180
Exercises 180
9 Notifications 181
Differences Between Local and Push Notifications 181
Sample App 182
App Setup 182
Create Development Push SSL Certificate 184
Development Provisioning Profile 188
Custom Sound Preparation 194
Registering for Remote Notifications 194
Scheduling Local Notifications 196
Receiving Notifications 196
Push Notification Server 198
Basic Rails Setup 198
Add Support for Devices and Shouts 199
Device Controller 202
Shout Controller 202
Tying It All Together 204
Sending the Push Notifications 207
Handling APNs Feedback 207
Summary 208
Exercise 208
10 Bluetooth Networking with Game Kit 209
Limitations of Game Kit’s Bluetooth Networking 209
Benefits of Game Kit’s Bluetooth Networking 210
Sample App 210
The Peer Picker 215
Sending Data 218
Data Modes 219
Sending Data in the Sample App 219
Receiving Data 221
Receiving Data in the Sample App 221
State Changes 222
Advanced Features 223
Peer Display Name 223
Connecting Without the Peer Picker 223
Session Modes 225
Summary 225
Exercises 225
11 AirPrint 227
AirPrint Printers 227
Testing for AirPrint 229
Printing Text 229
Print Info 230
Setting Page Range 231
Error Handling 232
Starting the Print Job 232
Print Simulator Feedback 233
Print Center 234
UIPrintInteractionControllerDelegate 234
Printing Rendered HTML 236
Printing PDFs 237
Summary 239
Exercises 239
12 Core Data Primer 241
Deciding on Core Data 242
Core Data Managed Objects 243
Managed Objects 243
Managed Object Model 244
Managed Object Model Migrations 246
Creating Managed Objects 246
Fetching and Sorting Objects 247
Fetched Results Controller 248
The Core Data Environment 248
Persistent Store Coordinator 249
Persistent Store 249
Managed Object Context 249
Summary 250
13 Getting Up and Running with Core Data 251
Sample App 251
Starting a Core Data Project 252
Core Data Environment 254
Building Your Managed Object Model 256
Creating an Entity 257
Adding Attributes 257
Establishing Relationships 258
Custom Managed Object Subclasses 259
Setting Up Default Data 260
Inserting New Managed Objects 260
Other Default Data Setup Techniques 261
Displaying Your Managed Objects 262
Creating Your Fetch Request 262
Fetching by Object ID 264
Displaying Your Object Data 265
Using Predicates 267
Introducing the Fetched Results Controller 268
Preparing the Fetched Results Controller 268
Integrating Table View and Fetched Results Controller 271
Responding to Core Data Changes 273
Adding, Editing, and Removing Managed Objects 275
Inserting a New Managed Object 275
Removing a Managed Object 276
Editing an Existing Managed Object 277
Saving and Rolling Back Your Changes 278
Summary 279
Exercises 279
14 Language Features 281
Literals 282
Boxed Expressions 284
Automatic Reference Counting 285
Using ARC in a New Project 285
Converting an Existing Project to ARC 286
Basic ARC Usage 288
ARC Qualifiers 289
Blocks 290
Declaring and Using Blocks 290
Capturing State with Blocks 291
Using Blocks as Method Parameters 293
Memory, Threads, and Blocks 294
Properties 295
Declaring Properties 295
Synthesizing Properties 297
Accessing Properties 297
Dot Notation 298
Fast Enumeration 298
Method Swizzling 299
Summary 302
Exercises 302
15 Integrating Twitter and Facebook Using Social Framework 303
Social Integration 303
The Sample App 303
Logging In 304
Using SLComposeViewController 306
Posting with a Custom Interface 308
Posting to Twitter 308
Posting to Facebook 312
Creating a Facebook App 312
Accessing User Timelines 318
Twitter 318
Facebook 324
Summary 328
Exercises 328
16 Working with Background Tasks 329
The Sample App 330
Checking for Background Availability 330
Finishing a Task in the Background 331
Background Task Identifier 332
Expiration Handler 333
Completing the Background Task 333
Implementing Background Activities 335
Types of Background Activities 335
Playing Music in the Background 336
Summary 340
Exercises 340
17 Grand Central Dispatch for Performance 341
The Sample App 341
Introduction to Queues 343
Running on the Main Thread 343
Running in the Background 345
Running in an Operation Queue 347
Concurrent Operations 347
Serial Operations 349
Canceling Operations 350
Custom Operations 351
Running in a Dispatch Queue 353
Concurrent Dispatch Queues 353
Serial Dispatch Queues 355
Summary 357
Exercises 358
18 Using Keychain to Secure Data 359
Introduction to the Sample App 360
Setting Up and Using Keychain 360
Setting Up a New KeychainItemWrapper 361
Storing and Retrieving the PIN 362
Keychain Attribute Keys 363
Securing a Dictionary 364
Resetting a Keychain Item 366
Sharing a Keychain Between Apps 367
Keychain Error Codes 368
Summary 368
Exercises 369
19 Working with Images and Filters 371
The Sample App 371
Basic Image Data and Display 371
Instantiating an Image 372
Displaying an Image 373
Using the Image Picker 375
Resizing an Image 378
Core Image Filters 379
Filter Categories and Filters 379
Filter Attributes 382
Initializing an Image 384
Rendering a Filtered Image 385
Chaining Filters 386
Face Detection 387
Setting Up a Face Detector 388
Processing Face Features 388
Summary 390
Exercises 391
20 Collection Views 393
The Sample App 393
Introducing Collection Views 394
Setting Up a Collection View 395
Implementing the Collection View Data Source Methods 396
Implementing the Collection View Delegate Methods 399
Customizing Collection View and Flow Layout 401
Basic Customizations 401
Decoration Views 402
Creating Custom Layouts 406
Collection View Animations 411
Collection View Layout Changes 411
Collection View Layout Animations 412
Collection View Change Animations 414
Summary 415
Exercises 415
21 Introduction to TextKit 417
Sample App 417
Introducing NSLayoutManager 418
NSTextStore 418
Detecting Links Dynamically 421
Detecting Hits 422
Exclusion Paths 423
Content Specific Highlighting 425
Changing Font Settings with Dynamic Type 429
Summary 431
Exercises 431
22 Gesture Recognizers 433
Types of Gesture Recognizers 433
Basic Gesture Recognizer Usage 434
Introduction to the Sample App 434
Tap Recognizer in Action 435
Pinch Recognizer in Action 436
Multiple Recognizers for a View 438
Gesture Recognizers: Under the Hood 440
Multiple Recognizers for a View: Redux 441
Requiring Gesture Recognizer Failures 443
Custom UIGestureRecognizer Subclasses 444
Summary 445
Exercise 445
23 Accessing Photo Libraries 447
Sample App 447
The Assets Library 448
Enumerating Asset Groups and Assets 448
Permissions 449
Groups 451
Assets 455
Displaying Assets 458
Saving to the Camera Roll 462
Dealing with Photo Stream 465
Summary 467
Exercises 467
24 Passbook and PassKit 469
The Sample App 470
Designing the Pass 470
Pass Types 471
Pass Layout—Boarding Pass 471
Pass Layout—Coupon 471
Pass Layout—Event 472
Pass Layout—Generic 473
Pass Layout—Store Card 474
Pass Presentation 474
Building the Pass 476
Basic Pass Identification 477
Pass Relevance Information 478
Barcode Identification 478
Pass Visual Appearance Information 479
Pass Fields 479
Signing and Packaging the Pass 482
Creating the Pass Type ID 482
Creating the Pass Signing Certificate 484
Creating the Manifest 489
Signing and Packaging the Pass 489
Testing the Pass 490
Interacting with Passes in an App 490
Updating Passes Automatically 501
Summary 502
Exercises 502
25 Debugging and Instruments 503
Introduction to Debugging 503
The First Computer Bug 504
Debugging Basics with Xcode 504
Breakpoints 506
Customizing Breakpoints 507
Symbolic and Exception Breakpoints 508
Breakpoint Scope 508
Working with the Debugger 509
Instruments 511
The Instruments Interface 512
Exploring Instruments: The Time Profiler 514
Exploring Instruments: Leaks 516
Going Further with Instruments 519
Summary 519
Exercises 520
Index 521
Erscheint lt. Verlag | 14.11.2013 |
---|---|
Verlagsort | New Jersey |
Sprache | englisch |
Maße | 228 x 179 mm |
Gewicht | 884 g |
Themenwelt | Informatik ► Betriebssysteme / Server ► iOS |
Informatik ► Weitere Themen ► Smartphones / Tablets | |
Technik ► Nachrichtentechnik | |
ISBN-10 | 0-321-85671-6 / 0321856716 |
ISBN-13 | 978-0-321-85671-5 / 9780321856715 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich