Mastering iOS Frameworks - Kyle Richter, Joe Keeley

Mastering iOS Frameworks

Beyond the Basics
Buch | Softcover
576 Seiten
2015 | 2nd edition
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-13-405249-6 (ISBN)
45,90 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
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

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.

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

Erscheint lt. Verlag 7.5.2015
Verlagsort New Jersey
Sprache englisch
Maße 179 x 228 mm
Gewicht 906 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-13-405249-8 / 0134052498
ISBN-13 978-0-13-405249-6 / 9780134052496
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Schritt für Schritt einfach erklärt

von Philip Kiefer

Buch | Softcover (2023)
Markt + Technik (Verlag)
19,95