O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

iOS 8 App Development I and II

Video Description

Overview

The professional programmer’s Deitel® video guide to iPhone® and iPad®app development using iOS® 8, Swift™, Xcode® 6, and Cocoa Touch®.

Description

Billions of apps have been downloaded from Apple’s App Store! This LiveLesson gives you everything you’ll need to start developing great iOS 8 apps quickly using Swift Apple’s programming language of the future. The video uses an app-driven approach each new technology is discussed in the context of seven fully tested iOS 8 apps (three apps in Part I and four apps in Part II).

This LiveLesson has two parts:

• iOS 8 App Development Fundamentals with Swift LiveLessons Part I

• iOS 8 App Development Fundamentals with Swift LiveLessons Part II

About the Instructor

Paul J. Deitel, CEO and Chief Technical Officer of Deitel & Associates, Inc., is a graduate of MIT, where he studied Information Technology. He holds the Sun (now Oracle) Certified Java Programmer and Certified Java Developer certifications, and is an Oracle Java Champion. Through Deitel & Associates, Inc., he has delivered Java, C#, Visual Basic, C++, C and Internet programming courses to industry clients, including Cisco, IBM, Sun Micro systems, Dell, Siemens, Lucent Technologies, Fidelity, NASA at the Kennedy Space Center, the National Severe Storm Laboratory, White Sands Missile Range, Rogue Wave Software, Boeing, SunGard Higher Education, Stratus, Cambridge Technology Partners, One Wave, Hyperion Software, Adra Systems, Entergy, CableData Systems, Nortel Networks, Puma, iRobot, Invensys and many more. He and his co-author, Dr. Harvey M. Deitel, are the world’s best-selling programming-language textbook/professional book authors.

Skill Level

Beginner-to-intermediate app developers who are familiar with a C-based object-oriented programming language

What You’ll Learn

Begin by setting up your Mac for iOS app development with the Swift programming language. Next, you’ll get an overview of the Xcode IDE as you test-drive the Tip Calculator app (which you’ll build in Lesson 3). In Lesson 2, without writing any code, you'll build a universal app using Xcode's Interface Builder and drag-and-drop UI design; then you’ll make the app accessible for people with visual impairments and localize it to display text in English or Spanish. In Lesson 3 you'll build the interactive Tip Calculator app, using Apple's new Swift programming language to write the code that responds to user interactions and programmatically updates the user interface (UI). Lesson 4 explores the Twitter Searches app, which saves data locally on your device and in Apple's iCloud and displays search results using a web view. In Lesson 5 you'll build the Flag Quiz game app, using navigation controllers to control the flow through the app and outlet collections to manipulate programmatically multiple controls of the same type. In Lesson 6’s Cannon Game app, you'll create a simple game using the SpriteKit framework, the Xcode Game template, and various built in SpriteKit physics capabilities. Lesson 7’s Doodlz app demonstrates how to create custom views, draw Bezier paths, and process multiple touches as the user drags fingers across the screen to draw and respond to accelerometer events. Finally, in Lesson 8’s Address Book app, you’ll use iOS’s Core Data framework and Xcode’s corresponding support for designing a data model to create a database-driven app.

Who should take this course?

• Objective-C programmers who are developing new or modifying existing iOS and/or OS X apps, and who want to quickly begin using Swift in their apps.

• Java, C++ and C# programmers who are new to iOS and OS X development, and who want to start developing iOS and/or OS X apps in Swift.

