{"product_id":"swift-ios-24hour-trainer-9781119073550","title":"Swift iOS 24Hour Trainer","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eJump into the app development world with confidence!\u003c\/b\u003e \u003cp\u003e\u003ci\u003eiOS Swift 24-Hour Trainer\u003c\/i\u003e combines book and video lessons in Apple''s Swift programming language to prepare you to build iPhone and iPad appsand distribute them through the Appstore. First, this approachable text covers the fundamentals of Swift by introducing you to iOS development in this language, and presenting best practices for setting up a development environment and using variables, statements, expressions, operators, functions, and closures. Next, you explore common tasks, such as alert views, table views, and collection views. You then deepen your knowledge of Swift by considering network programming and local data storage. Finally, this engaging resource dives into slightly more advanced concepts, such as tab bars, web views, the accelerometer, camera, photo library, Google maps, and core location. \u003c\/p\u003e\u003cp\u003eSwift was designed by Apple to incorporate modern scripting features while offering simpler, cleaner synta\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e\"... this book serves as an excellent introduction to the Swift language, providing context, timeline and system requirements, both developer and run-time.\" (BCS - The Chartered Institute of IT, February 2017)\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eINTRODUCTION xxiii \u003c\/p\u003e\u003cp\u003e\u003cb\u003eSECTION I: HELLO iOS!\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 1: HELLO iOS! 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eiOS Developer Essentials 3\u003c\/p\u003e \u003cp\u003eA Suitable Mac 3\u003c\/p\u003e \u003cp\u003eA Device for Testing 4\u003c\/p\u003e \u003cp\u003eAn iOS Developer Account 4\u003c\/p\u003e \u003cp\u003eThe Offi cial iOS SDK 6\u003c\/p\u003e \u003cp\u003eThe Typical App Development Process 6\u003c\/p\u003e \u003cp\u003eWireframes and Design 8\u003c\/p\u003e \u003cp\u003eCoding 8\u003c\/p\u003e \u003cp\u003eTesting 8\u003c\/p\u003e \u003cp\u003eHome Screen Icon 9\u003c\/p\u003e \u003cp\u003eApplication Launch Image 10\u003c\/p\u003e \u003cp\u003eTry It 11\u003c\/p\u003e \u003cp\u003eLesson Requirements 11\u003c\/p\u003e \u003cp\u003eHints 11\u003c\/p\u003e \u003cp\u003eStep-by-Step 11\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 2: A TOUR OF XCODE AND THE iOS SIMULATOR 19\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Welcome Screen 19\u003c\/p\u003e \u003cp\u003eCreating a New Project 20\u003c\/p\u003e \u003cp\u003eAn Overview of the Xcode IDE 22\u003c\/p\u003e \u003cp\u003eThe Navigator Area 22\u003c\/p\u003e \u003cp\u003eThe Editor Area 26\u003c\/p\u003e \u003cp\u003eThe Utilities Area 28\u003c\/p\u003e \u003cp\u003eThe Debugger Area 30\u003c\/p\u003e \u003cp\u003eThe Toolbar 30\u003c\/p\u003e \u003cp\u003eFeatures of the iOS Simulator 31\u003c\/p\u003e \u003cp\u003eInstalling and Uninstalling Applications 32\u003c\/p\u003e \u003cp\u003eLimitations of the iOS Simulator 33\u003c\/p\u003e \u003cp\u003eTry It 33\u003c\/p\u003e \u003cp\u003eLesson Requirements 33\u003c\/p\u003e \u003cp\u003eHints 33\u003c\/p\u003e \u003cp\u003eStep-by-Step 33\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 3: INTRODUCING SWIFT 35\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing Xcode Playgrounds 35\u003c\/p\u003e \u003cp\u003eConstants and Variables 37\u003c\/p\u003e \u003cp\u003eData Types 38\u003c\/p\u003e \u003cp\u003eComments 39\u003c\/p\u003e \u003cp\u003eStrings 39\u003c\/p\u003e \u003cp\u003eTuples 40\u003c\/p\u003e \u003cp\u003eOptionals 41\u003c\/p\u003e \u003cp\u003eControl Flow Statements 42\u003c\/p\u003e \u003cp\u003eif-else 42\u003c\/p\u003e \u003cp\u003eswitch-case 44\u003c\/p\u003e \u003cp\u003eLoops 45\u003c\/p\u003e \u003cp\u003eControl Transfer Statements 49\u003c\/p\u003e \u003cp\u003eTry It 50\u003c\/p\u003e \u003cp\u003eLesson Requirements 50\u003c\/p\u003e \u003cp\u003eHints 50\u003c\/p\u003e \u003cp\u003eStep-by-Step 50\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 4: FUNCTIONS 53\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDeclaring Functions 53\u003c\/p\u003e \u003cp\u003eParameters and Return Values 53\u003c\/p\u003e \u003cp\u003eTry It 55\u003c\/p\u003e \u003cp\u003eLesson Requirements 55\u003c\/p\u003e \u003cp\u003eHints 55\u003c\/p\u003e \u003cp\u003eStep-by-Step 55\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 5: CLOSURES 57\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFunction Types 57\u003c\/p\u003e \u003cp\u003eClosure Types 58\u003c\/p\u003e \u003cp\u003eGlobal Closures 58\u003c\/p\u003e \u003cp\u003eNested Closures 58\u003c\/p\u003e \u003cp\u003eClosure Expressions 59\u003c\/p\u003e \u003cp\u003eTry It 60\u003c\/p\u003e \u003cp\u003eLesson Requirements 60\u003c\/p\u003e \u003cp\u003eHints 60\u003c\/p\u003e \u003cp\u003eStep-by-Step 60\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 6: ERROR HANDLING 63\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe ErrorType Protocol 63\u003c\/p\u003e \u003cp\u003eThrowing and Catching Errors 64\u003c\/p\u003e \u003cp\u003eSuppressing Error Handling 65\u003c\/p\u003e \u003cp\u003eThe defer Statement 66\u003c\/p\u003e \u003cp\u003eTry It 66\u003c\/p\u003e \u003cp\u003eLesson Requirements 66\u003c\/p\u003e \u003cp\u003eHints 67\u003c\/p\u003e \u003cp\u003eStep by Step 67\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 7: OBJECT-ORIENTED PROGRAMMING WITH SWIFT 69\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating Classes with Swift 70\u003c\/p\u003e \u003cp\u003eProperties 70\u003c\/p\u003e \u003cp\u003eMethods 71\u003c\/p\u003e \u003cp\u003eInstantiating Objects 74\u003c\/p\u003e \u003cp\u003eInheritance 74\u003c\/p\u003e \u003cp\u003eComputed Properties 76\u003c\/p\u003e \u003cp\u003eEnumerations 77\u003c\/p\u003e \u003cp\u003eProtocols 77\u003c\/p\u003e \u003cp\u003eTry It 81\u003c\/p\u003e \u003cp\u003eLesson Requirements 81\u003c\/p\u003e \u003cp\u003eHints 81\u003c\/p\u003e \u003cp\u003eStep-by-Step 81\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 8: SUPPORTING MULTIPLE DEVICE TYPES 85\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDevice Differences 86\u003c\/p\u003e \u003cp\u003eScreen Size 86\u003c\/p\u003e \u003cp\u003eIcon Size 87\u003c\/p\u003e \u003cp\u003eDevice Orientation 89\u003c\/p\u003e \u003cp\u003eThe Universal XCode Template 90\u003c\/p\u003e \u003cp\u003eTry It 91\u003c\/p\u003e \u003cp\u003eLesson Requirements 91\u003c\/p\u003e \u003cp\u003eHints 91\u003c\/p\u003e \u003cp\u003eStep-by-Step 91\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 9: INTRODUCTION TO UIKIT AND ADAPTIVE LAYOUT 95\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing the UIKit Framework 95\u003c\/p\u003e \u003cp\u003eThe UIButton Class 97\u003c\/p\u003e \u003cp\u003eThe UILabel Class 98\u003c\/p\u003e \u003cp\u003eBasic Constraints 99\u003c\/p\u003e \u003cp\u003ePreviewing Your Layout 106\u003c\/p\u003e \u003cp\u003eCreating Outlets 108\u003c\/p\u003e \u003cp\u003eCreating Actions 110\u003c\/p\u003e \u003cp\u003eTry It 110\u003c\/p\u003e \u003cp\u003eLesson Requirements 110\u003c\/p\u003e \u003cp\u003eHints 111\u003c\/p\u003e \u003cp\u003eStep-by-Step 111\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 10: INTRODUCTION TO STORYBOARDS 117\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTry It 124\u003c\/p\u003e \u003cp\u003eLesson Requirements 124\u003c\/p\u003e \u003cp\u003eHints 125\u003c\/p\u003e \u003cp\u003eStep-by-Step 125\u003c\/p\u003e \u003cp\u003e\u003cb\u003eSECTION II: MORE iOS DEVELOPMENT\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 11: HANDLING USER INPUT 143\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eText Fields 143\u003c\/p\u003e \u003cp\u003eText Views 146\u003c\/p\u003e \u003cp\u003eTry It 147\u003c\/p\u003e \u003cp\u003eLesson Requirements 147\u003c\/p\u003e \u003cp\u003eHints 148\u003c\/p\u003e \u003cp\u003eStep-by-Step 148\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 12: ALERT VIEWS AND ACTION SHEETS 155\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAlert Views 155\u003c\/p\u003e \u003cp\u003eAction Sheets 159\u003c\/p\u003e \u003cp\u003eTry It 161\u003c\/p\u003e \u003cp\u003eLesson Requirements 161\u003c\/p\u003e \u003cp\u003eHints 161\u003c\/p\u003e \u003cp\u003eStep-by-Step 161\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 13: ADDING IMAGES TO YOUR VIEW 167\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe UIImage Class 167\u003c\/p\u003e \u003cp\u003eThe UIImageView Class 170\u003c\/p\u003e \u003cp\u003eTry It 172\u003c\/p\u003e \u003cp\u003eLesson Requirements 172\u003c\/p\u003e \u003cp\u003eHints 172\u003c\/p\u003e \u003cp\u003eStep-by-Step 172\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 14: PICKERS 177\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDate Pickers 181\u003c\/p\u003e \u003cp\u003eCustom Pickers 184\u003c\/p\u003e \u003cp\u003eTry It 185\u003c\/p\u003e \u003cp\u003eLesson Requirements 185\u003c\/p\u003e \u003cp\u003eHints 185\u003c\/p\u003e \u003cp\u003eStep-by-Step 186\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 15: NAVIGATION CONTROLLERS 193\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAdding a Navigation Controller to a Storyboard 193\u003c\/p\u003e \u003cp\u003eThe Navigation Controller Interface 196\u003c\/p\u003e \u003cp\u003eTry It 197\u003c\/p\u003e \u003cp\u003eLesson Requirements 198\u003c\/p\u003e \u003cp\u003eHints 198\u003c\/p\u003e \u003cp\u003eStep-by-Step 198\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 16: TABLE VIEWS 203\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTable View Appearance 203\u003c\/p\u003e \u003cp\u003eCreating a Table View with Interface Builder 205\u003c\/p\u003e \u003cp\u003eStatic Table Views 206\u003c\/p\u003e \u003cp\u003eDynamic Table Views 207\u003c\/p\u003e \u003cp\u003eTry It 211\u003c\/p\u003e \u003cp\u003eLesson Requirements 211\u003c\/p\u003e \u003cp\u003eHints 211\u003c\/p\u003e \u003cp\u003eStep-by-Step 211\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 17: COLLECTION VIEWS 217\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating a Collection View with Interface Builder 218\u003c\/p\u003e \u003cp\u003eCollection View Cells 219\u003c\/p\u003e \u003cp\u003eCollection View Delegate and Data Source 220\u003c\/p\u003e \u003cp\u003eTry It 222\u003c\/p\u003e \u003cp\u003eLesson Requirements 222\u003c\/p\u003e \u003cp\u003eHints 223\u003c\/p\u003e \u003cp\u003eStep-by-Step 223\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 18: TAB BARS AND TOOLBARS 229\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating a Tab Bar Controller 231\u003c\/p\u003e \u003cp\u003eToolbars 235\u003c\/p\u003e \u003cp\u003eTry It 238\u003c\/p\u003e \u003cp\u003eLesson Requirements 239\u003c\/p\u003e \u003cp\u003eHints 239\u003c\/p\u003e \u003cp\u003eStep-by-Step 239\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 19: CREATING VIEWS THAT SCROLL 245\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe UIScrollView Class 245\u003c\/p\u003e \u003cp\u003eScroll Views and Text Fields 248\u003c\/p\u003e \u003cp\u003eTry It 249\u003c\/p\u003e \u003cp\u003eLesson Requirements 249\u003c\/p\u003e \u003cp\u003eHints 250\u003c\/p\u003e \u003cp\u003eStep-by-Step 250\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 20: POPOVERS AND MODAL VIEWS 257\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePopovers 257\u003c\/p\u003e \u003cp\u003eModal Views 260\u003c\/p\u003e \u003cp\u003eTry It 262\u003c\/p\u003e \u003cp\u003eLesson Requirements 262\u003c\/p\u003e \u003cp\u003eHints 263\u003c\/p\u003e \u003cp\u003eStep-by-Step 263\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 21: TOUCHES AND GESTURES 269\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTouch Events 269\u003c\/p\u003e \u003cp\u003eGesture Recognizers 270\u003c\/p\u003e \u003cp\u003eTry It 271\u003c\/p\u003e \u003cp\u003eLesson Requirements 271\u003c\/p\u003e \u003cp\u003eHints 272\u003c\/p\u003e \u003cp\u003eStep-by-Step 272\u003c\/p\u003e \u003cp\u003e\u003cb\u003eSECTION III: STORING DATA AND NETWORK PROGRAMMING\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 22: PROPERTY LISTS 277\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating Property Lists 277\u003c\/p\u003e \u003cp\u003eReading Property Lists 279\u003c\/p\u003e \u003cp\u003eTry It 280\u003c\/p\u003e \u003cp\u003eLesson Requirements 280\u003c\/p\u003e \u003cp\u003eHints 280\u003c\/p\u003e \u003cp\u003eStep-by-Step 280\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 23: APPLICATION SETTINGS 285\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAdding a Settings Bundle 285\u003c\/p\u003e \u003cp\u003eReading Preferences with Code 289\u003c\/p\u003e \u003cp\u003eTry It 290\u003c\/p\u003e \u003cp\u003eLesson Requirements 290\u003c\/p\u003e \u003cp\u003eHints 290\u003c\/p\u003e \u003cp\u003eStep-by-Step 291\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 24: INTRODUCTION TO iCLOUD STORAGE 295\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBasic Concepts 295\u003c\/p\u003e \u003cp\u003ePreparing to Use the iCloud Storage APIs 297\u003c\/p\u003e \u003cp\u003eCreating an iCloud-Enabled App ID 297\u003c\/p\u003e \u003cp\u003eCreating an Appropriate Provisioning Profi le 302\u003c\/p\u003e \u003cp\u003eEnabling Appropriate Entitlements in Your Xcode Project 308\u003c\/p\u003e \u003cp\u003eChecking for Service Availability 309\u003c\/p\u003e \u003cp\u003eUsing iCloud Document Storage 310\u003c\/p\u003e \u003cp\u003eCreating a New iCloud Document 311\u003c\/p\u003e \u003cp\u003eOpening an Existing Document 312\u003c\/p\u003e \u003cp\u003eSaving a Document 312\u003c\/p\u003e \u003cp\u003eSearching for Documents on iCloud 313\u003c\/p\u003e \u003cp\u003eTry It 315\u003c\/p\u003e \u003cp\u003eLesson Requirements 315\u003c\/p\u003e \u003cp\u003eHints 316\u003c\/p\u003e \u003cp\u003eStep-by-Step 316\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 25: INTRODUCTION TO CLOUDKIT 327\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eContainers, Databases, and Records 327\u003c\/p\u003e \u003cp\u003eDevelopment and Production Environments 330\u003c\/p\u003e \u003cp\u003eThe CloudKit Dashboard 331\u003c\/p\u003e \u003cp\u003eCreating a Record Type 331\u003c\/p\u003e \u003cp\u003eDeleting a Record Type 333\u003c\/p\u003e \u003cp\u003eCreating Relationships Between Record Types 333\u003c\/p\u003e \u003cp\u003eAdding Records 334\u003c\/p\u003e \u003cp\u003eModifying and Deleting Records 336\u003c\/p\u003e \u003cp\u003eResetting the Development Schema 337\u003c\/p\u003e \u003cp\u003eDeploying to Production 337\u003c\/p\u003e \u003cp\u003ePreparing to Use CloudKit 338\u003c\/p\u003e \u003cp\u003eCreate an iCloud-Enabled App ID 338\u003c\/p\u003e \u003cp\u003eCreate an Appropriate Provisioning Profi le 344\u003c\/p\u003e \u003cp\u003eEnable Appropriate Entitlements in Your Xcode Project 350\u003c\/p\u003e \u003cp\u003eCommon Operations 350\u003c\/p\u003e \u003cp\u003eChecking for Service Availability 351\u003c\/p\u003e \u003cp\u003eCreating Records Programmatically 351\u003c\/p\u003e \u003cp\u003eRetrieving Records 352\u003c\/p\u003e \u003cp\u003eTry It 352\u003c\/p\u003e \u003cp\u003eLesson Requirements 353\u003c\/p\u003e \u003cp\u003eHints 353\u003c\/p\u003e \u003cp\u003eStep-by-Step 353\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 26: INTRODUCTION TO CORE DATA 381\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBasic Concepts 381\u003c\/p\u003e \u003cp\u003eManaged Object 381\u003c\/p\u003e \u003cp\u003eManaged Object Context 381\u003c\/p\u003e \u003cp\u003ePersistent Store Coordinator 382\u003c\/p\u003e \u003cp\u003eEntity Description 383\u003c\/p\u003e \u003cp\u003eManaged Object Model 383\u003c\/p\u003e \u003cp\u003eAdding Core Data to a Project 384\u003c\/p\u003e \u003cp\u003eInstantiating Core Data Objects 389\u003c\/p\u003e \u003cp\u003eWriting Managed Objects 390\u003c\/p\u003e \u003cp\u003eReading Managed Objects 391\u003c\/p\u003e \u003cp\u003eTry It 391\u003c\/p\u003e \u003cp\u003eLesson Requirements 391\u003c\/p\u003e \u003cp\u003eHints 392\u003c\/p\u003e \u003cp\u003eStep-by-Step 392\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 27: CONSUMING RESTful JSON WEB SERVICES 399\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTypes of Web Services 400\u003c\/p\u003e \u003cp\u003eRESTful Web Services 400\u003c\/p\u003e \u003cp\u003eSOAP Web Services 401\u003c\/p\u003e \u003cp\u003eJSON and NSJSONSerialization 401\u003c\/p\u003e \u003cp\u003eNSURLSession and Application Transport Security 403\u003c\/p\u003e \u003cp\u003eCreating an NSURLSession 404\u003c\/p\u003e \u003cp\u003eCreating a Data Task 405\u003c\/p\u003e \u003cp\u003eApplication Transport Security 406\u003c\/p\u003e \u003cp\u003eTry It 408\u003c\/p\u003e \u003cp\u003eLesson Requirements 408\u003c\/p\u003e \u003cp\u003eHints 409\u003c\/p\u003e \u003cp\u003eStep-by-Step 409\u003c\/p\u003e \u003cp\u003e\u003cb\u003eSECTION IV: BEYOND THE BASICS\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 28: SOCIAL MEDIA INTEGRATION 417\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Share Sheet 418\u003c\/p\u003e \u003cp\u003eTry It 421\u003c\/p\u003e \u003cp\u003eLesson Requirements 421\u003c\/p\u003e \u003cp\u003eHints 421\u003c\/p\u003e \u003cp\u003eStep-by-Step 422\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 29: WHERE Am I? INTRODUCING CORE LOCATION 427\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePermissions 428\u003c\/p\u003e \u003cp\u003eAccuracy 430\u003c\/p\u003e \u003cp\u003eReceiving Location Updates 431\u003c\/p\u003e \u003cp\u003eHandling Errors and Checking Hardware Availability 433\u003c\/p\u003e \u003cp\u003eGeocoding and Reverse Geocoding 434\u003c\/p\u003e \u003cp\u003eObtaining Compass Headings 435\u003c\/p\u003e \u003cp\u003eTry It 436\u003c\/p\u003e \u003cp\u003eLesson Requirements 436\u003c\/p\u003e \u003cp\u003eHints 437\u003c\/p\u003e \u003cp\u003eStep-by-Step 437\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 30: INTRODUCTION TO MAP KIT 443\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAdding Annotations 444\u003c\/p\u003e \u003cp\u003eAccessory Views 447\u003c\/p\u003e \u003cp\u003eTry It 447\u003c\/p\u003e \u003cp\u003eLesson Requirements 448\u003c\/p\u003e \u003cp\u003eHints 448\u003c\/p\u003e \u003cp\u003eStep-by-Step 449\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 31: USING THE CAMERA AND PHOTO LIBRARY 455\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSelecting the Image Source 456\u003c\/p\u003e \u003cp\u003ePresenting the Image Picker 456\u003c\/p\u003e \u003cp\u003eTry It 459\u003c\/p\u003e \u003cp\u003eLesson Requirements 459\u003c\/p\u003e \u003cp\u003eHints 459\u003c\/p\u003e \u003cp\u003eStep-by-Step 459\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 32: INTRODUCTION TO USER INTERFACE TESTING 465\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAdding Support for UI Testing to Your Project 465\u003c\/p\u003e \u003cp\u003eAnatomy of a Test Case 468\u003c\/p\u003e \u003cp\u003eNew Classes for UI Testing 469\u003c\/p\u003e \u003cp\u003eXCUIApplication 469\u003c\/p\u003e \u003cp\u003eXCUIDevice 470\u003c\/p\u003e \u003cp\u003eXCUIElementQuery 471\u003c\/p\u003e \u003cp\u003eXCUIElement 472\u003c\/p\u003e \u003cp\u003eXCUIElementAttributes 475\u003c\/p\u003e \u003cp\u003eXCUIElementTypeQueryProvider 476\u003c\/p\u003e \u003cp\u003eTest Assertions 477\u003c\/p\u003e \u003cp\u003eUI Recording 478\u003c\/p\u003e \u003cp\u003eWaiting for Elements in a UI Test 479\u003c\/p\u003e \u003cp\u003eTry It 480\u003c\/p\u003e \u003cp\u003eLesson Requirements 480\u003c\/p\u003e \u003cp\u003eHints 480\u003c\/p\u003e \u003cp\u003eStep-by-Step 481\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLESSON 33: INTRODUCTION TO TEST DRIVEN DEVELOPMENT 485\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAdding Support for Unit Testing to Your Project 486\u003c\/p\u003e \u003cp\u003eTDD Techniques 488\u003c\/p\u003e \u003cp\u003eTest First 488\u003c\/p\u003e \u003cp\u003eRed-Green-Refactor 488\u003c\/p\u003e \u003cp\u003eDon’t Write Code You Do Not Yet Need 489\u003c\/p\u003e \u003cp\u003eAnatomy of a Test Case 489\u003c\/p\u003e \u003cp\u003eTest Assertions 491\u003c\/p\u003e \u003cp\u003eTry It 493\u003c\/p\u003e \u003cp\u003eLesson Requirements 493\u003c\/p\u003e \u003cp\u003eHints 493\u003c\/p\u003e \u003cp\u003eStep-by-Step 494\u003c\/p\u003e \u003cp\u003e\u003cb\u003eSECTION V: REFERENCE\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAPPENDIX A: TESTING YOUR APP ON A DEVICE 507\u003c\/p\u003e \u003cp\u003eAPPENDIX B: BETA TESTING WITH TESTFLIGHT 527\u003c\/p\u003e \u003cp\u003eAPPENDIX C: APP STORE DISTRIBUTION 553\u003c\/p\u003e \u003cp\u003eINDEX 569\u003c\/p\u003e","brand":"John Wiley \u0026 Sons Inc","offers":[{"title":"Default Title","offer_id":49406979473751,"sku":"9781119073550","price":40.93,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781119073550.jpg?v=1730497770","url":"https:\/\/bookcurl.com\/products\/swift-ios-24hour-trainer-9781119073550","provider":"Book Curl","version":"1.0","type":"link"}