Mastering iOS Frameworks: Beyond the Basics

Apple’s iOS SDK provides an amazingly powerful collection of frameworks. But it has been difficult to find detailed and useful knowledge about them–until now. With this book’s practical insights and tested code, you can use Apple’s frameworks to create apps that are more innovative and usable…faster and more reliable…more successful and profitable.


Kyle Richter and Joe Keeley focus on intermediate-to-advanced techniques that professional iOS developers can use every day. Their far-reaching coverage ranges from social support to security, Core Data to iCloud–even Apple Watch.


Organized as a convenient modular reference, nearly every chapter contains a complete Objective-C sample project. A multi-chapter Game Center case study shows how multiple iOS features can be combined to do even more.

 

All source code may be downloaded at https://github.com/dfsw/icf.

 

Coverage includes:

  • Adding physics-like animation and behaviors to UIViews
  • Using Core Location to determine device location, display customized maps, and implement geofencing
  • Making games and apps social with Leaderboards
  • Accessing music and image collections
  • Building health/fitness apps with HealthKit
  • Integrating with home automation via HomeKit
  • Passing data between platforms using JSON
  • Setting up local and remote notifications
  • Remotely storing and syncing data with CloudKit
  • Accessing app functionality with extensions
  • Effortlessly adding AirPrint support
  • Providing Handoff continuity between iOS 8 and Yosemite devices
  • Getting productive with Core Data
  • Integrating Twitter and Facebook via Social Framework
  • Performing resource-intensive tasks with Grand Central Dispatch
  • Securing user data with Keychain and Touch ID
  • Customizing collection views
  • Making the most of gesture recognizers
  • Creating and distributing “passes”
  • Debugging, instrumenting, and profiling apps
1124317634
Mastering iOS Frameworks: Beyond the Basics

Apple’s iOS SDK provides an amazingly powerful collection of frameworks. But it has been difficult to find detailed and useful knowledge about them–until now. With this book’s practical insights and tested code, you can use Apple’s frameworks to create apps that are more innovative and usable…faster and more reliable…more successful and profitable.


Kyle Richter and Joe Keeley focus on intermediate-to-advanced techniques that professional iOS developers can use every day. Their far-reaching coverage ranges from social support to security, Core Data to iCloud–even Apple Watch.


Organized as a convenient modular reference, nearly every chapter contains a complete Objective-C sample project. A multi-chapter Game Center case study shows how multiple iOS features can be combined to do even more.

 

All source code may be downloaded at https://github.com/dfsw/icf.

 

Coverage includes:

  • Adding physics-like animation and behaviors to UIViews
  • Using Core Location to determine device location, display customized maps, and implement geofencing
  • Making games and apps social with Leaderboards
  • Accessing music and image collections
  • Building health/fitness apps with HealthKit
  • Integrating with home automation via HomeKit
  • Passing data between platforms using JSON
  • Setting up local and remote notifications
  • Remotely storing and syncing data with CloudKit
  • Accessing app functionality with extensions
  • Effortlessly adding AirPrint support
  • Providing Handoff continuity between iOS 8 and Yosemite devices
  • Getting productive with Core Data
  • Integrating Twitter and Facebook via Social Framework
  • Performing resource-intensive tasks with Grand Central Dispatch
  • Securing user data with Keychain and Touch ID
  • Customizing collection views
  • Making the most of gesture recognizers
  • Creating and distributing “passes”
  • Debugging, instrumenting, and profiling apps
35.99 In Stock
Mastering iOS Frameworks: Beyond the Basics

Mastering iOS Frameworks: Beyond the Basics

by Kyle Richter, Joe Keeley
Mastering iOS Frameworks: Beyond the Basics

Mastering iOS Frameworks: Beyond the Basics

by Kyle Richter, Joe Keeley

eBook

$35.99  $47.99 Save 25% Current price is $35.99, Original price is $47.99. You Save 25%.

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

Apple’s iOS SDK provides an amazingly powerful collection of frameworks. But it has been difficult to find detailed and useful knowledge about them–until now. With this book’s practical insights and tested code, you can use Apple’s frameworks to create apps that are more innovative and usable…faster and more reliable…more successful and profitable.


Kyle Richter and Joe Keeley focus on intermediate-to-advanced techniques that professional iOS developers can use every day. Their far-reaching coverage ranges from social support to security, Core Data to iCloud–even Apple Watch.


Organized as a convenient modular reference, nearly every chapter contains a complete Objective-C sample project. A multi-chapter Game Center case study shows how multiple iOS features can be combined to do even more.

 

All source code may be downloaded at https://github.com/dfsw/icf.

 

