Wiley.com
Print this page Share

Swift iOS 24-Hour Trainer

ISBN: 978-1-119-07355-0
624 pages
January 2016
Swift iOS 24-Hour Trainer (1119073553) cover image

Description

Jump into the app development world with confidence!

iOS Swift 24-Hour Trainer combines book and video lessons in Apple's Swift programming language to prepare you to build iPhone and iPad apps—and 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.

Swift was designed by Apple to incorporate modern scripting features while offering simpler, cleaner syntax than Objective-C to maintain a minimal and easy to read style. This more expressive code offers numerous key features, such as closures unified with function pointers, tuples and multiple value returns, generics, and functional programming patterns.

  • Learn how to obtain a device UDID
  • Test your applications on an actual device, so you can see your work in action
  • Distribute your applications outside of the App store, allowing you to test your work with real users
  • Review common reasons why apps are rejected by Apple to strengthen your case when submitting your apps for distribution

iOS Swift 24-Hour Trainer is an essential guide to Apple's Swift programming language for beginning programmers.

See More

Table of Contents

INTRODUCTION xxiii

SECTION I: HELLO iOS!

LESSON 1: HELLO iOS! 3

iOS Developer Essentials 3

A Suitable Mac 3

A Device for Testing 4

An iOS Developer Account 4

The Offi cial iOS SDK 6

The Typical App Development Process 6

Wireframes and Design 8

Coding 8

Testing 8

Home Screen Icon 9

Application Launch Image 10

Try It 11

Lesson Requirements 11

Hints 11

Step-by-Step 11

LESSON 2: A TOUR OF XCODE AND THE iOS SIMULATOR 19

The Welcome Screen 19

Creating a New Project 20

An Overview of the Xcode IDE 22

The Navigator Area 22

The Editor Area 26

The Utilities Area 28

The Debugger Area 30

The Toolbar 30

Features of the iOS Simulator 31

Installing and Uninstalling Applications 32

Limitations of the iOS Simulator 33

Try It 33

Lesson Requirements 33

Hints 33

Step-by-Step 33

LESSON 3: INTRODUCING SWIFT 35

Introducing Xcode Playgrounds 35

Constants and Variables 37

Data Types 38

Comments 39

Strings 39

Tuples 40

Optionals 41

Control Flow Statements 42

if-else 42

switch-case 44

Loops 45

Control Transfer Statements 49

Try It 50

Lesson Requirements 50

Hints 50

Step-by-Step 50

LESSON 4: FUNCTIONS 53

Declaring Functions 53

Parameters and Return Values 53

Try It 55

Lesson Requirements 55

Hints 55

Step-by-Step 55

LESSON 5: CLOSURES 57

Function Types 57

Closure Types 58

Global Closures 58

Nested Closures 58

Closure Expressions 59

Try It 60

Lesson Requirements 60

Hints 60

Step-by-Step 60

LESSON 6: ERROR HANDLING 63

The ErrorType Protocol 63

Throwing and Catching Errors 64

Suppressing Error Handling 65

The defer Statement 66

Try It 66

Lesson Requirements 66

Hints 67

Step by Step 67

LESSON 7: OBJECT-ORIENTED PROGRAMMING WITH SWIFT 69

Creating Classes with Swift 70

Properties 70

Methods 71

Instantiating Objects 74

Inheritance 74

Computed Properties 76

Enumerations 77

Protocols 77

Try It 81

Lesson Requirements 81

Hints 81

Step-by-Step 81

LESSON 8: SUPPORTING MULTIPLE DEVICE TYPES 85

Device Differences 86

Screen Size 86

Icon Size 87

Device Orientation 89

The Universal XCode Template 90

Try It 91

Lesson Requirements 91

Hints 91

Step-by-Step 91

LESSON 9: INTRODUCTION TO UIKIT AND ADAPTIVE LAYOUT 95

Introducing the UIKit Framework 95

The UIButton Class 97

The UILabel Class 98

Basic Constraints 99

Previewing Your Layout 106

Creating Outlets 108

Creating Actions 110

Try It 110

Lesson Requirements 110

Hints 111

Step-by-Step 111

LESSON 10: INTRODUCTION TO STORYBOARDS 117

Try It 124

Lesson Requirements 124

Hints 125

Step-by-Step 125

SECTION II: MORE iOS DEVELOPMENT

LESSON 11: HANDLING USER INPUT 143

Text Fields 143

Text Views 146

Try It 147

Lesson Requirements 147

Hints 148

Step-by-Step 148

LESSON 12: ALERT VIEWS AND ACTION SHEETS 155

Alert Views 155

Action Sheets 159

Try It 161

Lesson Requirements 161

Hints 161

