iOS 9 and Swift 2: From Beginner to Paid Professional | Mark Price | Skillshare

iOS 9 and Swift 2: From Beginner to Paid Professional

Mark Price, iOS & Web Developer / Instructor

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
127 Lessons (1d 13h 37m)
    • 1. Introduction

      2:05
    • 2. How to get FREE live help

      2:36
    • 3. Why take this course?

      5:24
    • 4. How to Run Mac on a PC

      4:26
    • 5. DO NOT SKIP THIS VIDEO

      2:36
    • 6. Apple Developer Account & Xcode Installation

      4:22
    • 7. Increase & decrease Xcode font size dynamically

      2:38
    • 8. Intro to iOS 9 App

      4:00
    • 9. Learning Resources - Train Your Brain!

      2:55
    • 10. iOS 9 App: Your First App!

      19:27
    • 11. How Exercises & Warmups Work

      2:16
    • 12. Intro to Swift 2

      3:29
    • 13. Swift 2 Variables & Constants

      10:24
    • 14. Swift 2 Comments & Semi-Colons

      5:28
    • 15. Swift 2 Numbers & Type Safety

      14:31
    • 16. Terminal Basics

      11:17
    • 17. Version Control

      8:51
    • 18. Git Basics

      23:27
    • 19. Working with Github

      16:39
    • 20. Swift 2 Conditionals (if / else) Part 1

      11:39
    • 21. Swift 2 Conditionals ( && || ) Part 2

      9:21
    • 22. Swift 2 Functions

      25:53
    • 23. iOS 9: Auto Layout Basics

      15:51
    • 24. iOS 9: Auto Layout (Digging Deeper)

      26:49
    • 25. Intro to iOS 9 App

      1:04
    • 26. iOS 9 App: Tapper

      56:41
    • 27. Exercise - Multiples App

      3:36
    • 28. Swift 2 Arrays

      19:20
    • 29. Swift 2 Loops

      30:40
    • 30. iOS 9: Intro to Stack View

      39:36
    • 31. Intro to iOS 9 App

      1:36
    • 32. iOS 9 App: Retro Calculator Part 1

      47:41
    • 33. iOS 9 App: Retro Calculator Part 2

      60:43
    • 34. Exercise - Enhancing our Calculator

      1:52
    • 35. Swift 2 Dictionaries

      12:51
    • 36. Intro Object-Oriented Programming & Classes

      25:17
    • 37. Inheritance

      17:55
    • 38. Polymorphism

      11:42
    • 39. Swift 2 Optionals Part 1

      28:01
    • 40. Intro to iOS 9 App

      1:35
    • 41. iOS 9 App: Building a Simple APP With OOP

      60:19
    • 42. Intro to iOS 9 App

      2:40
    • 43. iOS 9 App: My Little Monster Part 1

      29:35
    • 44. iOS 9 App: My Little Monster Part 2

      24:22
    • 45. iOS 9 App: My Little Monster Part 3

      36:41
    • 46. iOS 9 App: My Little Monster Part 4

      25:36
    • 47. Model View Controller (MVC)

      26:45
    • 48. UIViewController

      12:39
    • 49. Size Classes Part (Different Layouts for Screen Sizes)

      17:39
    • 50. UITabBarController

      6:20
    • 51. Storyboard Segues

      20:40
    • 52. App: Building a No-Storyboard App (XIBs)

      20:40
    • 53. Subclassing Views (Custom UIView)

      7:54
    • 54. Intro to App

      2:26
    • 55. App: Favorite Place

      21:15
    • 56. Swift 2 Enums

      14:27
    • 57. Swift 2 Extensions

      5:42
    • 58. UITableViewController

      15:38
    • 59. WKWebView

      22:59
    • 60. App: Ugly Stuff - Custom TableView and Custom Cells

      28:08
    • 61. NSUserDefaults

      26:48
    • 62. UINavigationController

      11:14
    • 63. App: The Walking Dead (UIScrollView)

      30:33
    • 64. Intro to App

      2:05
    • 65. App: MyHood Part 1

      42:11
    • 66. App: MyHood Part 2

      20:36
    • 67. App: MyHood Part 3

      52:28
    • 68. Intro to App

      1:44
    • 69. App: Recipez Part 1 (Core Data)

      31:20
    • 70. App: Recipez Part 2 (Core Data)

      27:45
    • 71. Student Showcase

      1:33
    • 72. DevCamp iOS 9 App: Creating the project

      7:46
    • 73. DevCamp iOS 9 App: Working with user location

      9:53
    • 74. DevCamp iOS 9 App: Zooming in on the map

      7:40
    • 75. DevCamp iOS 9 App: Annotations & Geocoding

      19:25
    • 76. How Web Requests Work

      17:51
    • 77. Working with POSTMAN

      6:22
    • 78. Web Requests (NSURLSession)

      14:14
    • 79. Cocoapods

      14:21
    • 80. JSON

      25:24
    • 81. Intro to App: Pokemon Pokedex

      1:27
    • 82. App: Pokedex Part 1 - Project Setup, Images, Data, Github

      9:55
    • 83. App: Pokedex Part 2 - Creating a Pokemon Class

      4:45
    • 84. App: Pokedex Part 3 - UICollectionView, Storyboard Layout

      13:15
    • 85. App: Pokedex Part 4 - Custom UICollectionViewCell

      6:35
    • 86. App: Pokedex Part 5 - UICollectionViewDelegate, Data Source, Flow Layout

      18:09
    • 87. App: Pokedex Part 6 - Parsing CSV Files

      15:59
    • 88. App: Pokedex Part 7 - Audio & Custom Font

      13:38
    • 89. App: Pokedex Part 8 - UISearchBar, Search Filtering

      19:06
    • 90. App: Pokedex Part 9 - Detail View Controller & Segue

      15:59
    • 91. App: Pokedex Part 10 - UIStackView & The Detail View Controller

      30:41
    • 92. App: Pokedex Part 11 - IBOutlets Detail View Controller, Updating Class

      5:42
    • 93. App: Pokedex Part 12 - The API, Github, Cocoapods, Alamofire

      8:27
    • 94. App: Pokedex Part 13 - Downloading & Parsing Data

      38:35
    • 95. App: Pokedex Part 14 - Completing the App

      54:23
    • 96. Intro to App

      2:24
    • 97. App: Showcase Part 1 - Firebase Overview

      8:21
    • 98. App: Showcase Part 2 - Firebase Auth Config

      11:00
    • 99. App: Showcase Part 3 - Login User Interface

      41:14
    • 100. App: Showcase Part 4 - Facebook Login

      32:04
    • 101. App: Showcase Part 5 - Email/Password Login

      37:49
    • 102. App: Showcase Part 6 - Post TableViewCell UI

      30:57
    • 103. App: Showcase Part 7 - How Firebase Works

      16:22
    • 104. App: Showcase Part 8 - Creating Firebase Users

      14:59
    • 105. App: Showcase Part 9 - Syncing Data From Firebase

      9:40
    • 106. App: Showcase Part 10 - Parsing Firebase Data

      19:50
    • 107. App: Showcase Part 11 - Display Data - Image Caching/Downloading

      33:42
    • 108. App: Showcase Part 12 - Make Post UI

      20:52
    • 109. App: Showcase Part 13 - Uploading Images to Server

      31:31
    • 110. App: Showcase Part 14 - Saving Posts to Firebase

      21:51
    • 111. App: Showcase Part 15 - Like Feature (Firebase Relationships)

      34:32
    • 112. Exercise - Expanding Your Social Network App

      3:59
    • 113. Creating an App Icon

      16:25
    • 114. Creating another app icon in Photoshop

      13:18
    • 115. Working with @1x @2x & @3x images

      14:30
    • 116. Paid Apple Developer Account

      4:20
    • 117. Development Certificates

      14:12
    • 118. Development Profiles

      23:02
    • 119. Creating App Store Screenshots

      8:01
    • 120. Submitting you App!!

      31:43
    • 121. Debugging a screen that isn't showing data

      11:23
    • 122. iOS 9 3D Touch App Shortcuts

      25:07
    • 123. Swift & Objective-C in the same project

      11:14
    • 124. Mastering LinkedIn

      22:59
    • 125. Resumes for Programmers

      14:48
    • 126. Working With Recruiters

      18:45
    • 127. iOS 9 Interview Questions

      29:05