Coverage includes:

  • Adding physics-like animation and behaviors to UIViews
  • Using Core Location to determine device location, display customized maps, and implement geofencing
  • Making games and apps social with Leaderboards
  • Accessing music and image collections
  • Building health/fitness apps with HealthKit
  • Integrating with home automation via HomeKit
  • Passing data between platforms using JSON
  • Setting up local and remote notifications
  • Remotely storing and syncing data with CloudKit
  • Accessing app functionality with extensions
  • Effortlessly adding AirPrint support
  • Providing Handoff continuity between iOS 8 and Yosemite devices
  • Getting productive with Core Data
  • Integrating Twitter and Facebook via Social Framework
  • Performing resource-intensive tasks with Grand Central Dispatch
  • Securing user data with Keychain and Touch ID
  • Customizing collection views
  • Making the most of gesture recognizers
  • Creating and distributing “passes”
  • Debugging, instrumenting, and profiling apps

Product Details

ISBN-13: 9780134052526
Publisher: Pearson Education
Publication date: 04/11/2015
Series: Developer's Library
Sold by: Barnes & Noble
Format: eBook
Pages: 576
File size: 51 MB
Note: This product may take a few minutes to download.
Age Range: 18 Years

About the Author

Kyle Richter is the Chief Executive Officer at MartianCraft, an award-winning Mobile Development Studio. Kyle began developing software in the early 1990s and has always been dedicated to the Apple ecosystem. He has authored and coauthored several books on iOS development, includingBeginning iOS Game Center Development, Beginning Social Game Development, andiOS Components and Frameworks. Between running day-to-day operations at MartianCraft, Kyle travels the world speaking on development and entrepreneurship. He currently calls the Florida Keys home, where he spends his time with his border collie. He can be found on Twitter at @kylerichter.

 

Joe Keeley is a Partner and Lead Engineer at MartianCraft. Joe provides technical leadership on iOS projects for clients, 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 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. He can be reached on Twitter at @jwkeeley.

Table of Contents

1 UIKit Dynamics     1
The Sample App     1
Introduction to UIKit Dynamics     2
Implementing UIKit Dynamics     3
    Gravity     3
    Collisions     4
    Attachments     7
    Springs     8
    Snap     9
    Push Forces     10
    Item Properties     11
In-Depth UIDynamicAnimator and UIDynamicAnimatorDelegate     13
Summary     14


2 Core Location, MapKit, and Geofencing     15
The Sample App     15
Obtaining User Location     16
    Requirements and Permissions     16
    Checking for Services     19
    Starting Location Request     19
    Parsing and Understanding Location Data     22
    Significant Change Notifications     23
    Using GPX Files to Test Specific Locations     23
Displaying Maps     25
    Understanding the Coordinate Systems     25
    MKMapKit Configuration and Customization     25
    Responding to User Interactions     27
Map Annotations and Overlays     28
    Adding Annotations     28
    Displaying Standard and Custom Annotation Views     31
    Draggable Annotation Views     34
    Working with Map Overlays     35
Geocoding and Reverse-Geocoding     36
    Geocoding an Address    36
    Reverse-Geocoding a Location     40
Geofencing     43
    Checking for Regional Monitoring Capability     43
    Defining Boundaries     44
    Monitoring Changes     45
Getting Directions     47
Summary     52


3 Leaderboards     53
The Sample App     53
    Spawning a Cactus     55
    Cactus Interaction     58
    Displaying Life and Score     60
    Pausing and Resuming     62
    Final Thoughts on Whack-a-Cac     63
iTunes Connect     63
Game Center Manager     66
Authenticating     68
    Common Authentication Errors     69
    iOS 6 and Newer Authentication     71
Submitting Scores     73
    Adding Scores to Whack-a-Cac     76
    Presenting Leaderboards     77
    Score Challenges     79
    Going Further with Leaderboards     81
Summary     83


4 Achievements     85
iTunes Connect     85
Displaying Achievement Progress     87
Game Center Manager and Authentication     88
The Achievement Cache     89
Reporting Achievements     90
Adding Achievement Hooks     92
Completion Banners     93
Achievement Challenges     94
Adding Achievements into Whack-a-Cac     97
    Earned or Unearned Achievements     98
    Partially Earned Achievements     99
    Multiple Session Achievements     101
    Piggybacked Achievements and Storing Achievement Precision     102
    Timer-Based Achievements     103
Resetting Achievements     104
Going Further with Achievements     105
Summary     107


5 Getting Started with Address Book     109
Why Address Book Support Is Important     109
Limitations of Address Book Programming     110
The Sample App     110
Getting Address Book Up and Running     111
    Reading Data from the Address Book     113
    Reading Multivalues from the Address Book     114
    Understanding Address Book Labels     115
    Working with Addresses     116