Step-by-Step 161

LESSON 13: ADDING IMAGES TO YOUR VIEW 167

The UIImage Class 167

The UIImageView Class 170

Try It 172

Lesson Requirements 172

Hints 172

Step-by-Step 172

LESSON 14: PICKERS 177

Date Pickers 181

Custom Pickers 184

Try It 185

Lesson Requirements 185

Hints 185

Step-by-Step 186

LESSON 15: NAVIGATION CONTROLLERS 193

Adding a Navigation Controller to a Storyboard 193

The Navigation Controller Interface 196

Try It 197

Lesson Requirements 198

Hints 198

Step-by-Step 198

LESSON 16: TABLE VIEWS 203

Table View Appearance 203

Creating a Table View with Interface Builder 205

Static Table Views 206

Dynamic Table Views 207

Try It 211

Lesson Requirements 211

Hints 211

Step-by-Step 211

LESSON 17: COLLECTION VIEWS 217

Creating a Collection View with Interface Builder 218

Collection View Cells 219

Collection View Delegate and Data Source 220

Try It 222

Lesson Requirements 222

Hints 223

Step-by-Step 223

LESSON 18: TAB BARS AND TOOLBARS 229

Creating a Tab Bar Controller 231

Toolbars 235

Try It 238

Lesson Requirements 239

Hints 239

Step-by-Step 239

LESSON 19: CREATING VIEWS THAT SCROLL 245

The UIScrollView Class 245

Scroll Views and Text Fields 248

Try It 249

Lesson Requirements 249

Hints 250

Step-by-Step 250

LESSON 20: POPOVERS AND MODAL VIEWS 257

Popovers 257

Modal Views 260

Try It 262

Lesson Requirements 262

Hints 263

Step-by-Step 263

LESSON 21: TOUCHES AND GESTURES 269

Touch Events 269

Gesture Recognizers 270

Try It 271

Lesson Requirements 271

Hints 272

Step-by-Step 272

SECTION III: STORING DATA AND NETWORK PROGRAMMING

LESSON 22: PROPERTY LISTS 277

Creating Property Lists 277

Reading Property Lists 279

Try It 280

Lesson Requirements 280

Hints 280

Step-by-Step 280

LESSON 23: APPLICATION SETTINGS 285

Adding a Settings Bundle 285

Reading Preferences with Code 289

Try It 290

Lesson Requirements 290

Hints 290

Step-by-Step 291

LESSON 24: INTRODUCTION TO iCLOUD STORAGE 295

Basic Concepts 295

Preparing to Use the iCloud Storage APIs 297

Creating an iCloud-Enabled App ID 297

Creating an Appropriate Provisioning Profi le 302

Enabling Appropriate Entitlements in Your Xcode Project 308

Checking for Service Availability 309

Using iCloud Document Storage 310

Creating a New iCloud Document 311

Opening an Existing Document 312

Saving a Document 312

Searching for Documents on iCloud 313

Try It 315

Lesson Requirements 315

Hints 316

Step-by-Step 316

LESSON 25: INTRODUCTION TO CLOUDKIT 327

Containers, Databases, and Records 327

Development and Production Environments 330

The CloudKit Dashboard 331

Creating a Record Type 331

Deleting a Record Type 333

Creating Relationships Between Record Types 333

Adding Records 334

Modifying and Deleting Records 336

Resetting the Development Schema 337

Deploying to Production 337

Preparing to Use CloudKit 338

Create an iCloud-Enabled App ID 338

Create an Appropriate Provisioning Profi le 344

Enable Appropriate Entitlements in Your Xcode Project 350

Common Operations 350

Checking for Service Availability 351

Creating Records Programmatically 351

Retrieving Records 352

Try It 352

Lesson Requirements 353

Hints 353

Step-by-Step 353

LESSON 26: INTRODUCTION TO CORE DATA 381

Basic Concepts 381

Managed Object 381

Managed Object Context 381

Persistent Store Coordinator 382

Entity Description 383

Managed Object Model 383

Adding Core Data to a Project 384

Instantiating Core Data Objects 389

Writing Managed Objects 390

Reading Managed Objects 391

Try It 391

Lesson Requirements 391

Hints 392

Step-by-Step 392

LESSON 27: CONSUMING RESTful JSON WEB SERVICES 399

Types of Web Services 400

RESTful Web Services 400

SOAP Web Services 401

JSON and NSJSONSerialization 401

NSURLSession and Application Transport Security 403

Creating an NSURLSession 404

Creating a Data Task 405

Application Transport Security 406

Try It 408

Lesson Requirements 408

Hints 409

Step-by-Step 409

SECTION IV: BEYOND THE BASICS