13 students are watching this class

Project Description

Class Projects and Warm Ups

All Source Code & Assets

Warm Up 1: Section 3

Requirements:

  1. Create a new Xcode project - choose a Single View Application for iOS
  2. Turn off Landscape Right and Landscape Left. Turn on Upside Down and Portrait
  3. Click your storyboard and drag a UILabel onto the storyboard.
  4. Make the text on the label say, "Hello, world!"
  5. Choose any iPhone simulator and then click the Run button to run your app

The End Result:

Your app should run and have a label on the screen that says, "Hello, world!"

Warm Up 2: Section 4

Create a function called isEven that takes one parameter of type Int.

Determine if that number is even or odd. If the number is even return true, otherwise return false.

Call the function and pass in an even number and print the result.

Call the function again and pass in an odd number and print the result.

Warm Up 3: Section 5

  • Create a loop that iterates 200 times starting at 1
  • If the value of the current iteration is a multiple of 3 print the word "Boo"
  • If the value of the current iteration is a multiple of 5 print the word "Ya"
  • If the value of the current iteration is a multiple of 3 AND a multiple of 5 print the word "BooYa"

Project 1: Building an iOS App on Your Own

(related lessons Section 2)

Overview
You are going to build an app similar to the Boom App in the video. Use the instructional video for help as your are building your application.

