Mastering iOS Frameworks
Home > Computing and Information Technology > Computer programming / software engineering > Apps programming > Mastering iOS Frameworks: Beyond the Basics
Mastering iOS Frameworks: Beyond the Basics

Mastering iOS Frameworks: Beyond the Basics


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

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

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

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.


Best Sellers


Product Details
  • ISBN-13: 9780134052496
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison-Wesley Educational Publishers Inc
  • Height: 228 mm
  • No of Pages: 576
  • Sub Title: Beyond the Basics
  • Width: 179 mm
  • ISBN-10: 0134052498
  • Publisher Date: 07 May 2015
  • Binding: Paperback
  • Language: English
  • Spine Width: 31 mm
  • Weight: 906 gr


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Mastering iOS Frameworks: Beyond the Basics
Pearson Education (US) -
Mastering iOS Frameworks: Beyond the Basics
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Mastering iOS Frameworks: Beyond the Basics

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!