LESSON 28: SOCIAL MEDIA INTEGRATION 417

The Share Sheet 418

Try It 421

Lesson Requirements 421

Hints 421

Step-by-Step 422

LESSON 29: WHERE Am I? INTRODUCING CORE LOCATION 427

Permissions 428

Accuracy 430

Receiving Location Updates 431

Handling Errors and Checking Hardware Availability 433

Geocoding and Reverse Geocoding 434

Obtaining Compass Headings 435

Try It 436

Lesson Requirements 436

Hints 437

Step-by-Step 437

LESSON 30: INTRODUCTION TO MAP KIT 443

Adding Annotations 444

Accessory Views 447

Try It 447

Lesson Requirements 448

Hints 448

Step-by-Step 449

LESSON 31: USING THE CAMERA AND PHOTO LIBRARY 455

Selecting the Image Source 456

Presenting the Image Picker 456

Try It 459

Lesson Requirements 459

Hints 459

Step-by-Step 459

LESSON 32: INTRODUCTION TO USER INTERFACE TESTING 465

Adding Support for UI Testing to Your Project 465

Anatomy of a Test Case 468

New Classes for UI Testing 469

XCUIApplication 469

XCUIDevice 470

XCUIElementQuery 471

XCUIElement 472

XCUIElementAttributes 475

XCUIElementTypeQueryProvider 476

Test Assertions 477

UI Recording 478

Waiting for Elements in a UI Test 479

Try It 480

Lesson Requirements 480

Hints 480

Step-by-Step 481

LESSON 33: INTRODUCTION TO TEST DRIVEN DEVELOPMENT 485

Adding Support for Unit Testing to Your Project 486

TDD Techniques 488

Test First 488

Red-Green-Refactor 488

Don’t Write Code You Do Not Yet Need 489

Anatomy of a Test Case 489

Test Assertions 491

Try It 493

Lesson Requirements 493

Hints 493

Step-by-Step 494

SECTION V: REFERENCE

APPENDIX A: TESTING YOUR APP ON A DEVICE 507

APPENDIX B: BETA TESTING WITH TESTFLIGHT 527

APPENDIX C: APP STORE DISTRIBUTION 553

INDEX 569

See More

Author Information

Abhishek Mishra has been developing software for over 18 years and has experience with a diverse set of programming languages and platforms. He is the author of "iPhone and iPad App 24-Hour Trainer" and the technical reviewer of "Professional iOS Programming." He holds a Master's degree in Computer Science from the University of London and is a freelance consultant and trainer specializing in mobile application development.

Wrox guides are crafted to make learning programming languages and technologies easier than you think. Written by programmers for programmers, they provide a structured, tutorial format that will guide you through all the techniques involved.

See More

Downloads

Download TitleSizeDownload
Read me
This zip file contains the code from the "Try It" sections of each Lesson. The only exception is for Lesson 2 in which the Try It code is short and easy to enter manually. Please also note that in some cases, certain examples or listings from the lessons are not included because the example is generated code, output, or something you would never enter yourself. We hope you have fun with the sample code we have included and that you find it useful and informative. Enjoy!
487 bytes Click to Download
Lesson 1 76.41 KB Click to Download
Lesson 3 1.10 KB Click to Download
Lesson 4 8.28 KB Click to Download
Lesson 5 8.60 KB Click to Download
Lesson 6 8.95 KB Click to Download
Lesson 7 7.62 KB Click to Download
Lesson 8 19.61 KB Click to Download
Lesson 9 27.30 KB Click to Download
Lesson 10 2.62 MB Click to Download
Lesson 11 28.89 KB Click to Download
Lesson 12 24.01 KB Click to Download
Lesson 13 5.77 MB Click to Download
Lesson 14 324.90 KB Click to Download
Lesson 15 27.79 KB Click to Download
Lesson 16 26.55 KB Click to Download
Lesson 17 360.63 KB Click to Download
Lesson 18 57.11 KB Click to Download
Lesson 19 31.14 KB Click to Download
Lesson 20 1.19 MB Click to Download
Lesson 21 28.99 KB Click to Download
Lesson 22 29.06 KB Click to Download
Lesson 23 31.34 KB Click to Download
Lesson 24 38.97 KB Click to Download
Lesson 25 51.54 KB Click to Download
Lesson 26 40.13 KB Click to Download
Lesson 27 32.21 KB Click to Download
Lesson 28 1.17 MB Click to Download
Lesson 29 28.36 KB Click to Download
Lesson 30 5.13 MB Click to Download
Lesson 31 54.59 KB Click to Download
Lesson 32 35.16 KB Click to Download
Lesson 33 30.08 KB Click to Download
See More
Back to Top