About This Course
The journey to becoming an iOS developer begins in your imagination—that moment when you first dream up a great idea for an app. This Nanodegree program will prepare you to publish your first iOS app, whether you’re already programming or just beginning. As you master the Swift programming language and create a portfolio of apps to showcase your skills, you’ll benefit from detailed code reviews, valuable career advice, and coaching from professional iOS developers.
Included with BootcampAI Plus
Sign up to start your 7-day full access free trial.
3 months program
Certificate
To share in LinkedIn
You can share your Certificates in the Certifications section of your LinkedIn profile, on your printed resume, or in other documents.
Learning Objectives
This Nanodegree program will prepare you to publish your first iOS app, whether you’re already a developer or relatively new to programming. In this program, you’ll not only learn how to build iOS apps, you’ll also learn best practices in mobile development, and gain mastery of Swift, an opensourced object-oriented programming language. Through 6 hands-on, reviewed projects, you’ll gain the skills you need to become an iOS Developer.
Requirements
- You are self-driven and motivated to learn. Participation in this program requires consistently meeting deadlines and devoting at least 10 hours per week to your work.
- Collaboration with peers and interactive feedback are critical to the success of the program.
- You must be a committed and contributing participant of the community.
- Access to a Mac computer running macOS 10.14.3 or late
Target Audience
- This program is designed to prepare you for a job as a professional, juniorlevel iOS Developer within a wide range of organizations and environments:
- from large corporations where you’d likely be part of a development team, to entrepreneurial start-ups and contract projects where you could be working independently to deliver an application.
Curriculum
1471 Lessons
Lesson 01_Get Ready to Learn iOS
You will complete a series of coding exercises to test your understanding of Swift. There will be exercises for
variables, strings, if (else-if and else) statements, and functions.
The Apps You’ll Build00:00:49Preview
Connecting with Your Community
Access the Career Portal
How Do I Find Time for My Nanodegree?
Lesson 01_Variables and Types
01. Welcome00:00:13Preview
02. Interlude Download Xcode
03. Course Sandbox0:56
04. Exercise Your First Lines of Swift0:39
04. Practice00:00:00Preview
05. Exercise Hello World0:23
05. Practice00:00:00
06. Exercise Review
07. Intro to Variables2:09
07. Practice00:00:00
08. Data Types
09. Creating Variables1:28
09. Practice00:00:00
10. Type Inference
11. Changing a Variable’s Value
12. Constants1:51
12. Practice00:00:00
14. Tips With String Literals
15. Tips With String Literals (Continued)
16. Lesson 1 Conclusion0:17
Part 02-Module 01-Lesson 02_Operators and Expressions
01. Introduction to Operators and Expressions0:18Preview
02. Operators in Playgrounds
03. Terms to Remember
04. Working With Operator Expressions2:51
04. Working With Operator Expressions 21:37
04. Practice00:00:00
05. Back to Game Points
05. QUESTION
06. Looking Ahead at New Operators0:14
06. Question
07. Boolean Expressions0:18
08. Quiz
09. The AND Operator
10. The OR Operator
10. Quiz
11. The NOT Operator0:14
11. Quiz
Part 02-Module 01-Lesson 03_Control Flow
01. Intro to If Statements0:22Preview
02. If Statements1:43
04. If Else and Else If Statements
05. If, Else If Practice
06. More on Conditionals00:00:00
07. Switch Statements00:00:00
08. Loops00:00:00
09. For Each Loops00:00:00
10. While Loops00:00:00
11. The Break Keyword00:00:00
12. Repeat While00:00:00
12. Quiz
Part 02-Module 01-Lesson 04_Functions
01. Introduction to Functions00:00:00Preview
02. Function Syntax00:00:00
03. Functions with Parameters00:00:00
03. Functions with Parameters 200:00:00
03. Functions with Parameters 300:00:00
04. Function Scope
05. Returning Values00:00:00
06. Default Parameters and Using Functions00:00:00
07. Chaining Functions
08. Internal and External Parameter Names00:00:00
Part 02-Module 01-Lesson 05_Structures and Enums
01. Writing Structures and Properties00:00:00
02. Creating an Instance of a Struct00:00:00
03. Accessing properties00:00:00
03. Accessing properties 200:00:00
04. Advanced Structs00:00:00
05. Quiz
06. Playing with Structs
07. Enums00:00:00
08. Enums, Switch Statements, and Initialization00:00:00
08. Enums, Switch Statements, and Initialization 200:00:00
07. Practice00:00:00
05. Structs Practice00:00:00
Part 02-Module 01-Lesson 06_Optionals
01. Introduction to Optionals0:22
02. About Nil Values0:22
03. The Optional Type00:00:00
04. Unwrapping Optionals
05. Optional Chaining00:00:00
06. Unsafe Unwrapping and Implicit Optionals00:00:00
06. Unsafe Unwrapping and Implicit Optionals 200:00:00
06. Quiz
Part 02-Module 01-Lesson 07_Strings
01. Intro to Strings00:00:00
01. Quiz
02. String Initialization
03. Properties and Methods
04. String Methods Practice00:00:00
04. String Methods Practice 200:00:00
04. String Methods Practice 300:00:00
05. String Manipulation
06. String Manipulation Practice00:00:00
06. Quiz
06. Practice00:00:00
Part 02-Module 01-Lesson 08_Collections
01. Introduction to Arrays00:00:00
02. Array Operations
03. Looping Through Arrays
04. Practice With Arrays00:00:00
04.2 Practice00:00:00
05. Introduction to Dictionaries00:00:00
06. Dictionary Operations00:00:00
06. Practice00:00:00
07. Sets00:00:00
07. Sets 200:00:00
07. Practice00:00:00
04. Quiz
Part 02-Module 01-Lesson 09_Object-Oriented Programming
01. Classes00:00:00
02. Value and Reference Types
04. Polymorphism
05. Protocols00:00:00
06. Extensions
07. Review and Conclusion00:00:00
02. Quiz
Part 03-Module 01-Lesson 01_Introduction and Xcode
Build your first app with Swift and Xcode, Apple’s programming environment for app development. You’ll
learn how to use AutoLayout, UIButtons, and UILabels to create an interface, and how to react to touch
events in an app using ViewController and multiple views. You’ll also learn how to set up audio recording
and playback in a voice recording app.
01. Introduction00:00:00
02. Course Map00:00:00
03. Pitch Perfect Overview00:00:00
04. Creating a Hello World Swift iOS App00:00:00
05. Tour of Xcode00:00:00
06. Document Outline in Xcode00:00:00
07. Xcode Shortcuts
08. Introduction to the MVC Pattern00:00:00
09. MVC Pattern in Mail.app
10. What’s Next00:00:00
Part 03-Module 01-Lesson 02_AutoLayout and Buttons
01. Introduction00:00:00
02. Intro to the Storyboard00:00:00
03. AutoLayout Basics00:00:00
04. AutoLayout Minimum Info Needed00:00:00
05. Quiz on AutoLayout Constraints00:00:00
05. Solution00:00:00
06. Constraints to the Record Button00:00:00
07. Alternative Way to Create Constraints00:00:00
08. Adding Code for the Button00:00:00
09. From Code to UI Element00:00:00
10. Note on IBOutlets, IBActions, and Constraints
11. Difference Between IBAction and IBOutlet
11. Quiz
12. Connecting the Stop Recording Button00:00:00
13. Adding Constraints for the New Buttons00:00:00
14. More Info on AutoLayout
15. Where Do Buttons Come From00:00:00
Part 03-Module 01-Lesson 03_ViewController and Multiple Views
01. Introduction00:00:00
02. Application Lifecycle00:00:00
03. Opening Documentation in Xcode00:00:00
04. UIViewController viewDidLoad00:00:00
04. UIViewController viewDidLoad 200:00:00
04. Quiz
05. ViewDidLoad and Friends00:00:00
06. Setting State Before a View Appears00:00:00
07. Enable and Disable the Recording Buttons00:00:00
08. Adding Images to the Recording Buttons00:00:00
09. Resizing the Stop Button
10. Disabling the Stop Recording Button
11. How to Enable or Disable a UI Button00:00:00
11. How to Enable or Disable a UI Button 200:00:00
12. Enabling and Disabling the Buttons00:00:00
13. Multiple Views00:00:00
14. Using a UINavigation Controller00:00:00
15. Adding a Second View Controller00:00:00
16. UINavigationController
17. Recap and Next Steps00:00:00
18. Recap What You Have Learned00:00:00
Part 03-Module 01-Lesson 04_Delegation and Recording
01. Lesson Overview00:00:00
02. AVAudioRecorder and Deciphering New Code
03. AVAudioRecorder Code Explanation00:00:00
04. Renaming the Recording View Controller00:00:00
05. Adding the AVAudioRecorder00:00:00
06. Recording Issues00:00:00
07. Fixing the Segue00:00:00
08. The Meaning of the Word Delegate
08. Quiz
09. Adding Delegation to RecordSoundsVC00:00:00
10. Summarize What You Learned (Delegation)00:00:00
10. Summarize What You Learned (Delegation) 200:00:00
11. Sending the Recorded Audio File00:00:00
12. Creating the PlaySoundsViewController00:00:00
13. Setup the PlaySoundsViewController
14. Prepare for Segue and Receiving the Data00:00:00
15. Wrapup and What’s Ahead00:00:00
Part 03-Module 01-Lesson 05_Playback and Audio Effects
01. Lesson Overview0:29
02. StackViews as a Concept1:07
03. Inserting StackViews00:00:00
04. Snail and Rabbit Button Icons00:00:00
05. StackView for Pitch Effects00:00:00
06. StackViews for Echo+Reverb and Stopping Playback
07. Fixing the UI
08. Wiring up Buttons (IBOutlets+IBActions)00:00:00
09. Troubleshooting IBOutlets and IBActions00:00:00
10. Adding the Audio Extension00:00:00
11. Playing Back Audio00:00:00
12. PlaySoundsViewController Extension00:00:00
13. Clean Up
14. Wrap Up00:00:00
15. Reflection
Part 03-Module 02-Lesson 01_Brainstorm Ideas for Your Final App!
01. Welcome to Project 1.5!00:00:00
02. First iOS Apps by Experienced Developers00:00:00
03. Let’s Build an App!00:00:00
04. Benefits of Logging your Progress
05. Course Map and Mindset00:00:00
06. What Makes a Good iOS App
07. Starting at the Drawing Board00:00:00
08. Brainstorm Ideas Personal Motivation00:00:00
09. What Inspires or Frustrates You
10. Brainstorm Ideas Featured Apps00:00:00
11. Ideas from Featured Apps
12. Lacking Ideas Let’s Get Creative!00:00:00
13. Advice for Getting Creative00:00:00
14. Get Feedback on your Ideas!00:00:00
15. How Did Users React
Part 03-Module 03-Lesson 01_Pitch Perfect
01. Pitch Perfect
Project Description – Pitch Perfect
Project Description – Pitch Perfect
Project Rubric – Pitch Perfect
Part 04-Module 01-Lesson 01_What is Version Control
Git course.
01. What is Version Control1:59
01.2 What is Version Control1:20
03. Git and Version Control Terminology1:32
03.2 Git and Version Control Terminology
03.2 Git and Version Control Terminology2:08
03.3 Git and Version Control Terminology00:00:00
03.4 Git and Version Control Terminology00:00:00
04. MacLinux Setup00:00:00
05. Windows Setup00:00:00
06. Onward00:00:00
Part 04-Module 01-Lesson 02_Create A Git Repo
01. Intro00:00:00
02. Create A Repo From Scratch
03. Clone An Existing Repo
05. Outro0:27
Part 04-Module 01-Lesson 03_Review a Repo’s History
01. Intro2:27
02. Displaying A Repository’s Commits00:00:00
02.2 Displaying A Repository’s Commits00:00:00
03. Changing How Git Log Displays Information00:00:00
03.2 Changing How Git Log Displays Information00:00:00
04. Viewing Modified Files
04. Viewing Modified Files
04.2 Viewing Modified Files00:00:00
04.2 Viewing Modified Files
05. Viewing File Changes
06. Viewing A Specific Commit
06. Viewing A Specific Commit
07. Outro00:00:00
Part 04-Module 01-Lesson 04_Add Commits To A Repo
01. Intro00:00:00
04. Commit Messages
04. Commit Messages
04.2 Commit Messages
06. Having Git Ignore Files
06. Having Git Ignore Files
07. Outro00:00:00
Part 04-Module 01-Lesson 05_Tagging, Branching, and Merging
01. Intro1:04
03. Branching3:08
04.0 Branching Effectively
05. Merging00:00:00
06. Merge Conflicts
07. Outro00:00:00
Part 04-Module 01-Lesson 06_Undoing Changes
01. Intro00:00:00
02. Modifying The Last Commit
03. Reverting A Commit
04.0 Resetting Commits
05. Lesson Outro00:00:00
06. Course Outro00:00:00
Part 05-Module 01-Lesson 01_Working With Remotes
01. Intro00:00:00
02.2 Remote Repositories00:00:00
03. Add A Remote Repository00:00:00
04. Push Changes To A Remote00:00:00
05. Pulling Changes From A Remote00:00:00
05.2 Pulling Changes From A Remote00:00:00
06. Pull vs Fetch00:00:00
06.2 Pull vs Fetch00:00:00
07. Lesson Wrap Up00:00:00
Part 05-Module 01-Lesson 02_Working On Another Developer’s Repository
01. Intro0:41
02. Forking A Repository00:00:00
02.2 Forking A Repository3:56
Part 05-Module 01-Lesson 03_Staying In Sync With A Remote Repository
01. Intro0:39
02. Create a Pull Request1:25
04. Manage an active PR
05. Squash Commits00:00:00
05.2 Squash Commits00:00:00
05.3 Squash Commits00:00:00
06. Course Wrap Up00:00:00
Part 06-Module 01-Lesson 01_Develop Your Personal Brand
01. Why Network
02. Why Use Elevator Pitches
03. Personal Branding
04. Meet Chris
05. Elevator Pitch
06. Pitching to a Recruiter
07. Use Your Elevator Pitch
08. Resources in Your Career Portal
Part 06-Module 01-Lesson 02_LinkedIn Review
01. Using LinkedIn
02. Resources in Your Career Portal
Project Description – LinkedIn Profile Review Project
Project Rubric – LinkedIn Profile Review Project
Part 06-Module 02-Lesson 01_GitHub Review
01. Introduction
02. GitHub profile important items
03. Good GitHub repository
04. Interview with Art – Part 1
05. Identify fixes for example “bad” profile
06. Quick Fixes #1
07. Quick Fixes #2
08. Writing READMEs with Walter
09. Interview with Art – Part 2
10. Commit messages best practices
11. Reflect on your commit messages
12. Participating in open source projects
13. Interview with Art – Part 3
14. Participating in open source projects 2
15. Starring interesting repositories
16. Outro
17. Resources in Your Career Portal
Project Description – Optimize Your GitHub Profile
Project Rubric – Optimize Your GitHub Profile
Part 07-Module 01-Lesson 01_Outlets and Actions
You will create a first version of the MemeMe app that enables a user to take a picture, and add text at
the top and bottom to form a meme. The user will be able to share the photo on Facebook and Twitter
and also by SMS or email.
01. Introduction0:52
02. MemeMe App0:49
03. Course Map0:39
04. Click Counter and its Object Diagram2:11
05. Coding Click Counter00:00:00
06. Click Counter Quiz00:00:00
06. Click Counter00:00:00
07. Creating the Count and Label Properties00:00:00
08. Diagramming the target action00:00:00
09. Setting the Target Action00:00:00
10. Experimenting with Target Action
11. Actions as Callback Methods00:00:00
12. Transitioning to Storyboard Label00:00:00
13. Transitioning to Storyboard, Button00:00:00
14. Actions Outlets Quiz
15. Intro Switches for the Color Maker App00:00:00
16. Researching Switches for Color Maker
16. Quiz
17. Diagramming Color Maker00:00:00
18. Connecting the Color Maker00:00:00
18. Quiz
19. Help with Connecting the Color Maker00:00:00
20. Debugging Color Maker Error 100:00:00
20. Quiz
202. Debugging Color Maker Error 100:00:00
21. Debugging Color Maker Error 200:00:00
21. Quiz
22. Debugging Color Maker Error 300:00:00
23. Challenge App Color Maker with Sliders
24. Challenge App Quiz
25. End of Lesson 100:00:00
Part 07-Module 01-Lesson 02_View Presentations and Segues
01. Presenting View Controllers00:00:00
02. Get Your Game Face On!00:00:00
03. Modal Presentation vs Navigation00:00:00
03.2 Modal Presentation00:00:00
04. How does a view get presented modally00:00:00
05. Launch Image Picker and Activity View00:00:00
06. Launch Activity View and Alert View00:00:00
07. Summarize code for 3 Experiments
08. Dice Example, Take Control00:00:00
08.2 Dice Example – Take control00:00:00
09. Presenting the Dice View Controller00:00:00
10. Presenting View Controllers Code Only
11. How Do ViewControllers Communicate00:00:00
12. Demonstrate Code Segue00:00:00
13. Code Segue Review
14. Segue Only00:00:00
15. Steps For Segue Only
16. Passing Data Between ViewControllers00:00:00
17. prepareForSegue00:00:00
18. Review of prepareForSegue
19. Challenge App Roshambo00:00:00
20. Steps to Build Roshambo
22. Lesson 2 End00:00:00
11. Quiz
Part 07-Module 01-Lesson 03_The Delegate Pattern
01. Introducing Delegates00:00:00
02. Reuse with Customizaton00:00:00
03. The Course Github Repository
04. Compare and Contrast Custom Text Fields00:00:00
04. Quiz
05. Introducing Protocols00:00:00
06. Real World Examples of Protocols
07. Text Field Code Review00:00:00
07. Quiz
08. The UITextFieldDelegate Protocol
09. Diagramming the Text Field App00:00:00
10. A Look at the Other Two Delegates00:00:00
10. Quiz
10.2 A Look at the Other Two Delegates00:00:00
11. Creating a Random Color Delegate00:00:00
12. Random Color Delegate Code
13. Preparing for the Challenge Apps00:00:00
14. Challenge Apps
16. Next Up MemeMe v1.000:00:00
Part 07-Module 01-Lesson 04_Build V1.0 of the MemeMe App
01. MemeMe 1.0 Project Intro00:00:00
02. MemeMe 1.0 Demo00:00:00
03. MemeMe 1.0 To-Do List00:00:00
04. Reflecting on the To-Do List00:00:00
05. Picking Images00:00:00
06. Researching the UIImagePicker Delegate
07. Receiving an Image Using a Delegate
08. What About the Camera
09. Textfield Specifications
10. Working with Text Attributes
11. Move View Get Out the Way00:00:00
12. Code for Keyboard Adjustments
13. Implementing keyboardWillHide
14. Recommended Reading on NSNotifications
15. Generating a Meme Object
16. Sharing a Meme using an Activity View
Part 07-Module 02-Lesson 01_MemeMe 1.0 The Meme Editor
01. MemeMe 1.0 The Meme Editor
Project Description – MemeMe 1.0 The Meme Editor
Project Rubric – MemeMe 1.0 The Meme Editor
Part 07-Module 03-Lesson 01_Table Views
01. Recalling Text Field Delegate00:00:00
02. Protocol Methods Review00:00:00
02. Quiz
03. Observing HealthKit Safari and Contacts00:00:00
04. Guessing the Properties of Data Struct00:00:00
04.2 Guessing the Properties of Data Struct00:00:00
05. Key Delegate Data Source Questions00:00:00
05. Quiz
06. Recognizing Method Signatures
06. Quiz
07. Favorite Things00:00:00
07. Quiz
07.2 Favorite Things00:00:00
08. How cellForRowAtIndexPath Wrangles Cells
09. Implementing cellForRowAtIndexPath
09. Quiz
10. Do-Re-Mi App
11. Approaching the Problem from Storyboard
12. Exploring the Bond Villains Project
13. Setting up Bond Villians in Storyboard
14. Connecting the Storyboard in Xcode
15. Choosing Cell Styles
16. Challenge App Roshambo with History
17. Steps to Build Roshambo with History
19. Next Up Navigation
Part 07-Module 03-Lesson 02_Navigation
01. Recalling Navigation00:00:00
02. Navigation in Your Favorite Apps00:00:00
02. Navigation in Your Favorite Apps 200:00:00
03. Make Your Own Adventure The Easy Way00:00:00
04. MYOA Steps and Solution
05. Adding Start Over Button Step 100:00:00
06. Adding Start Over Button Step 200:00:00
07. Start Over Button Steps and Solution
08. Navigation and the Stack Data Structure00:00:00
09. How Can We Verify the Stack Behavior00:00:00
09. How Can We Verify the Stack Behavior 200:00:00
09. Quiz
10. Intro to Rock Paper Scissors00:00:00
11. Replacing RPS Logic with Navigation
12. RPS with Navigation – Solution
13. Master-Detail, Navigation for Tables00:00:00
13. Quiz
14. Bond Villians Using Master Detail00:00:00
15. Steps to Rebuild BondVillains
16. Challenge App Data-Driven MYOA00:00:00
17. Notes on the Challenge App
18. Challenge App Quiz
19. Congrats00:00:00
Part 07-Module 03-Lesson 03_Complete the MemeMe App
01. MemeMe 2.0 Project Intro00:00:00
02. MemeMe 2.0 Demo00:00:00
03. MemeMe 2.0 To-Do List00:00:00
04. Using a Shared Model00:00:00
05. Code for Using a Shared Model
06. Example Code Tabs Collection Views
07. TabViewControllers Villains in Tabs00:00:00
08. Setup the Sent Memes Collection View
09. Setup a Collection View in Storyboard00:00:00
10. Recap Set up the CollectionView in SB
11. Setting up a Collection View Flow Layout00:00:00
12. Code for Collection View Flow Layout
13. Troubleshooting Collection Views
14. Way to go!00:00:00
Part 07-Module 04-Lesson 01_MemeMe 2.0 The Final Product
01. MemeMe 2.0 The Final Product
Project Description – MemeMe 2.0 The Final Product
Project Rubric – MemeMe 2.0 The Final Product
Part 07-Module 05-Lesson 01_Suggested Electives
01. Suggested Electives
Part 08-Module 01-Lesson 01_Introduction to AutoLayout
01. Welcome to AutoLayout!00:00:00
02. Why AutoLayout00:00:00
03. Laying Out Views00:00:00
04. The Need for Adaptive UI’s00:00:00
05. The Screen Sizes, They are a Changin´00:00:00
06. Adapting to Changes to the Available Space
07. What AutoLayout Really Is00:00:00
Part 08-Module 01-Lesson 02_Using AutoLayout
01. Four Ways to Skin the AutoLayout Cat00:00:00
02. Enter UIStackView
Part 08-Module 01-Lesson 03_View Properties used by AutoLayout
01. Intrinsic Content Size00:00:00
02. Can the Intrinsic Content Size Change
03. Compression Resistance00:00:00
04. Content Hugging00:00:00
05. Quiz
Part 08-Module 01-Lesson 04_Beginning StackViews
01. StackViews 10100:00:00
02. Axis00:00:00
03. Spacing00:00:00
04. Distribution00:00:00
05. Alignment00:00:00
06. What on Earth is Going On00:00:00
07. Properties of a StackView Recap00:00:00
08. Commandments and Principles00:00:00
Part 08-Module 01-Lesson 05_Positioning Views Constraints
01. What Does It Mean To Position A View00:00:00
02. Quiz
03. Creating a Row of Views00:00:00
04. Anatomy of a Constraint00:00:00
05. Different Devices00:00:00
06. Expand to Take the Whole Width00:00:00
07. Content Hugging and Compression Resistance00:00:00
08. Compression Resistance and Content Hugging Revisited00:00:00
09. Content Hugging Put to Test
09. Quiz
10. Of Margins and Training Wheels00:00:00
Part 08-Module 01-Lesson 06_Horizontal Layouts
01. Two Text Fields in a Row00:00:00
02. Frames Will Be Different At Runtime00:00:00
03. Distribution00:00:00
04. Fill Equally
05. Composition StackViews within StackViews00:00:00
Part 08-Module 01-Lesson 07_Vertical Layouts
01. Summing It Up!00:00:00
02. Image View as Big as Possible00:00:00
03. Header and Footer00:00:00
03. Header and Footer
04. Header and Footer Solved00:00:00
05. Textfields with the Same Size00:00:00
06. Centered, Square And Fat Image View00:00:00
07. Putting it All Together and Homework00:00:00
Part 08-Module 01-Lesson 08_Beyond AutoLayout
01. Why is AutoLayout Hard
02. Different Devices, Different Rules…
Part 09-Module 01-Lesson 01_Sketch UI Elements for Your Final App!
01. Welcome to Project 2.5!00:00:00
02. On Developing Multiple Ideas00:00:00
03. UI Elements for App Ideas
Part 10-Module 01-Lesson 01_Making a Network Request
Incorporate networking into your apps, and harness the power of APIs to display images and retrieve data.
Use Apple’s Grand Central Dispatch, or GCD, framework to create asynchronous apps, ensuring a smooth user
experience, even while your apps run lengthy operations in the background.
01. Get Out and Network00:00:00
02. Course Map Lesson 00:36
03. Which Apps Do You Use00:00:00
03. Which Apps Do You Use 200:00:00
04. Starting Our Concept List
05. How Apps Use the Network00:00:00
06. Getting Data with HTTP00:00:00
07. Adding to the Concept List
08. High-Level HTTP00:00:00
09. Adding to the Concept List
10. GET Requests00:00:00
11. Adding to the Concept List
12. Understanding New Concepts00:00:00
12. Understanding New Concepts 200:00:00
13. Creating a Request00:00:00
14. Understanding NSURLSession00:00:00
15. Starting a Request00:00:00
16. Background to Main00:00:00
17. App Transport Security00:00:00
18. Request a Different Image00:00:00
19. GCD Black Box00:00:00
20. Taking the Pill
21. The Blue Pill00:00:00
22. Networking with You!00:00:00
23. Lesson 0 Concept List
Part 10-Module 01-Lesson 02_Using Web Services and APIs
01. Course Map Lesson 100:00:00
02. Web Services and APIs00:00:00
03. New Concepts
04. Which Web Service Should I Use00:00:00
04. Which Web Service Should I Use 200:00:00
05. Our First Networking App00:00:00
06. Using a Web Service00:00:00
07. Adding to the Concept List
08. Are You Set-Up with Flickr00:00:00
09. Which Flickr API Method Should I Use00:00:00
09. Which Flickr API Method Should I Use 200:00:00
10. Searching a Gallery’s Photos00:00:00
11. Build the URL00:00:00
12. Escaping Parameters00:00:00
12. Escaping Parameters 200:00:00
13. Making a Request00:00:00
14. Adding to the Concept List
15. Basics of Serialization00:00:00
16. Adding to the Concept List
17. Parsing JSON00:00:00
18. Adding to the Concept List
19. Deserializing JSON00:00:00
20. Picking Random Image00:00:00
21. Setting the Image00:00:00
22. New Concepts and Error Checking00:00:00
23. How Does it Work00:00:00
23. How Does it Work 200:00:00
24. Networking with You!00:00:00
25. Lesson 2 Teaser00:00:00
26. Lesson 1 Concept List
Part 10-Module 01-Lesson 03_Problem Set JSON Parsing
01. Problem Set Files
02. JSON Parsing Prep
03. Exercise Instructions
05. Animals Solution
07. Hearthstone Solution
09. Achievements Solution
Part 10-Module 01-Lesson 04_Chaining Asynchronous Requests
01. Course Map Lesson 200:00:00
02. Demo “Flick Finder”00:00:00
03. The Search Method Part 100:00:00
04. The Search Method Part 200:00:00
05. Using NSURL Components00:00:00
06. Pieces of a URL00:00:00
06. Pieces of a URL 200:00:00
07. New Concepts
08. The Text Search Action00:00:00
08. The Text Search Action 200:00:00
09. The LatLon Search Action00:00:00
09. The LatLon Search Action 200:00:00
10. Starting The Search00:00:00
11. What’s What Who’s Who00:00:00
11. What’s What Who’s Who 200:00:00
12. Completing a Search
12. Completing a Search 200:00:00
13. Making it More Random00:00:00
13. Making it More Random 200:00:00
14. Chaining Asynchronous Requests00:00:00
15. Adding to the Concept List
16. Selecting a Random Page00:00:00
16. Selecting a Random Page 200:00:00
17. Selecting a Random Image00:00:00
18. Networking with You!00:00:00
19. Lesson 3 Teaser00:00:00
20. Lesson 2 Concept List
Part 10-Module 01-Lesson 05_Authenticating Requests
01. Course Map Lesson 0300:00:00
02. Interview with Travis Bell TheMovieDB00:00:00
03. More on TheMovieDB
04. Accessing User vs. Anonymous Data00:00:00
05. New Concepts
06. Demo My Favorite Movies00:00:00
07. Looking at TheMovieDB Docs00:00:00
08. Interview with Travis Bell Auth Flow00:00:00
09. Adding to the Concept List
10. Authorization Flow(Chart)00:00:00
11. Starting My Favorite Movies00:00:00
12. Are You Set-Up with TheMovieDB00:00:00
13. Updates to Info.plist for ATS00:00:00
14. Adding to the Concept List
15. Breaking Each Method into 7 Steps
16. GETing the Request Token00:00:00
16. GETing the Request Token 200:00:00
17. GETing the Session ID Login00:00:00
17. GETing the Session ID Login 200:00:00
18. GETing the Session ID Session ID00:00:00
18. GETing the Session ID Session ID 200:00:00
19. Securing the Requests00:00:00
20. GETing the User ID00:00:00
20. GETing the User ID 200:00:00
21. The Movie Detail View
22. Our First POST Request00:00:00
23. Adding to the Concept List
24. POSTing a Favorite Movie00:00:00
24. POSTing a Favorite Movie 200:00:00
25. Networking with You!00:00:00
26. Lesson 4 Teaser00:00:00
27. Lesson 3 Concept List
Part 10-Module 01-Lesson 06_Improve Networking with MVC
01. Course Map Lesson 400:00:00
02. Interview with Travis Favorite Apps00:00:00
03. Demo The Movie Manager00:00:00
04. A Quick Detour on Closures
05. Nonescaping and Escaping Closures
06. Escaping Closure Examples
07. Async Example of Escaping Closure
08. Why Escaping Closures
09. Checking Out the Code00:00:00
10. Keeping Our Code Clean with MVC00:00:00
11. Designing the API Methods00:00:00
12. Abstracting Away Redundant Code00:00:00
13. The Client You’ll Build00:00:00
14. A Method for GETting00:00:00
15. A Method for POSTing00:00:00
16. Our New Login Flow00:00:00
18. Interview with Travis Another Auth Flow00:00:00
19. The New Auth Flow (and OAuth)00:00:00
20. Authentication via the Website00:00:00
21. Adding Convenience GET SessionUser IDs00:00:00
22. Adding Convenience GET Watchlist00:00:00
23. Adding Convenience POST Watchlist00:00:00
24. Networking with You!00:00:00
25. Lesson 5 Teaser00:00:00
09. Checking Out the Code 200:00:00
11. Designing the API Methods 200:00:00
12. Abstracting Away Redundant Code 200:00:00
15. A Method for POSTing 200:00:00
17. Adding Convenience GET Request Token 200:00:00
20. Authentication via the Website 200:00:00
22. Adding Convenience GET Watchlist 200:00:00
23. Adding Convenience POST Watchlist 200:00:00
Part 10-Module 01-Lesson 07_Preparing for On the Map
01. Course Map Lesson 500:00:00
02. Networks are Unreliable00:00:00
03. Part 1 What Happens Next00:00:00
03. Part 1 What Happens Next 200:00:00
04. Part 2 What Happens Next00:00:00
04. Part 2 What Happens Next 200:00:00
05. Techniques for Failing Gracefully
06. Network Link Conditioner00:00:00
07. Installing the Network Link Conditioner00:00:00
07. Installing the Network Link Conditioner 200:00:00
08. Handling Our Networking Problems00:00:00
09. Preparation Materials
10. On the Map Send Off00:00:00
11. Extended Topics
12. Networking with You!00:00:00
Part 10-Module 02-Lesson 01_Closures Reloaded
01. Closures Reloaded00:00:00
02. What Makes Closures So Special00:00:00
03. Flying First Class00:00:00
04. First Class Demo00:00:00
05. The Answer to Life…00:00:00
05. The Answer to Life. 200:00:00
06. Adding Closures to an Array00:00:00
06. Adding Closures to an Array 200:00:00
07. Same Old Functions and Closures00:00:00
08. Functions and Closures00:00:00
08. Functions and Closures 200:00:00
09. Variable Capture Intro00:00:00
10. Variable Capture and Type Alias00:00:00
11. Type Alias Example00:00:00
12. Variable Capture at Last00:00:00
13. Type Alias00:00:00
13. Type Alias 200:00:00
14. Capture00:00:00
14. Capture 200:00:00
15. Outro00:00:00
Part 10-Module 02-Lesson 02_GCD and Queues
01. GCD and Queues00:00:00
02. GCD and Threads00:00:00
02. GCD and Threads 200:00:00
03. Types of Queues00:00:00
04. Serial Queues Can I Have Concurrency00:00:00
04. Serial Queues Can I Have Concurrency 200:00:00
05. Main Functions in GCD00:00:00
06. Dispatch Async00:00:00
06. Dispatch Async 200:00:00
07. Execution Order00:00:00
07. Execution Order 200:00:00
08. Beware of UIKit and Core Data!00:00:00
09. Will it Crash The Toughest Bugs Ever00:00:00
09. Will it Crash The Toughest Bugs Ever 200:00:00
10. Outro00:00:00
Part 10-Module 02-Lesson 03_Backgrounding Lengthy Tasks
01. Intro00:00:00
02. Example App00:00:00
03. Synchronous Download00:00:00
04. Asynchronous Download00:00:00
05. An Asynchronous Method00:00:00
06. Completion Closure00:00:00
07. Sync vs. Async00:00:00
07. Sync vs. Async 200:00:00
08. Recap and Best Practices00:00:00
Part 10-Module 03-Lesson 01_On the Map
01. Demo On the Map00:00:00
02. APIs and New Methods00:00:00
03. Parse Announcement
04. Using the Parse API
05. Making Requests in a Playground
06. Parse API What is a Student Location
07. Parse API GETting Student Locations
08. Parse API GETting a Student Location
09. Parse API POSTing a Student Location
10. Parse API PUTting a Student Location
11. Using the Udacity API
12. Udacity API POSTing a Session
13. Udacity API DELETEing a Session
14. Udacity API GETting Public User Data
15. Working with Maps
16. On the Map
Part 10-Module 04-Lesson 01_Suggested Electives
01. Suggested Electives
Part 11-Module 01-Lesson 01_Conduct a Job Search
01. Introduction
02. Job Search Mindset
03. Target Your Application to An Employer
04. Open Yourself Up to Opportunity
05. Resources in Your Career Portal
Part 11-Module 02-Lesson 01_Refine Your Entry-Level Resume
01. Convey Your Skills Concisely
02. Effective Resume Components
03. Resume Structure
04. Describe Your Work Experiences
05. Resume Reflection
06. Resume Review
07. Resume Review (Entry-level)
08. Resources in Your Career Portal
Project Description – Resume Review Project (Entry-level)
Project Rubric – Resume Review Project (Entry-level)
Part 11-Module 02-Lesson 02_Refine Your Career Change Resume
01. Convey Your Skills Concisely
02. Effective Resume Components
03. Resume Structure
04. Describe Your Work Experiences
05. Resume Reflection
06. Resume Review
07. Resume Review (Career Change)
08. Resources in Your Career Portal
Project Description – Resume Review Project (Career Change)
Project Rubric – Resume Review Project (Career Change)
Part 11-Module 02-Lesson 03_Refine Your Prior Industry Experience Resume
01. Convey Your Skills Concisely
02. Effective Resume Components
03. Resume Structure
04. Describe Your Work Experiences
05. Resume Reflection
06. Resume Review
07. Resume Review (Prior Industry Experience)
08. Resources in Your Career Portal
Project Description – Resume Review Project (Prior Industry Experience)
Project Rubric – Resume Review Project (Prior Industry Experience)
Part 11-Module 03-Lesson 01_Craft Your Cover Letter
01. Get an Interview with a Cover Letter!
02. Purpose of the Cover Letter
03. Cover Letter Components
04. Write the Introduction
05. Write the Body
06. Write the Conclusion
07. Format
08. Resources in Your Career Portal
Project Description – Craft Your Cover Letter
Project Rubric – Craft Your Cover Letter
Part 12-Module 01-Lesson 01_Find Web APIs for Your Final App
01. Welcome to Project 3.5!
02. Find Existing APIs and Libraries
03. Advice for Choosing Web APIs Libraries
04. Find Vet Web APIs
05. Constructing URLs
05. Constructing URLs
06. Structure of the Web API’s Data
07. User Authentication
08. Summary and What’s Next
Part 13-Module 01-Lesson 01_Debugging, Printing, and Logging
01. We Need to Talk About the Bug Problem00:00:00
02. Notice Code Examples and Repositories
03. SoManyBugs Repository
04. SoManyBugs Demo00:00:00
05. Shake the Bugs00:00:00
06. Warnings, Errors, and Runtime Errors00:00:00
07. Debugging Lingo
08. The Debugging Process00:00:00
09. Print Debugging00:00:00
09. Print Debugging – Solution00:00:00
10. Printable and DebugPrintable00:00:00
11. No More Crash!00:00:00
11. No More Crash!00:00:00
12. Advanced Print Debugging Logging00:00:00
13. Bonus Debugging Tool dump
Part 13-Module 01-Lesson 02_Stepping Through Code
01. Breakpoint Debugging00:00:00
02. Setting Breakpoints00:00:00
03. Pausing Our Execution and the Debug Area00:00:00
04. Examining a Stack Frame00:00:00Preview
05. Jumping Around Frames00:00:00
06. The Debug Bar00:00:00
07. Step In, Step Out, Step Over00:00:00
08. Fixing Settings Bug with Breakpoints00:00:00
08. Fixing Settings Bug with Breakpoints – Solution00:00:00
09. Stack Traces for Creating a Bug00:00:00
09. Stack Traces for Creating a Bug – Solution00:00:00
10. Debug Navigator Icons
11. Variable Kinds00:00:00
11. Variable Kinds – Solution00:00:00
12. Getting Help with Bugs00:00:00
13. Good Debuggers are Good Investigators00:00:00
Part 13-Module 01-Lesson 03_LLDB and Breakpoint Actions
01. Better Debugging with Better Tools00:00:00
02. The Low Level Debugger00:00:00
03. Common LLDB Commands Part 100:00:00
04. Common LLDB Commands Part 200:00:00
05. Practicing with LLDB00:00:00
05. Practicing with LLDB – Solution00:00:00
06. Practicing with LLDB Demo00:00:00
07. LLDB Reference Material
08. Breakpoint Actions00:00:00
09. Playing with Breakpoint Options00:00:00
09. Playing with Breakpoint Options – Solution00:00:00
Part 13-Module 01-Lesson 04_Breakpoints and Visual Tools
01. Exception Breakpoints00:00:00
02. Symbolic Breakpoints00:00:00
03. Pro Trip Property Breakpoints
04. Fix the Breakpoint Scene00:00:00
04. Fix the Breakpoint Scene – Solution00:00:00
05. Quick Look00:00:00
06. Debug View Hierarchy00:00:00
07. Fixing the Visual Bugs00:00:00
07. Fixing the Visual Bugs – Solution00:00:00
08. Fixing the Visual Bugs Solution Pt. 200:00:00
09. Xcode Debugging Hotkeys
10. Becoming a Debugging Ninja
11. Squash All the Bugs!00:00:00
Part 14-Module 01-Lesson 01_Simple Persistence
Learn about simple persistence, the iOS File System, and the “sandbox.” Set up the classes we need to get Core
Data up and running so that we can create, save, and delete model objects. Enable user interfaces to reactively
update whenever the model changes, and safely migrate user data between versions.
01. Intro00:00:00
02. Course Overview00:00:00
03. UserDefaults Intro00:00:00
04. When Should You Use UserDefaults00:00:00
04. When Should You Use UserDefaults
04. When Should You Use UserDefaults? – Solution00:00:00
05. Example Before We Dive into the Code00:00:00
06. Pick Your Pitch00:00:00
07. Adding Persistence to Pick Your Pitch
08. Finishing Pick Your Pitch00:00:00
09. Outro00:00:00
Part 14-Module 01-Lesson 02_iOS File System and Sandboxing
01. Intro00:00:00
02. The iOS File System00:00:00
03. File System Quiz
04. The Sandbox00:00:00
05. Where Stuff Will Be Stored00:00:00
06. Writing Reading from the Sandbox00:00:00
07. A Visitor00:00:00
03. File System Quiz
Part 14-Module 01-Lesson 03_Introducing Core Data
01. Introduction00:00:00
02. About Data Layers00:00:00
04. More than Persistence
05. Why Persist Data00:00:00
06. Why Apps Close00:00:00
07. Persistence Options
08. Introducing Mooskine00:00:00
09. Downloading Mooskine
10. The Existing Model00:00:00
11. Adding a Core Data Model00:00:00
12. Entities00:00:00
13. Attributes00:00:00
14. Attribute Types
16. Adding Attributes to Note
17. Relationships00:00:00
18. Two-Sided Relationships and Deletion Rules
19. Entities Review
20. Code Generation00:00:00
21. Codegen Consequences
22. Summary00:00:00
15. Optional Attributes
03. What is Core Data?
19. Entities Review
21. Codegen Consequences
Part 14-Module 01-Lesson 04_The Core Data Stack
01. Introduction00:00:00
02. The Core Data Stack00:00:00
03. Stack Facts
04. Setting Up the Stack in Mooskine00:00:00
05. Switching to Code-Generated Classes00:00:00
06. Injecting the DataController Dependency00:00:00
07. Fetching Data for NotebooksListViewController00:00:00
08. Adding and Deleting Notebooks00:00:00
09. Fetch Requests, Faults and Uniquing
10. Creating and Saving Managed Objects
11. Making a Fetch Request
12. Practice Adapt NotesListViewController
13. Updating NotesListViewController00:00:00
14. NSPredicate
15. A Predicate Predicament
16. Saving Edits in NoteDetailsViewController00:00:00
17. When Should You Save00:00:00
18. Subclassing in Core Data
20. Extending Model Classes00:00:00
21. Customizing Note Initialization
22. Singletons and Dependency Injection
23. Review00:00:00
Part 14-Module 01-Lesson 05_Simpler Code with Core Data
01. Introduction00:00:00
02. Refactoring00:00:00
03. Complexity in Mooskine00:00:00
04. NSFetchedResultsController00:00:00
06. Adding a Fetched Results Controller00:00:00
07. Fetched Results Controller and Collections00:00:00
08. Displaying Data00:00:00
09. Tracking Changes00:00:00
10. Adding Change Types
12. NSFetchedResultsControllerDelegate
13. Caching00:00:00
14. Practice NotesListViewController
15. Generic Data Source
16. Review00:00:00
05. Core Data Notifications
11. Number of Rows in a Section
Part 14-Module 01-Lesson 06_Rounding Out Core Data
01. Competitive Analysis00:00:00
02. Introduction00:00:00
03. Storing Rich Text with NSAttributedString00:00:00
04. Binary and transformable attributes00:00:00
05. Changing a Data Model00:00:00
06. Adding a New Data Model00:00:00
07. Migration Types00:00:00
08. Custom mapping models
09. Creating a new model version
10. Transformable
11. Preparing the keyboard
12. Pathifier Helper
13. Adding Text Formatting00:00:00
14. Concurrency in Core Data
15. Context Architecture Choices00:00:00
16. Context Creation and Keeping Queues Straight00:00:00
17. Context Merge Policies00:00:00
18. Creating a Background Context00:00:00
19. Using a Background Context00:00:00
20. Observing Notifications00:00:00
21. Running Mooskine00:00:00
22. Concurrency in Core Data
23. Summary00:00:00
Part 14-Module 02-Lesson 01_Optional Elective Firebase in a Weekend – Saturday
01. Optional Elective Info
02. Firebase in a Weekend!00:00:00
03. Overview00:00:00
04. Favorite Features
05. Examination of Final App00:00:00
06. Download the Friendly Chat App
07. Firing Up FriendlyChat
08. Firebase in Xcode00:00:00
09. Installing Cocoapods00:00:00
10. Setting up Cocoapods for FriendlyChat00:00:00
11. Starter Code Walkthrough00:00:00
12. Starter Code Walkthrough Exercise
13. Firebase Realtime Database00:00:00
14. Why Firebase Realtime Database00:00:00
15. Database Structure00:00:00
16. Exploring the Database
17. Sending a Message00:00:00
18. Database Rules for Testing00:00:00
19. Reading from the Database00:00:00
20. Reading Messages00:00:00
21. Showing Messages00:00:00
22. Database Rules for Testing
23. Database Security00:00:00
24. Database Security Rules
25. Advanced Database Rules
26. Why is it Great to Authenticate00:00:00
27. Why is it Great to Authenticate (Exercise)
28. FirebaseUI Authentication00:00:00
29. Authentication in Firebase Console00:00:00
30. Getting Started with FirebaseUI00:00:00
31. Configuring Email and Password Authentication00:00:00
32. Configuring Google Authentication00:00:00
33. Saturday Check In00:00:00
05. Creating a Firebase Project00:00:00
Part 14-Module 02-Lesson 02_Optional Elective Firebase in a Weekend – Sunday
01. Sunday Funday00:00:00
02. Firebase Storage Features00:00:00
03. Creating Storage Structure
04. Sending Friendly Photos00:00:00
05. Message in a Bottle00:00:00
06. A Fix and a Break00:00:00
07. Message Received!00:00:00
08. Bonus Seeing the Bigger Picture
09. Keep Your Stuff Safe00:00:00
10. Not Your Parents’ Permissions00:00:00
11. Playing Matchmaker00:00:00
12. Playing Matchmaker Exercise
13. Follow the Rules
14. Contexts or Chaos00:00:00
15. Reading in Context
16. Securing it All Together
17. Analytics Answer “Now What”00:00:00
18. Analyze This
19. Notify Me00:00:00
20. Notifications Next Steps
21. Remote Config Little Changes, Big Impact00:00:00
22. Policies and Limits00:00:00
23. Talking Too Much00:00:00
24. Fixing Message Length00:00:00
25. Remote Config – Conclusion00:00:00
26. Making Firebase Your Homebase00:00:00
27. ConclusionExtra Practice
Part 14-Module 02-Lesson 03_Optional Elective Firebase in a Weekend – Monday
01. Intro to Monday Module
02. Swift to JavaScript Comparison
03. Intro to Cloud Functions
04. Install the Firebase CLI
05. Create the Local Project
06. Cloud Functions Structure
07. Function with Realtime Database
08. Deploy and Test
09. Emojify in FriendlyChat App
10. More Functions
11. Cloud Functions Conclusion
Part 14-Module 03-Lesson 01_Virtual Tourist
01. Virtual Tourist
Project Description – Virtual Tourist
Project Rubric – Virtual Tourist
Part 15-Module 01-Lesson 01_Firebase in a Weekend Saturday
01. Weekend Plans
02. Course Contents
03. Favorite Features
04. Examination of Final App
05. Creating a Firebase Project
06. Download the Friendly Chat App
07. Firing Up FriendlyChat
08. Firebase in Xcode
09. Installing Cocoapods
10. Setting up Cocoapods for FriendlyChat
11. Starter Code Walkthrough
12. Starter Code Walkthrough Exercise
13. Firebase Realtime Database
14. Why Firebase Realtime Database
15. Database Structure
16. Exploring the Database
17. Configuring the Database in FriendlyChat
18. Sending a Message
19. Database Rules for Testing
20. Reading from the Database
21. Reading Messages
22. Showing Messages
23. Database Rules for Testing
24. Database Security
25. Database Security Rules
26. Advanced Database Rules
27. Why is it Great to Authenticate
28. Why is it Great to Authenticate (Exercise)
29. FirebaseUI Authentication
30. Authentication in Firebase Console
31. Getting Started with FirebaseUI
32. Configuring Email and Password Authentication
33. Configuring Google Authentication
34. Saturday Check In
Part 15-Module 01-Lesson 02_Firebase in a Weekend Sunday
01. Sunday Funday
02. Firebase Storage Features
03. Creating Storage Structure
04. Sending Friendly Photos
05. Message in a Bottle
06. A Fix and a Break
07. Message Received!
08. Bonus Seeing the Bigger Picture
09. Keep Your Stuff Safe
10. Not Your Parents’ Permissions
11. Playing Matchmaker
12. Playing Matchmaker Exercise
13. Follow the Rules
14. Contexts or Chaos
15. Reading in Context
16. Securing it All Together
17. Analytics Answer “Now What”
18. Analyze This
19. Notify Me
20. Notifications Next Steps
21. Remote Config Little Changes, Big Impact
22. Policies and Limits
23. Talking Too Much
24. Fixing Message Length
25. Remote Config – Conclusion
26. Making Firebase Your Homebase
27. ConclusionExtra Practice
Part 15-Module 01-Lesson 03_Firebase in a Weekend Monday
01. Intro to Monday Module
02. Swift to JavaScript Comparison
03. Intro to Cloud Functions
04. Install the Firebase CLI
05. Create the Local Project
06. Cloud Functions Structure
07. Function with Realtime Database
08. Deploy and Test
09. Emojify in FriendlyChat App
10. More Functions
11. Cloud Functions Conclusion
Part 16-Module 01-Lesson 01_Introduction to Digital Analytics
01. How Does Your Garden Grow
02. Course Outline
03. Analytics Let the Data Drive
04. Check Out Flood-It!
05. Download Flood-It!
06. Demo of Flood-It!
07. Measurement Planning
08. Goal of Measurement Planning
09. Identifying Goals
10. Go for the Goals
11. The Plan
12. Meet Goals with In-App Purchases
13. Planning
14. Planning – Conclusion
15. The Plan for Your Goals
16. Are We There Yet
17. KPI
18. KPI for Flood-It!
19. Analytics in Action
Part 16-Module 01-Lesson 02_Introduction to Firebase Analytics
01. Intro Flood-It!
02. Firebase Analytics Intro
03. Analytics for Flood-It!
04. Access Demo Project
05. Date Range and Filters
06. Quiz Date Range and Filters
07. Dashboard Reports
08. Exploring Analytics Events
09. Quiz Events Scavenger Hunt
10. Tracking Events
11. Automatically Collected Events
12. Conversion Events
13. Conversion Events in Flood It
14. Audiences
15. Funnels
16. Design a Funnel
17. Summary Flood-It!
Part 16-Module 01-Lesson 03_Implementing In-App Analytics
01. Intro Implementing In-App Analytics
02. Introducing the Green Thumb App
03. Setting Up Green Thumb
04. Quiz Running the App
05. Firebase Automatically Collected Events
06. Suggested Events
07. Quiz Suggested Events
08. Logging Events
09. Quiz Implementing Log to Cart Event
10. More Logging Events
11. Quiz Creating the sendAddToCart Function
12. Quiz Implementing the Log to Cart Event
13. Custom Event Logging
14. Quiz Event Logging Practice
15. User Properties
16. Setting User Properties
17. Configuring User Properties
18. Quiz Logging the User Property
19. Summary Implementing In-App Analytics
Part 16-Module 01-Lesson 04_Analytics Integration
01. Intro Analytics Integration
02. Track Certain Groups of Users with Audiences
03. Quiz Create an Audience
04. Using an Audience
05. Fix Crashes with Crash Reporting
06. Configuring Crash Reporting
07. Quiz Report a Crash
08. Improve Your App with Remote Config
09. Implementing Remote Config
10. Dynamic Links
11. Implementing Dynamic Links
12. Custom Parameters for Dynamic Links
13. Quiz Implementing Dynamic Links
14. Summary Analytics Integration
15. Conclusion
Part 17-Module 01-Lesson 01_Research
This is your chance to let your iOS Developer skills shine! For this final project, you’ll design and build your own
iOS app, taking the design from the drawing board to the App Store.
01. First iOS Apps by Experienced Developers00:00:00
02. Let’s Build an App!0:58
03. Benefits of Logging your Progress
04. Course Map and Mindset00:00:00
06. Starting at the Drawing Board00:00:00
07. Brainstorm Ideas Personal Motivation00:00:00
09. Brainstorm Ideas Featured Apps00:00:00
11. Lacking Ideas Let’s Get Creative!00:00:00
12. Advice for Getting Creative00:00:00
13. Get Feedback on your Ideas!00:00:00
15. On Developing Multiple Ideas00:00:00
16. UI Elements for App Ideas
21. Find Existing APIs and Libraries00:00:00
22. Advice for Choosing Web APIs Libraries00:00:00
23. Find Vet Web APIs
27. Summary and What’s Next00:00:00
Part 17-Module 01-Lesson 02_Build
01. It’s (Almost) Time to Start Building!00:00:00
02. Define Features for Your App Ideas00:00:00
03. Refine Your Feature Lists00:00:00
04. Choose Key Feature
05. It’s the Moment of Truth00:00:00
06. How Confident Are You
07. Create a Paper Prototype00:00:00
08. Reminder to Check out UX Design
09. Get Input Refine Your Paper Prototype00:00:00
10. Estimate Time to Completion00:00:00
11. Follow Your Timeline00:00:00
12. Where to Find Great Graphics00:00:00
13. Build Your App00:00:00
14. Tips for Getting Started00:00:00
15. What About When You Get Stuck00:00:00
16. Help Getting Unstuck00:00:00
17. Share Your Working Prototype!00:00:00
18. Testing 1, 2, 3…00:00:00
19. Get Users to Find Bugs00:00:00
20. Polish and Prep Your App00:00:00
21. App Store What You’ll Need
22. App Store Assets
23. App Store Certificate
24. App Store App ID
25. App Store Provisioning Profile
26. App Store Archive
27. App Store Bringing it All Together
28. You did it! Hip-Hip-Hoorah!00:00:00
Part 17-Module 01-Lesson 03_Reflect
01. How’d it go00:00:00
02. Time Estimates00:00:00
03. What Would You Change00:00:00
04. What was Your Biggest Challenge00:00:00
05. What did You do Well00:00:00
06. What’s Next00:00:00
07. Monitor App Store Feedback
Part 17-Module 02-Lesson 01_You Decide!
01. You Decide!
Project Description – You Decide!
Project Rubric – You Decide!
Part 18-Module 01-Lesson 01_Ace Your Interview
01. Introduction
02. Interviews are Conversations
03. STAR Method
Part 18-Module 01-Lesson 02_Practice Behavioral Questions
01. Introduction
02. Self-Practice Behavioral Questions
03. Analyzing Behavioral Answers
04. Time When You Showed Initiative
05. What Motivates You at the Workplace
06. A Problem and How You Dealt With It
07. What Do You Know About the Company
08. Time When You Dealt With Failure
Part 18-Module 01-Lesson 03_Interview Fails
01. Interview Fails
02. Interviewing Fails Mike Wales
03. Interviewing Fails Siya Raj Purohit
04. Interviewing Fails Lyla Fujiwara
Part 18-Module 01-Lesson 04_Land a Job Offer
01. Land a Job Offer
Part 18-Module 01-Lesson 05_Interview Practice (iOS)
01. Analyzing an Interview
02. Mobile Interviewing Introduction
03. Qualities of a Strong Candidate
04. Understanding Optionals
05. Notifications and Delegates
06. Core Data Overview
07. Recently Learned Topics
08. Why Did You Choose iOS
09. MVC Example
10. iOS Overall Feedback
11. Keep Practicing!
12. Resources in Your Career Portal
Project Description – Interview Practice (iOS)
Project Rubric – Interview Practice (iOS)
Part 19-Module 01-Lesson 01_Objective-C vs. Swift
01. Introduction
02. Welcome to Objective-C for Swift Devs!
03. Intro to Dasmer Singh
04. Interview with Dasmer Singh
05. Compare and Contrast
06. Similarities Objective-C and Swift
07. Differences Handling Nil
08. Differences Mutability
09. Mutability in Objective-C
10. NSArray vs. NSMutableArray
11. Differences Typing
12. In Objective-C Arrays are not Typed
13. Dynamic Method Resolution
14. The Power Is In Your Hands
15. With Great Power…
16. Interview Questions About Objective-C
17. Practice NSArray vs. NSMutableArray
18. Practice Invoking Methods on Nil
19. Interview Question Inheritance
20. Seek Out More Practice Questions
Part 19-Module 01-Lesson 02_Writing Classes in Objective-C
01. Introduction
02. Class Declaration
03. Code for the House Class
04. Property Attributes nonatomic and atomic
05. Readwrite, Readonly, and Copy
06. Class Initialization
07. Understanding Self
08. Code for the Custom Initializer
09. Practice Write the Book Class
10. Making Two Classes Work Together
11. More Property Attributes Strong and Weak
12. Practice Build on the Book Project
13. Practice Rock, Paper, Scissors
14. Lesson 2 Outro
Part 19-Module 01-Lesson 03_Methods and Messages in Objective-C
01. Introduction to Lesson 3
02. Review Method Definition Syntax
03. Practice Method Definitions
04. Calling Methods Syntax and Vocabulary
05. Why Do We Say Send a Message
06. Quiz Methods and Messages
07. Add a Game Property
08. Finishing the Method throwDown
09. Properties Provide Setters and Getters
10. Control Flow Switch Statements
11. Putting the generateMove Method to Work
12. Control Flow If Statements
13. Practice Messaging in Objective-C
14. Exercise RPS Helper Methods
15. Making a Method Visible to Other Classes
16. Exercise RPS Results Message
17. Exercise RPS, Putting It All Together
18. Nice work! Next Up…
Part 19-Module 01-Lesson 04_Porting from Objective-C to Swift (Part 1)
01. Interview with Keith Smiley from Lyft
02. Lesson 4 Introduction
03. GIFMaker Demo
04. Getting Started
05. App Components
06. To Do List
07. Present the Video Camera
08. What’s Analogous to a Category
09. UIViewController Extension
10. Display a GIF in a UIImage
11. Implement Regift Methods
12. Display the GIF in the GifEditor
13. Do You See the New GIF
14. Convert a Video into a GIF Check!
15. Rewriting the Gif Class
16. Sample Swift Gif Class
17. Configure the Editor to Add a Caption
18. UITextFieldDelegate Methods
19. UITextFieldDelegate Methods Sample Code
20. Make Room for the Keyboard
21. Make Room for the Keyboard Sample Code
22. Add a Caption to the Animated GIF
23. What is this Method Doing
24. Let’s Walk Through presentPreview
25. Add a Caption Check!
26. Share the GIF
27. Share the GIF Sample Code
28. Share the GIF Check!
29. Create an Action Sheet
30. Convert an Existing Video Check!
31. Enable Video Trimming Steps
32. Enable Video Trimming Sample Code
33. Crop GIF to be Square
34. Quiz How Did the Cropping Go
35. Finishing Touches
36. Get Ready for the Next Iteration…
Part 19-Module 01-Lesson 05_Porting from Objective-C to Swift (Part 2)
01. Introduction
02. GIFMaker 2.0 Demo
03. GifMaker 20 Todo List
04. Setup the SavedGifsViewController
05. UICollectionView Protocols
06. Setup the PreviewVC and its Delegate
07. View Saved GIFs in a Collection Check!
08. Conform to the NSCoding Protocol
09. Sample Code for the NSCoding Protocol
10. Handling Untyped Arrays
11. Construct a File Path for the GIFs Array
12. Sample Code to Create the File Path
13. Save and Retrieve the GIFs
14. Where Should We Unarchive the GIFs
15. Persist GIFs Check!
16. The GIF Detail View
17. Sample Code for the GIF Detail View
18. First Time User Experience
19. Styling
20. Add this Project to Your Portfolio
21. Well Done! Next Up…
Part 19-Module 01-Lesson 06_Common Interop Challenges
01. Remember Dasmer
02. Interview with Dasmer Singh
03. #1 Nil Values
04. Nullability Annotations
05. Quiz Annotate the Book Class
06. #2 The Hazards of ID and AnyObject
07. Taking Care with AnyObject Optional Chaining and Casting
08. Lightweight Generics
09. Quiz ID and the Hazards of AnyObject
10. #3 Error Handling
11. How Swift Interprets an NSError
12. How Objective-C Interprets Swift Errors
13. #4 Is Your Swift API visible to Objective-C
14. Using @objc
15. Mixed Language Projects and Importing Files
16. Outro
17. Objective-C Course Finale
Part 19-Module 02-Lesson 01_Interoperability Problem Set
01. Interoperability Problem Set Description
02. Interoperability Problem Set
Project Description – Objective-C for Swift Developers
Project Rubric – Objective-C for Swift Developers
Part 20-Module 01-Lesson 01_Principles of Software Design
01. Introduction to Software Design
02. Software Design Principles
03. Which Design is Extensible, Encapsulated, and Reusable
04. Keep it DRY
05. SOLID Foundations
06. Single Responsibility Principle
07. OpenClosed Principle
08. Liskov Substitution Principle
09. Interface Segregation Principle
10. Dependency Inversion Principle
11. SOLID Exercise
12. Summary Gang of Four Design Patterns
Part 20-Module 01-Lesson 02_Creational Design Patterns
01. Creational Design Patterns
02. Factory Method
03. Static Factory Method
04. Controlling Access
05. Singleton
06. When Lazy is Good
07. Dependency Injection
08. No Dependency Injection
09. Dependency Injection vs Dependency Inversion
10. Object Pool
11. Object Pool Exercise
12. Object Pools on iOS
13. Builder
14. Builder Exercise
15. Summary
Part 20-Module 01-Lesson 03_Structural Design Patterns
01. Structural Design Patterns
02. Adapter
03. Adapters Using Protocols
04. Facade
05. Decorator
06. Decorator vs. Inheritance
07. Match the Pattern
08. Summary
Part 20-Module 01-Lesson 04_Behavioral Design Patterns
01. Introduction to Behavioral Design Patterns
02. Observer
03. Observer Exercise
04. Observers on iOS
05. Command
06. Chain of Responsibility
07. Mediator
08. Memento
09. Finger Painting Exercise
10. Summary
Part 20-Module 01-Lesson 05_Software Anti-Patterns
01. Introduction to Software Anti-Patterns
02. Code Smell
03. God Object
04. God Object Exercise
05. God Object Exercise Solution
06. Deep Inheritance
07. Deep Inheritance Exercise
08. Global Variables
09. The Takeaway
10. Congratulations!
Part 21-Module 01-Lesson 01_Please Read Before Taking this Course
01. Important Note about Your Swift Workspace
Part 21-Module 01-Lesson 02_Introduction and Efficiency
01. Course Introduction
02. Course Outline
03. Course Expectations
04. Syntax
05. Swift Syntax Review
06. Swift Practice
07. Efficiency
08. Notation Intro
09. Notation Continued
10. Worst Case and Approximation
11. Efficiency Practice
Part 21-Module 01-Lesson 03_List-Based Collections
01. Welcome to Collections
02. Lists
03. Arrays
04. Swift Arrays
05. Linked Lists
06. Linked Lists in Depth
07. Linked Lists in Swift
08. Linked Lists Practice
09. Linked Lists Walkthrough
10. Stacks
11. Stacks Details
12. Stacks in Swift
13. Stacks Walkthrough
14. Queues
15. Queues in Swift
16. Queues Walkthrough
Part 21-Module 01-Lesson 04_Searching and Sorting
01. Binary Search
02. Efficiency of Binary Search
03. Binary Search in Swift
04. Binary Search Walkthrough
05. Recursion
06. Recursion in Swift
07. Recursion Walkthrough
08. Intro to Sorting
09. Bubble Sort
10. Efficiency of Bubble Sort
11. Bubble Sort Practice
12. Merge Sort
13. Efficiency of Merge Sort
14. Merge Sort Practice
15. Quick Sort
16. Efficiency of Quick Sort
17. Quick Sort in Swift
18. Quick Sort Walkthrough
Part 21-Module 01-Lesson 05_Maps and Hashing
01. Introduction to Maps
02. Sets and Maps
03. Swift Dictionaries
04. Dictionaries Walkthrough
05. Introduction to Hashing
06. Hashing
07. Collisions
08. Load Factor
09. Hash Maps
10. String Keys
11. String Keys in Swift
12. String Keys Walkthrough
Part 21-Module 01-Lesson 06_Trees
01. Trees00:00:00
02. Tree Basics
03. Tree Terminology
04. Tree Practice
05. Tree Traversal
06. Depth-First Traversals
07. Tree Traversal Practice
08. Search and Delete
09. Insert
10. Binary Tree in Swift
11. Binary Tree Walkthrough
12. Binary Search Trees
13. BSTs
14. BST Complications
15. BST in Swift
16. BST Walkthrough
17. Heaps
18. Heapify
19. Heap Implementation
20. Self-Balancing Trees
21. Red-Black Trees – Insertion
22. Tree Rotations

$250.00