Address Book Graphical User Interface     118
    People Picker     118
Programmatically Creating Contacts     123
Summary     126


6 Working with Music Libraries     127
The Sample App     127
Building a Playback Engine     129
    Registering for Playback Notifications     129
    User Controls     131
    Handling State Changes     132
    Duration and Timers     137
    Shuffle and Repeat     138
Media Picker     138
Programmatic Picker     141
    Playing a Random Song     141
    Predicate Song Matching     142
Summary     144


7 Implementing HealthKit     145
Introduction to HealthKit     145
Introduction to Health.app     146
The Sample App     147
Adding HealthKit to a Project         148
Requesting Permission for Health Data     149
Reading Characteristic HealthKit Data     152
Reading and Writing Basic HealthKit Data     152
Reading and Writing Complex HealthKit Data     155
Summary     160


8 Implementing HomeKit     161
The Sample App     161
Introduction to HomeKit     162
Setting Up HomeKit Components     162
    Developer Account Setup     163
    Enabling HomeKit Capability     163
    Home Manager     164
    Home     166
    Rooms and Zones     168
    Accessories     170
    Services and Service Groups     176
    Actions and Action Sets     178
Testing with the HomeKit Accessory Simulator     179
Scheduling Actions with Triggers     181
Summary     181


9 Working with and Parsing JSON     183
JSON     183
    Benefits of Using JSON     183
    JSON Resources     184
The Sample App     184
Accessing the Server     184
Getting JSON from the Server     185
    Building the Request     185
    Inspecting the Response     186
    Parsing JSON     186
    Displaying the Data     187
Posting a Message     189
    Encoding JSON     189
    Sending JSON to the Server     191
Summary     193


10 Notifications     195
Differences Between Local and Push Notifications     195
The Sample App     196
App Setup     196
Creating Development Push SSL Certificate     200
Development Provisioning Profile     203
Custom Sound Preparation     208
Registering for Notifications     209
Scheduling Local Notifications     211
Receiving Notifications     212
Push Notification Server     213
Sending the Push Notifications     214
Handling APNs Feedback     215
Summary     216


11 Cloud Persistence with CloudKit     217
CloudKit Basics     217
The Sample App     218
Setting Up a CloudKit Project     218
    Account Setup     218
    Enabling iCloud Capabilities     220
CloudKit Concepts     220
    Containers     220
    Databases     221
    Records     221
    Record Zones     222
    Record Identifiers     222
    Assets     222
CloudKit Basic Operations     222
    Fetching Records     223
    Create and Save a Record     224
    Update and Save a Record     226
Subscriptions and Push     227
    Push Setup     227
    Subscribing to Data Changes     227
User Discovery and Management     229
Managing Data in the Dashboard     233
Summary     235


12 Extensions     237
Types of Extensions     237
    Today     237
    Share     238
    Action     238
    Photo Editing     238
    Document Provider     238
    Custom Keyboard     238
Understanding Extensions     238
API Limitations     239
Creating Extensions     240
Today Extension     242
Sharing Code and Information between Host App and Extension     243
Apple Watch Extension     244
Summary     247


13 Handoff     249
The Sample App     249
Handoff Basics     249
Implementing Handoff     251
    Creating the User Activity     252
    Continuing an Activity     253
Implementing Handoff in Document-Based Apps     255
Summary     257


14 AirPrint     259
AirPrint Printers     259
Testing for AirPrint     261
Printing Text     261
    Print Info     262
    Setting Page Range     263
    UISimpleTextPrintFormatter     263
    Error Handling     264
    Starting the Print Job     264
    Printer Simulator Feedback     265
Print Center     266
    UIPrintInteractionControllerDelegate     267
Printing Rendered HTML     268
Printing PDFs     269
Summary     270


15 Getting Up and Running with Core Data     271
Deciding on Core Data     272
Sample App     273
Starting a Core Data Project     274
    Core Data Environment     275
Building Your Managed Object Model     278
    Creating an Entity     280
    Adding Attributes     280
    Establishing Relationships     281
    Custom Managed Object Subclasses     282
Setting Up Default Data     282
    Inserting New Managed Objects     282
    Other Default Data Setup Techniques     284
Displaying Your Managed Objects     285
    Creating Your Fetch Request     285
    Fetching by Object ID     287
    Displaying Your Object Data     288
    Using Predicates     290
Introducing the Fetched Results Controller     292
    Preparing the Fetched Results Controller     292
    Integrating Table View and Fetched Results Controller     294
    Responding to Core Data Changes     296
Adding, Editing, and Removing Managed Objects     299
    Inserting a New Managed Object     299
    Removing a Managed Object     300
    Editing an Existing Managed Object     301
    Saving and Rolling Back Your Changes     301
