http://www.amazon.com/Mastering-iOS-Frameworks-Edition-Developers/dp/0134052498
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 Contents1 UIKit DynamicsThe Sample AppIntroduction to UIKit DynamicsImplementing UIKit DynamicsGravityCollisionsAttachmentsSpringsSnapPush ForcesItem PropertiesIn-Depth UIDynamicAnimator and UIDynamicAnimatorDelegateSummary2 Core Location, MapKit, and GeofencingThe Sample AppObtaining User LocationRequirements and PermissionsChecking for ServicesStarting Location RequestParsing and Understanding Location DataSignificant Change NotificationsUsing GPX Files to Test Specific LocationsDisplaying MapsUnderstanding the Coordinate SystemsMKMapKit Configuration and CustomizationResponding to User InteractionsMap Annotations and OverlaysAdding AnnotationsDisplaying Standard and Custom Annotation ViewsDraggable Annotation ViewsWorking with Map OverlaysGeocoding and Reverse-GeocodingGeocoding an AddressReverse-Geocoding a LocationGeofencingChecking for Regional Monitoring CapabilityDefining BoundariesMonitoring ChangesGetting DirectionsSummary3 LeaderboardsThe Sample AppSpawning a CactusCactus InteractionDisplaying Life and ScorePausing and ResumingFinal Thoughts on Whack-a-CaciTunes ConnectGame Center ManagerAuthenticatingCommon Authentication ErrorsiOS 6 and Newer AuthenticationSubmitting ScoresAdding Scores to Whack-a-CacPresenting LeaderboardsScore ChallengesGoing Further with LeaderboardsSummary4 AchievementsiTunes ConnectDisplaying Achievement ProgressGame Center Manager and AuthenticationThe Achievement CacheReporting AchievementsAdding Achievement HooksCompletion BannersAchievement ChallengesAdding Achievements into Whack-a-CacEarned or Unearned AchievementsPartially Earned AchievementsMultiple Session AchievementsPiggybacked Achievements and Storing Achievement PrecisionTimer-Based AchievementsResetting AchievementsGoing Further with AchievementsSummary5 Getting Started with Address BookWhy Address Book Support Is ImportantLimitations of Address Book ProgrammingThe Sample AppGetting Address Book Up and RunningReading Data from the Address BookReading Multivalues from the Address BookUnderstanding Address Book LabelsWorking with AddressesAddress Book Graphical User InterfacePeople PickerProgrammatically Creating ContactsSummary6 Working with Music LibrariesThe Sample AppBuilding a Playback EngineRegistering for Playback NotificationsUser ControlsHandling State ChangesDuration and TimersShuffle and RepeatMedia PickerProgrammatic PickerPlaying a Random SongPredicate Song MatchingSummary7 Implementing HealthKitIntroduction to HealthKitIntroduction to Health.appThe Sample AppAdding HealthKit to a ProjectRequesting Permission for Health DataReading Characteristic HealthKit DataReading and Writing Basic HealthKit DataReading and Writing Complex HealthKit DataSummary8 Implementing HomeKitThe Sample AppIntroduction to HomeKitSetting Up HomeKit ComponentsDeveloper Account SetupEnabling HomeKit CapabilityHome ManagerHomeRooms and ZonesAccessoriesServices and Service GroupsActions and Action SetsTesting with the HomeKit Accessory SimulatorScheduling Actions with TriggersSummary9 Working with and Parsing JSONJSONBenefits of Using JSONJSON ResourcesThe Sample AppAccessing the ServerGetting JSON from the ServerBuilding the RequestInspecting the ResponseParsing JSONDisplaying the DataPosting a MessageEncoding JSONSending JSON to the ServerSummary10 NotificationsDifferences Between Local and Push NotificationsThe Sample AppApp SetupCreating Development Push SSL CertificateDevelopment Provisioning ProfileCustom Sound PreparationRegistering for NotificationsScheduling Local NotificationsReceiving NotificationsPush Notification ServerSending the Push NotificationsHandling APNs FeedbackSummary11 Cloud Persistence with CloudKitCloudKit BasicsThe Sample AppSetting Up a CloudKit ProjectAccount SetupEnabling iCloud CapabilitiesCloudKit ConceptsContainersDatabasesRecordsRecord ZonesRecord IdentifiersAssetsCloudKit Basic OperationsFetching RecordsCreate and Save a RecordUpdate and Save a RecordSubscriptions and PushPush SetupSubscribing to Data ChangesUser Discovery and ManagementManaging Data in the DashboardSummary12 ExtensionsTypes of ExtensionsTodayShareActionPhoto EditingDocument ProviderCustom KeyboardUnderstanding ExtensionsAPI LimitationsCreating ExtensionsToday ExtensionSharing Code and Information between Host App and ExtensionApple Watch ExtensionSummary13 HandoffThe Sample AppHandoff BasicsImplementing HandoffCreating the User ActivityContinuing an ActivityImplementing Handoff in Document-Based AppsSummary14 AirPrintAirPrint PrintersTesting for AirPrintPrinting TextPrint InfoSetting Page RangeUISimpleTextPrintFormatterError HandlingStarting the Print JobPrinter Simulator FeedbackPrint CenterUIPrintInteractionControllerDelegatePrinting Rendered HTMLPrinting PDFsSummary15 Getting Up and Running with Core DataDeciding on Core DataSample AppStarting a Core Data ProjectCore Data EnvironmentBuilding Your Managed Object ModelCreating an EntityAdding AttributesEstablishing RelationshipsCustom Managed Object SubclassesSetting Up Default DataInserting New Managed ObjectsOther Default Data Setup TechniquesDisplaying Your Managed ObjectsCreating Your Fetch RequestFetching by Object IDDisplaying Your Object DataUsing PredicatesIntroducing the Fetched Results ControllerPreparing the Fetched Results ControllerIntegrating Table View and Fetched Results ControllerResponding to Core Data ChangesAdding, Editing, and Removing Managed ObjectsInserting a New Managed ObjectRemoving a Managed ObjectEditing an Existing Managed ObjectSaving and Rolling Back Your ChangesSummary16 Integrating Twitter and Facebook Using Social FrameworkThe Sample AppLogging InUsing SLComposeViewControllerPosting with a Custom InterfacePosting to TwitterPosting to FacebookCreating a Facebook AppAccessing User TimelinesTwitterFacebookSummary17 Working with Background TasksThe Sample AppChecking for Background AvailabilityFinishing a Task in the BackgroundBackground Task IdentifierExpiration HandlerCompleting the Background TaskImplementing Background ActivitiesTypes of Background ActivitiesPlaying Music in the BackgroundSummary18 Grand Central Dispatch for PerformanceThe Sample AppIntroduction to QueuesRunning on the Main ThreadRunning in the BackgroundRunning in an Operation QueueConcurrent OperationsSerial OperationsCanceling OperationsCustom OperationsRunning in a Dispatch QueueConcurrent Dispatch QueuesSerial Dispatch QueuesSummary19 Using Keychain and Touch ID to Secure and Access DataThe Sample AppSetting Up and Using KeychainSetting Up a New KeychainItemWrapperStoring and Retrieving the PINKeychain Attribute KeysSecuring a DictionaryResetting a Keychain ItemSharing a Keychain Between AppsKeychain Error CodesImplementing Touch IDSummary20 Working with Images and FiltersThe Sample AppBasic Image Data and DisplayInstantiating an ImageDisplaying an ImageUsing the Image PickerResizing an ImageCore Image FiltersFilter Categories and FiltersFilter AttributesInitializing an ImageRendering a Filtered ImageChaining FiltersFeature DetectionSetting Up a Face DetectorProcessing Face FeaturesSummary21 Collection ViewsThe Sample AppIntroducing Collection ViewsSetting Up a Collection ViewImplementing the Collection View Data Source MethodsImplementing the Collection View Delegate MethodsCustomizing Collection View and Flow LayoutBasic CustomizationsDecoration ViewsCreating Custom LayoutsCollection View AnimationsCollection View Layout ChangesCollection View Layout AnimationsCollection View Change AnimationsSummary22 Introduction to TextKitThe Sample AppIntroducing NSLayoutManagerDetecting Links DynamicallyDetecting HitsExclusion PathsContent Specific HighlightingChanging Font Settings with Dynamic TypeSummary23 Gesture RecognizersTypes of Gesture RecognizersBasic Gesture Recognizer UsageIntroduction to the Sample AppTap Recognizer in ActionPinch Recognizer in ActionMultiple Recognizers for a ViewGesture Recognizers: Under the HoodMultiple Recognizers for a View: ReduxRequiring Gesture Recognizer FailuresCustom UIGestureRecognizer SubclassesSummary24 Accessing the Photo LibraryThe Sample AppThe Photos FrameworkUsing Asset Collections and AssetsPermissionsAsset CollectionsAssetsChanges in the Photo LibraryAsset Collection ChangesAsset ChangesDealing with Photo StreamSummary25 Passbook and PassKitThe Sample AppDesigning the PassPass TypesPass Layout—Boarding PassPass Layout—CouponPass Layout—EventPass Layout—GenericPass Layout—Store CardPass PresentationBuilding the PassBasic Pass IdentificationPass Relevance InformationBarcode IdentificationPass Visual Appearance InformationPass FieldsSigning and Packaging the PassCreating the Pass Type IDCreating the Pass Signing CertificateCreating the ManifestSigning and Packaging the PassTesting the PassInteracting with Passes in an AppUpdating Passes AutomaticallySummary26 Debugging and InstrumentsIntroduction to DebuggingThe First Computer BugDebugging Basics with XcodeBreakpointsCustomizing BreakpointsSymbolic and Exception BreakpointsBreakpoint ScopeWorking with the DebuggerInstrumentsThe Instruments InterfaceExploring Instruments: The Time ProfilerExploring Instruments: LeaksGoing Further with InstrumentsSummaryIndex
沒有留言:
張貼留言
歡迎網友的交流與分享,謝謝。