iOS Components and Frameworks

Understanding the Advanced Features of the iOS SDK
Addison Wesley (Verlag)
  • 1. Auflage
  • |
  • erschienen am 8. Oktober 2013
E-Book | ePUB mit Adobe-DRM | Systemvoraussetzungen
978-0-13-308688-1 (ISBN)

Take Your Next Leap Forward as an iOS App Developer! Covers iOS 7 and Xcode 5

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.

1. Auflage
  • Englisch
  • Boston
  • |
  • USA
Pearson Education (US)
  • Für Beruf und Forschung
  • 69,30 MB
978-0-13-308688-1 (9780133086881)
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

Dateiformat: ePUB
Kopierschutz: Adobe-DRM (Digital Rights Management)


Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Adobe-DRM wird hier ein "harter" Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.

Bitte beachten Sie bei der Verwendung der Lese-Software Adobe Digital Editions: wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!

Weitere Informationen finden Sie in unserer E-Book Hilfe.

Download (sofort verfügbar)

17,49 €
inkl. 7% MwSt.
Download / Einzel-Lizenz
ePUB mit Adobe-DRM
siehe Systemvoraussetzungen
E-Book bestellen