Requirements:

  • Build this app for and using the iPhone 6 simulator
  • Grab two images (or make your own) from the Internet, one that is Red and one that is Blue
  • Put those two images on the screen in the storyboard
  • Put two buttons on the screen/storyboard
  • The first button should say, "Hide Blue"
  • The second button should say, "Hide Red"
  • If the red button is pressed the red image should hide
  • If the blue button is pressed the blue image should hide
  • Turn off support for Landscape Left and Landscape Right and turn on support for Upside Down and Portrait

End Result

If you've built the app correctly, when you press the Run button to run your app on the simulator, you should see a red image, a blue image, and two buttons. Tapping the buttons once each will hide each corresponding image. You will have to restart the app from Xcode to see those images again.

Your final app could look similar to this:

4caf4171

See File: Section 02 Exercise 01 Solution (70.8 kB) 

Project 2: Variable Operations 
(related lessons Section 2)

Simple Math Operations In Swift

Using Swift and an Xcode Playground you are going to perform some simple math operations.

Requirements:

  1. Create a variable with a name of your choosing that has a value of 15
  2. Create a 2nd variable with a name of your choosing that has a value of 5
  3. Create a 3rd variable that stores that sum of the 1st and 2nd variables (20 should print to the screen)
  4. Create a 4th variable that stores the result of a multiplication operation - the stored result should be equal to 45
  5. Create a 5th variable that stores the result of the 1st variable minus the 2nd variable - the result should be 10
  6. Create a 6th variable that stores the result of the 1st variable divided by the 2nd variable - the result should be 3
  7. Create 3 new variables of any name and of any value, but all on the same line
  8. Create 3 constants (let) of any name and of any value, but all on the same line
  9. Create an explicit variable of any name of type Double and don't give it any value
  10. Create another explicit variable of any name of type Int but DO give it an initial value of 423
  11. Create a variable of type String with a value of "Hello"
  12. Create another variable of type String with a value of "World"
  13. Create a 3rd variable to store the result of concatenating the first two strings (using the + symbol)
  14. Using that 3rd variable again, store the result of concatenating the first two string but instead using "\(someVar)" syntax

See File: Section 01 Exercise 02 Solution Playground (7.9 kB) 

Project 3: Functions
(related lessons Section 3)

Requirements:

  1. Create a new Xcode Playground
  2. Create a function named add that takes two parameters of type Double and returns the sum of the two numbers
  3. Create a function named subtract that takes two parameters of type Int and returns the difference of the two numbers
  4. Create a function named multiply that takes two parameters of type Float and returns the product of the two numbers
  5. Create a function named divide that takes two parameters of type Double and returns the result of dividing the first parameter by the second
  6. Call those functions and pass different values into the parameters - ensure they are producing the correct results

See File: Exercise Functions Solution Playground (7.6 kB)

Project 4: Auto Layout
(related lessons Section 3)

Use the video on Auto Layout to solve this exercise. Build a layout that looks like these images on the various screen sizes:

92a3934c

Use whatever colors you want. You will want to use constraints to achieve the desired result. There is more than one way to do this.

See File: Exercise Layout Constraints Solution (54.4 kB)

Project 5: Multiples App
(Exercise video)

See Exercise - Multiples App in Section 3

See Files:
Exercise 05 Art (66.2 kB)
Exercise 05 Multiples Source (124.7 kB)

Project 6: Arrays & Loops
(related lessons Section 4)

  1. Create an empty array of type Int called oddNumbers
  2. Using a standard for loop add all odd numbers less than or equal to 100 to the oddNumbers array
  3. Create a second array called sums of type Int
  4. Using a for each loop, iterate through oddNumbers array and add the current iteration value + 5 to the sums array
  5. Using a repeat while loop, iterate through the sums array and print "The sum is: x" where x is the current value of the iteration (ie The sum is: 15)

In the end, if done correctly, the sums array should print as follows:

eea26f83

See File: Exercise Arrays Loops Solution Playground (8.1 kB)

Project 7: Stack Views
(related lessons 4)

Build a layout that looks identical to this using stack views:

d32eb787

The graphic files are attached in the resources section.

Attribution:

See Files:
Stackview Exercise Graphics (104.0 kB)
Stackview Exercise Solution (168.8 kB)

Project 8: Enhancing our Calculator
(Exercise video)

See Exercise - Enhancing our Calculator

See File: Retro Calc Exercise Graphics (196.1 kB)

Project 9: Enhancing Your Gigapet
(related lessons Section 5)

Let's take our barely functional Gigapet and make it better!

Requirements:

  • Create a way to restart the game (replay button or your choice) when the Gigapet dies - he should get full health, and come back to life (find your own graphic for this button)
  • Create a view that only loads when the app first starts that allows you to pick between two characters (use the attached graphical resources for that). Whatever character picked is the one that is used in the game until the app is closed and re-opened
  • Create a 3rd item that the Gigapet needs randomly - obedience - find your own graphic for this item
  • Based on which character is selected change the scenery to match that character (pick your own graphics from the attached graphical resources)

See Files: 
Assets Scenery (1.5 MB)
Assets Characters (8.3 MB)

Project 10: Size Classes
(related lessons Section 6)

Use Auto Layout & Size Classes to create the following layouts:

iPad Landscape

 

ipad-land.png

iPhone Landscape (All phones - should not cut off views)

 

6land.png

Portrait - All iPhones and all iPads in Portrait

 

portrait-all-devices.png

Project 11: No Storyboards
(related lessons Section 6)

Create an app without storyboards (from memory if possible!)

  • Must have 3 view controllers
  • Must not use storyboards (launch screen storyboard is fine)
  • App Delegate must load first view controller
  • First view controller must programmatically load the 2nd view controller (You can use IBAction if you want)
  • The second view controller must programmatically load the 3rd view controller (You can use IBAction if you want)
  • The second and third view controllers should have a back button that takes the user to the previous view controller

Project 12: Your Own Favorite Place
(related lessons Section 6)

Create your own version of Favorite Place that is actually about your favorite place!!

Requirements

  • Must have a main screen that has a full screen image of your favorite place
  • Main screen must have two buttons or controls that can take you to two different view controllers
    • The first button should be entitled, "About [my place]" (ie About Yucca Valley)
    • The second button should be entitled "Photos"
  • The About My Place screen should have at least:
    • One photo of the place strategically placed (wherever you want)
    • Population
    • Brief history
    • Description
    • Things to do
    • Back button to go back to main screen
  • The Photos view controller should have at least:
    • 5 UIImageViews with photos of that place
    • And a back button to take you back to main screen
  • All screens must support:
    • Portrait
    • Landscape
    • iPad
  • Use Size Classes to make sure your app looks good on all screen sizes
  • Submit exercise to github
  • Post screenshots/github links of finished work here:http://community.devslopes.com/category/25/student...

For design inspiration see here:

https://www.pinterest.com/johnpozy/ios-app-design-...

Project 13: Favorite Movies
(related lessons Section 7)

Create an app that shows a list of your favorite movies

Requirements

  • Create your own logo for this app (You can use http://textcraft.net/ if desired)
  • The main screen/view controller will show a list of your favorite movies
    • Each Table Cell will show an image with rounded corners, a title, a description of why you like the movie, and a link to the movie on IMDB
  • When you click a list item it will take you to the details view controller
  • The details view controller:
    • Will show a bigger image of your favorite movie, your title, your description, the imdb link, and an additional field that shows the plot of the movie as provided by IMDB
    • Will have a back button
    • The fields on this screen are not editable
  • There will be an "Add" or "+" button on the main screen that allows you to add a new favorite movie
  • The new favorite movie screen/view controller:
    • Will allow the user to enter a title, a description, the IMDB url, the IMDB plot description, and an image
    • It will have a save button to save the movie
    • It will have a cancel button to take you back to the main screen
  • When you add a new movie it shows up instantly on the list on the main screen
  • You can choose between NSUserDefaults or Core Data to store your data
  • Submit the finished app to Github
  • Post screenshots/github links of finished work here: http://community.devslopes.com/category/25/student...
  • Make sure to use colors and style your app

Here are some links for design inspiration:

Here is the IMDB website url:

http://www.imdb.com/

 

Project 14: Weather App
(related lessons Section 9)

Create your own weather app that displays the current weather for today.

Requirements:

The end result might look like this:

weather-app-iphone.jpg

Weather-App-large.jpg

Project 15: Expanding Your Social Network App
(Exercise video)

See video "Expanding Your Social Network App"

Project 16: Submit Your App to the App Store!!!(related lessons Section 12)

SUBMIT ONE OF YOUR APPS TO THE APP STORE!!! :D

All Source Code & Assets

Student Projects

1 comment
Stephen Suratos