Summary     303


16 Integrating Twitter and Facebook Using Social Framework     305
The Sample App     305
Logging In     306
Using SLComposeViewController     308
Posting with a Custom Interface     311
    Posting to Twitter     311
    Posting to Facebook     315
    Creating a Facebook App     315
Accessing User Timelines     322
    Twitter     322
    Facebook     327
Summary     331


17 Working with Background Tasks     333
The Sample App     334
Checking for Background Availability     334
Finishing a Task in the Background     335
    Background Task Identifier     336
    Expiration Handler     337
    Completing the Background Task     337
Implementing Background Activities     339
    Types of Background Activities     339
    Playing Music in the Background     340
Summary     344


18 Grand Central Dispatch for Performance     345
The Sample App     345
Introduction to Queues     347
Running on the Main Thread     347
Running in the Background     349
Running in an Operation Queue     351
    Concurrent Operations     351
    Serial Operations     353
    Canceling Operations     354
    Custom Operations     355
Running in a Dispatch Queue     357
    Concurrent Dispatch Queues     357
    Serial Dispatch Queues     359
Summary     361


19 Using Keychain and Touch ID to Secure and Access Data     363
The Sample App     364
Setting Up and Using Keychain     364
    Setting Up a New KeychainItemWrapper     365
    Storing and Retrieving the PIN     366
    Keychain Attribute Keys     367
    Securing a Dictionary     368
    Resetting a Keychain Item     370
    Sharing a Keychain Between Apps     370
    Keychain Error Codes     372
Implementing Touch ID     372
Summary     374


20 Working with Images and Filters     375
The Sample App     375
Basic Image Data and Display     376
    Instantiating an Image     376
    Displaying an Image     377
    Using the Image Picker     379
    Resizing an Image     382
Core Image Filters     383
    Filter Categories and Filters     383
    Filter Attributes     386
    Initializing an Image     388
    Rendering a Filtered Image     389
    Chaining Filters     390
Feature Detection     391
    Setting Up a Face Detector     391
    Processing Face Features     392
Summary     394


21 Collection Views     395
The Sample App     395
Introducing Collection Views     396
    Setting Up a Collection View     397
    Implementing the Collection View Data Source Methods     398
    Implementing the Collection View Delegate Methods     401
Customizing Collection View and Flow Layout     403
    Basic Customizations     403
    Decoration Views     405
Creating Custom Layouts     408
Collection View Animations     413
    Collection View Layout Changes     413
    Collection View Layout Animations     414
    Collection View Change Animations     416
Summary     417


22 Introduction to TextKit     419
The Sample App     420
Introducing NSLayoutManager     420
Detecting Links Dynamically     423
Detecting Hits     424
Exclusion Paths     425
Content Specific Highlighting     427
Changing Font Settings with Dynamic Type     432
Summary     433


23 Gesture Recognizers     435
Types of Gesture Recognizers     435
Basic Gesture Recognizer Usage     436
Introduction to the Sample App     437
    Tap Recognizer in Action     438
    Pinch Recognizer in Action     440
Multiple Recognizers for a View     441
    Gesture Recognizers: Under the Hood     443
    Multiple Recognizers for a View: Redux     444
    Requiring Gesture Recognizer Failures     446
Custom UIGestureRecognizer Subclasses     448
Summary     448


24 Accessing the Photo Library     449
The Sample App     449
The Photos Framework     450
Using Asset Collections and Assets     451
    Permissions     451
    Asset Collections     453
    Assets     457
Changes in the Photo Library     459
    Asset Collection Changes     459
    Asset Changes     462
Dealing with Photo Stream     464
Summary     465


25 Passbook and PassKit     467
The Sample App     468
Designing the Pass     468
    Pass Types     469
    Pass Layout–Boarding Pass     469
    Pass Layout–Coupon     470
    Pass Layout–Event     471
    Pass Layout–Generic     471
    Pass Layout–Store Card     472
    Pass Presentation     473
Building the Pass     474
    Basic Pass Identification     476
    Pass Relevance Information     476
    Barcode Identification     477
    Pass Visual Appearance Information     478
    Pass Fields     478
Signing and Packaging the Pass     481
    Creating the Pass Type ID     481
    Creating the Pass Signing Certificate     483
    Creating the Manifest     488
    Signing and Packaging the Pass     489
    Testing the Pass     489
    Interacting with Passes in an App     491
Updating Passes Automatically     501
Summary     502


26 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     510
    The Instruments Interface     512
    Exploring Instruments: The Time Profiler     514
    Exploring Instruments: Leaks     516
    Going Further with Instruments     519
Summary     519

 

Index     521

From the B&N Reads Blog

Customer Reviews