Course requirements (Familiarity with any C-based, object-oriented programming language, such as Objective-C, Java, C++ or C#. Objective-C experience is not specifically required.

Table of Contents

  • Part I Introduction
  • Before You Begin
  • Lesson 1: Introduction to iOS 8 App Development and Swift
  • Lesson 2: Welcome App—Dive-Into Xcode: Introducing Visual User Interface Design with Cocoa Touch, Interface Builder, Storyboarding and Auto Layout, Universal Apps, Accessibility, Internationalization
  • Lesson 3: Tip Calculator App—Introducing Swift, Text Fields, Sliders, Outlets, Actions, View Controllers, Event Handling, NSDecimalNumber, NSNumberFormatter and Automatic Reference Counting
  • Lesson 4: Twitter Searches App—Master-Detail Applications, Split View Controllers, Navigation Controllers, Storyboard Segues, Social Framework Sharing, User Defaults, iCloud Key Value Storage, Collections, Web Views, Alert Dialogs
  • Part II Introduction
  • Lesson 5: Flag Quiz App—UISegmentedControls, UISwitches, Outlet Collections, View Animations, UINavigationController, Segues, NSBundle, Scheduling Tasks with Grand Central Dispatch
  • Lesson 6: Cannon Game App—Xcode Game Template, SpriteKit, Animation, Graphics, Sound, Physics, Collision Detection, Scene Transitions, Listening for Touches
  • Lesson 7: Doodlz App—Multi-Touch Event Handling, Graphics, UIBezierPaths, Drawing with a Custom UIView Subclass, UIToolbar, UIBarButtonItem, Accelerometer Sensor and Motion Event Handling
  • Lesson 8: Address Book App—Core Data Framework, Master-Detail Template with Core Data Support, Xcode Data Model Editor, UITableView with Static Cells, Programmatically Scrolling UITableViews

Table of Contents

  1. Part 1 Introduction
    1. Introduction to iOS 8 App-Development Fundamentals with Swift, Part I 00:21:07
  2. BeforeYouBegin: Setting Up Your Development Environment
    1. Lesson Introduction 00:02:16
    2. Before You Begin: Configuring Your System for iOS Development 00:18:03
  3. Lesson 1: Introduction to iOS 8 App Development and Swift
    1. Lesson Introduction 00:01:53
    2. Test-Driving the Completed Application Using the iPhone Simulator 00:14:32
    3. Test-Driving the Completed Application on an iOS Device 00:08:56
  4. Lesson 2: Welcome App Dive-Into® Xcode
    1. Lesson Introduction 00:05:46
    2. Test-Driving the Completed Welcome App 00:03:38
    3. Technologies Overview 00:10:03
    4. Creating and Configuring a Project 00:09:03
    5. Xcode Workspace Window 00:07:42
    6. Keyboard Shortcuts 00:01:23
    7. Storyboarding the UI—Configuring Portrait and Landscape Orientations 00:02:53
    8. Storyboarding the UI—Providing an App Icon 00:06:57
    9. Storyboarding the UI—Creating an Image Set for the App’s Image 00:02:46
    10. Storyboarding the UI—Overview of the Storyboard 00:04:25
    11. Storyboarding the UI—Adding an Image View to the UI and Using Inspectors to Configure the Image View 00:07:13
    12. Storyboarding the UI—Adding and Configuring the Label 00:08:23
    13. Storyboarding the UI—Using Auto Layout to Support Different Screen Sizes and Orientations; Running the completed app 00:19:47
    14. Making Your App Accessible 00:13:16
    15. Internationalizating Your App 00:02:11
    16. Locking Your UI 00:03:28
    17. Exporting Your Ui’s String Resources 00:04:51
    18. Translating the String Resources 00:07:02
    19. Importing the Translated String Resources 00:04:08
    20. Testing the App in Spanish in the Simulator or on a Device 00:06:22
  5. Lesson 3: Tip Calculator App
    1. Lesson Introduction 00:05:02
    2. Technologies Overview—Swift Programming 00:03:21
    3. Technologies Overview—Swift Apps and the Cocoa Touch Frameworks 00:02:13
    4. Technologies Overview—Importing Frameworks; UI Components; View Controllers 00:03:01
    5. Technologies Overview—Linking UI Components to Your Swift Code 00:02:19
    6. Technologies Overview—Performing Tasks After a View Loads 00:03:01
    7. Technologies Overview—Financial Calculations with NSDecimalNumber; Swift’s Numeric Types 00:02:40
    8. Technologies Overview—Locale-Specific Numeric Formatting 00:01:02
    9. Technologies Overview—Briding Between Swift and Objective-C 00:03:40
    10. Technologies Overview—Operator Overloading 00:01:30
    11. Technologies Overview—Variable Initialization and Swift Optional Types 00:03:39
    12. Technologies Overview—Value Types vs. Reference Types 00:06:54
    13. Creating the TipCalculator Project 00:03:08
    14. Configuring the Size Classes for Designing a Portrait Orientation iPhone App 00:03:40
    15. Adding the UI Components—Adding the “Bill Amount” Label 00:01:59
    16. Adding the UI Components—Adding the Label That Displays the Formatted User Input 00:04:43
    17. Adding the UI Components—Adding the “Custom Tip Percentage” Label and a Label to Display the Current Custom Tip Percentage 00:02:07
    18. Adding the UI Components—Creating the Custom Tip Percentage Slider 00:01:43
    19. Adding the UI Components—Adding the “15%” and “18%” Labels 00:02:23
    20. Adding the UI Components—Creating the Labels that Display the Tips and Totals 00:06:21
    21. Adding the UI Components—Creating the “Tip” and “Total” Labels to the Left of the Yellow Labels 00:02:01
    22. Adding the UI Components—Creating the Text Field for Receiving User Input 00:04:21
    23. Adding the Auto Layout Constraints—Adding the Missing Auto Layout Contraints 00:03:29
    24. Adding the Auto Layout Constraints—Setting the Yellow Labels to Have Equal Widths 00:04:30
    25. Adding the Auto Layout Constraints—Debugging the Missing “18%” Label 00:05:39
    26. Creating Outlets with Interface Builder 00:09:48
    27. Creating Actions with Interface Builder 00:07:06
    28. Class ViewController—import Declarations 00:04:24
    29. Class ViewController—Class Definition 00:03:34
    30. Class ViewController—@IBOutlet Properties, Automatic Reference Counting and Property Attributes 00:08:55
    31. Class ViewController—Other Properties 00:07:00
    32. Class ViewController—Overridden Method viewDidLoad 00:06:54
    33. Class ViewController—Action Method calculateTip 00:25:16
    34. Class ViewController—Global String Formatting and Overloaded Operator Functions 00:08:06
  6. Lesson 4: Twitter Searches App
    1. Lesson Introduction 00:06:27
    2. Test-Driving the Completed Twitter Searches App 00:18:16
    3. Technologies Overview—Master-Detail Application Template 00:02:11
    4. Technologies Overview—Web View and Displaying Web Content in An App 00:01:33
    5. Technologies Overview—Swift: Array and Dictionary Collections 00:07:32
    6. Technologies Overview—NSUserDefaults for Local Key-Value Storage of App Settings 00:01:57
    7. Technologies Overview—iCloud Key-Value Pair Storage with NSUbiquitousKeyValueStore 00:03:08
    8. Technologies Overview—Social Framework 00:01:52
    9. Technologies Overview—Swift: Conforming to Protocols 00:02:51
    10. Technologies Overview—Swift: Exposing Methods to Cocoa Touch Libraries 00:01:24
    11. Technologies Overview—UIAlertController for Alert Dialogs 00:01:14
    12. Technologies Overview—UILongPressGestureRecognizer 00:01:41
    13. Technologies Overview—Model-View-Controller (MVC) Design Pattern 00:02:55
    14. Technologies Overview—Other iOS Design Patterns Used in this App 00:03:01
    15. Technologies Overview—Swift: External Parameter Names 00:06:25
    16. Technologies Overview—Swift: Closures 00:02:27
    17. Building the UI—Creating the Project 00:02:01
    18. Building the UI—Examining the Default Master Detail Application 00:10:08
    19. Building the UI—Configuring the Master and Detail Views 00:04:47
    20. Building the UI—Creating Class Model 00:04:21
    21. Model.swift—ModelDelegate Protocol 00:03:28
    22. Model.swift—Model Properties 00:05:20
    23. Model.swift—Model Initializer and synchronize Method 00:16:51
    24. Model.swift—Model Methods tagAtIndex, queryForTag and queryForTagAtIndex, and Property count 00:03:34
    25. Model.swift—Model Method deleteSearchAtIndex 00:05:52
    26. Model.swift—Model Method moveTagAtIndex 00:02:17
    27. Model.swift—Model Method updateUserDefaults 00:06:11
    28. Model.swift—Model Method updateSearches 00:06:05
    29. Model.swift—Model Method performUpdates 00:23:48
    30. Model.swift—Model Method saveQuery 00:05:27
    31. MasterViewController: Properties and modelDataChanged Method 00:10:53
    32. MasterViewController: awakeFromNib Method 00:04:42
    33. MasterViewController: Overridden UIViewController Method viewDidLoad and Method AddButtonPressed 00:12:52
    34. MasterViewController: Methods tableViewCellLongPressed and displayLongPressOptions 00:13:04
    35. MasterViewController: Method displayAddEditSearchAlert 00:13:22
    36. MasterViewController: Method shareSearch 00:06:49
    37. MasterViewController: Overridden UIViewController Method prepareForSegue 00:11:07
    38. MasterViewController: Method urlEncodeString 00:03:13
    39. MasterViewController: UITableViewDataSource Callback Methods 00:19:09
    40. DetailViewController Class 00:10:27
  7. Part 2 Introduction
    1. Introduction to iOS 8 App-Development Fundamentals with Swift, Part 2 00:16:04
  8. Lesson 5: Flag Quiz App
    1. Lesson Introduction 00:05:27
    2. Test-Driving the Completed Flag Quiz App 00:04:28
    3. Technologies Overview—Designing a Storyboard 00:02:09
    4. Technologies Overview—UINavigationController 00:01:05
    5. Technologies Overview—Storyboard Segues 00:01:41
    6. Technologies Overview—UISegmentedControls 00:01:41
    7. Technologies Overview—UISwitches 00:01:18
    8. Technologies Overview—Outlet Collections 00:02:24
    9. Technologies Overview—Using the App‚Äôs Main NSBundle to Get a List of Image Filenames 00:03:25
    10. Technologies Overview—Using Grand Central Dispatch to Perform a Task in the Future 00:03:18
    11. Technologies Overview—Applying an Animation to a UIView 00:02:29
    12. Technologies Overview—Darwin Module 00:01:02
    13. Technologies Overview—Random-Number Generation 00:02:50
    14. Technologies Overview—Swift Programming Language Features Used in This App 00:08:52
    15. Creating the Project 00:02:42
    16. Designing the Storyboard—Embedding the UIViewController in a UINavigationController 00:03:36
    17. Designing the Storyboard—Configuring the View Controller for the Quiz Scene 00:02:28
    18. Designing the Storyboard—Adding the View Controller for the Settings Scene and Creating a Segue from the Quiz Scene to the Settings Scene 00:04:18
    19. Designing the Storyboard—Running the App in the Simulator to Test the Segue 00:00:52
    20. Configuring the View Controller Classes 00:05:13
    21. Creating the UI for the QuizViewController 00:09:22
    22. Auto Layout Settings for the QuizViewController 00:09:13
    23. QuizViewController Outlets and Actions 00:06:49
    24. Creating the UI for the SettingsViewController 00:08:18
    25. SettingsViewController Outlets and Actions 00:04:07
    26. Creating Class Model 00:00:54
    27. Adding the Flag Images to the App 00:01:46
    28. Model Class—ModelDelegate Protocol 00:02:07
    29. Model Class—Properties 00:03:19
    30. Model Class—Initializer and regionsChanged Method 00:09:00
    31. Model Class—Computed Properties 00:03:28
    32. Model Class—Methods toggleRegion, setNumberOfGuesses and notifyDelegate 00:05:05
    33. Model Class—Method newQuizCountries 00:02:35
    34. QuizViewController Class—Properties 00:05:03
    35. QuizViewController Class—Overridden UIViewController Method viewDidLoad, and Methods settingsChanged and resetQuiz 00:04:43
    36. QuizViewController Class—Methods nextQuestion and countryFromFilename 00:11:08
    37. QuizViewController Class—Method submitGuess 00:09:23
    38. QuizViewController Class—Method shakeFlag 00:05:03
    39. QuizViewController Class—Method displayQuizResults 00:03:04
    40. QuizViewController Class—Overridden UIViewController Method prepareForSegue 00:01:47
    41. QuizViewController Class—Array Extension shuffle 00:02:35
    42. SettingsViewController Class—Properties 00:04:22
    43. SettingsViewController Class—Overridden UIViewController Method viewDidLoad 00:02:37
    44. SettingsViewController Class—Event Handles and Method displayErrorDialog 00:04:36
    45. SettingsViewController Class—Overridden UIViewController Method viewWillDisappear 00:01:25
  9. Lesson 6: Cannon Game App
    1. Lesson Introduction 00:05:58
    2. Test-Driving the Cannon Game App 00:04:54
    3. Technologies Overview—Xcode Game Template and SpriteKit 00:01:59
    4. Technologies Overview—Adding Sound with the AVFoundation Framework and AVAudioPlayer 00:00:49
    5. Technologies Overview—SpriteKit Framework Classes 00:04:40
    6. Technologies Overview—SpriteKit Game Loop and Animation Frames 00:06:28
    7. Technologies Overview—Physics 00:02:53
    8. Technologies Overview—Collision Detection and the SKPhysicsContactDelegate Protocol 00:04:32
    9. Technologies Overview—CGGeometry Structures and Functions 00:04:04
    10. Technologies Overview—Overriding UIResponder Method touchesBegan 00:01:34
    11. Technologies Overview—Swift Features 00:03:23
    12. Technologies Overview—NSLocalizedString 00:01:45
    13. Creating the Project and Classes 00:10:29
    14. Overview of the app created by the Game template 00:05:57
    15. GameViewController Class—Overridden UIViewController Method viewDidLoad 00:13:18
    16. GameViewController Class—Why are the AVAudioPlayer Variables Global 00:03:10
    17. GameViewController Class—Autogenerated Methods that we deleted 00:02:18
    18. Blocker Class—BlockerSize enum and Class Blocker’s Properties 00:06:44
    19. Blocker Class—Initializers 00:15:45
    20. Blocker Class—Methods startMoving, playHitSound and blockerTimePenalty 00:04:13
    21. Target Class—TargetSize and TargetColor enums 00:02:24
    22. Target Class—Properties 00:01:02
    23. Target Class—Initializers 00:06:31
    24. Target Class—Methods startMoving, playHitSound and targetTimeBonus 00:02:41
    25. Cannon Class—Properties 00:03:18
    26. Cannon Class—Initializers 00:04:53
    27. Cannon Class—Method rotateToPointAndFire 00:05:34
    28. Cannon Class—Method s fireCannonball and createCannonball 00:05:55
    29. GameScene Class—CollisionCategory struct 00:03:56
    30. GameScene Class—Properties 00:03:00
    31. GameScene Class—Method didMoveToView 00:09:41
    32. GameScene Class—Method createLabels 00:05:04
    33. GameScene Class—SKPhysicsContactDelegate Method didBeginContact and Supporting Methods 00:05:47
    34. GameScene Class—Overridden UIResponder Method touchesBegan 00:02:23
    35. GameScene Class—Overridden SKScene Method update and Method gameOver 00:05:33
    36. GameOverScene Class 00:05:31
    37. Programmatic Internationalization 00:10:22
  10. Lesson 7: Doodlz App
    1. Lesson Introduction 00:03:29
    2. Test-Driving the Doodlz App 00:06:48
    3. Technologies Overview—UIView, drawRect, UIBezierPaths and the UIKit Graphics System 00:03:17
    4. Technologies Overview—Processing Multiple Touch Events 00:02:50
    5. Technologies Overview—Listening for Motion Events 00:01:48
    6. Technologies Overview—Rendering the Drawing as a UIImage 00:02:35
    7. Technologies Overview—Storyboard Loading and Initialization 00:01:13
    8. Creating the Project 00:01:21
    9. Creating the Initial View Controller’s User Interface 00:12:40
    10. Creating the Color View Controller’s User Interface 00:17:24
    11. Creating the Stroke View Controller’s User Interface 00:12:05
    12. Adding the Squiggle Class 00:01:40
    13. ViewController Class—Property; Delegate Methods 00:04:11
    14. ViewController Class—Overridden UIViewController Method prepareForSegue 00:03:15
    15. ViewController Class—Methods undoButtonPressed, clearButtonPressed and displayEraseDialog 00:03:14
    16. ViewController Class—Overridden UIResponder Method motionEnded 00:02:01
    17. ViewController Class—Method actionButtonPressed 00:02:20
    18. Squiggle Class 00:06:37
    19. DoodleView Class—Properties 00:02:46
    20. DoodleView Class—Initializer 00:02:38
    21. DoodleView Class—Methods undo and clear 00:02:29
    22. DoodleView Class—Overridden UIView Method drawRect 00:02:09
    23. DoodleView Class—Overridden UIResponder Methods for Touch Handling 00:06:59
    24. DoodleView Class—Computed Property image 00:04:43
    25. ColorViewController Class 00:08:12
    26. StrokeViewController Class 00:06:27
  11. Lesson 8: Address Book App
    1. Lesson Introduction 00:04:18
    2. Test-Driving the Address Book App 00:05:32
    3. Technologies Overview—Enabling Core Data Support 00:02:15
    4. Technologies Overview—Data Model and Xcode’s Data Model Editor 00:02:21
    5. Technologies Overview—Core Data Framework Classes and Protocols 00:04:14
    6. Technologies Overview—UITableView Cell Styles 00:01:39
    7. Technologies Overview—UITableView Static Cells 00:00:49
    8. Technologies Overview—Listening for Keyboard Show and Hide Notifications 00:01:18
    9. Technologies Overview—Programmatically Scrolling a UITableView 00:01:11
    10. Technologies Overview—UITextFieldDelegate Methods 00:00:57
    11. Creating the Project and Testing the Default App 00:03:10
    12. Editing the Data Model 00:04:32
    13. Generating the Contact Subclass of NSManagedObject 00:07:28
    14. Customizing the MasterViewController 00:05:14
    15. Customizing the DetailViewController 00:09:47
    16. Adding the AddEditTableViewController 00:18:58
    17. Adding the InstructionsViewController 00:06:46
    18. MasterViewController Class—Protocol Conformance, Properties and the awakeFromNib method 00:06:13
    19. MasterViewController Class—Overridden UIViewController Method viewWillAppear and Method displayFirstContactOrInstructions 00:04:49
    20. MasterViewController Class—Overridden UIViewController Method viewDidLoad 00:01:14
    21. MasterViewController Class—Overridden UIViewController Method prepareForSegue 00:09:56
    22. MasterViewController Class—AddEditTableViewControllerDelegate Method didSaveContact 00:06:36
    23. MasterViewController Class—DetailViewControllerDelegate Method didEditContact 00:00:42
    24. MasterViewController Class—Method displayError 00:01:08
    25. MasterViewController Class—UITableViewDelegate Methods 00:08:57
    26. MasterViewController Class—Autogenerated NSFetchedResultsController and NSFetchedResultsControllerDelegate Methods 00:06:00
    27. DetailViewController Class—DetailViewControllerDelegate Protocol 00:00:42
    28. DetailViewController Class—Properties 00:01:57
    29. DetailViewController Class—Overridden UIViewController Method viewDidLoad and Method displayContact 00:02:49
    30. DetailViewController Class—AddEditTableViewControllerDelegate Method didSaveContact 00:01:31
    31. DetailViewController Class—Overridden UIViewController Method prepareForSegue 00:03:02
    32. AddEditTableViewController Class—AddEditTableViewControllerDelegate Protocol 00:01:13
    33. AddEditTableViewController Class—Properties 00:03:47
    34. AddEditTableViewController Class—Overridden UIViewController Methods viewWillAppear and viewWillDisappear 00:04:01
    35. AddEditTableViewController Class—Overridden UIViewController Method viewDidLoad 00:03:15
    36. AddEditTableViewController Class—Methods keyboardWillShow and keyboardWillHide 00:07:54
    37. AddEditTableViewController Class—UITextFieldDelegate Method textFieldShouldReturn 00:01:34
    38. AddEditTableViewController Class—@IBAction saveButtonPressed 00:03:29
    39. AppDelegate Class—UIApplicationDelegate Protocol Method application:didFinishLaunchingWithOptions: 00:02:48
    40. AppDelegate Class—UISplitViewControllerDelegate Protocol Method 00:01:24
    41. AppDelegate Class—Properties and Methods That Support the App’s Core Data Capabilities 00:02:53