In this course you can learn about iOS 16, Swift 5, iOS App Development using UIKit & SwiftUI and latest frameworks from Apple, best engineering and industry practices on how to develop iOS apps that scale.
The course has 170+ downloadable Xcode project resources, 10+ live coding exercises, 4+ coding challenges, 5+ quizzes, 2 practice tests, 4+ iOS apps and 165+ course materials such as video course lectures, slides and external references to help solidify course materials.
The main focus of the course will be:
-
get familiar with iOS development environment: Xcode 14 and iOS 16
-
learn what’s new in iOS 16
-
learn fundamentals of Swift5
-
learn about Swift Charts
-
learn about CoreData & UserDefaults
-
learn how to build apps using Storyboards, SwiftUI and programmatically
-
master best engineering and industry practices related to iOS development
-
learn how to use popular iOS frameworks: Combine, MapKit, CoreLocation
-
get experience building apps with Networking using Alamofire and URLSession
-
learn how to build UI both using Autolayout and programmatically using PureLayout
-
get experience with design patterns such as MVC & MVVM
-
learn how to use Notifications & Delegates
-
learn how regular expressions in Swift 5.7 work
Swift is a powerful language that Apple recommends to use for iOS development. We will explore basics and fundamentals of Swift 5 language in addition to learning more advanced concepts in Swift 5.
We will learn through examples how to use important components of iOS (Table Views, Collection Views, Text Views, Buttons, Text Fields).
We will learn how to use the latest SwiftUI to build iOS apps. SwiftUI is a next generation tool developed by Apple that can be helpful to build iOS app fast in using responsive and declarative statements. Combine is one of the latest additions from Apple that can be used effectively in apps to react to different events.
One of the important best practices of development is to use unit tests. Hence, we will also learn how to write unit tests in iOS.
Swift 5 Fundamentals
Implement iOS app with UIKit and Storyboard to show table view (MagicTravel app)
-
4Constants, variables, operators
-
5Strings and Characters
-
6Strings: indices
-
7Strings: substrings
-
8Strings: comparison
-
9Strings and characters
-
10Collection Types: Introduction
-
11Collection Types: Arrays
-
12Arrays
Let's do some practice test to solidify your learning about arrays.
-
13Arrays: Part 1
-
14Arrays: Part 2
-
15Arrays: Part 3
-
16Collection Types: Sets
-
17Sets
This practice test will help you solidify your knowledge about Swift Sets and review materials learnt in the lectures.
-
18Sets Part1: Main Operations
-
19Sets Part2: Operations
-
20Sets Part 3: Membership and Equality
-
21Collection Types: Dictionaries
-
22Dictionaries: Part 1
-
23Dictionaries: Part 2
-
24Control flow: for loop
-
25Control flow: while loop
-
26Control flow: repeat while
-
27Control flow: if else conditional statements
-
28Control flow: switch statements
-
29Control flow: Switch, Part 1
-
30Functions: parameters, return types, multiple return types, arguments, inout
-
31Functions: nested functions, function types
-
32Optionals
-
33Closures: expressions, single expression, short-hand, operator method
-
34Closures: autoclosure, trailing closures, escaping closures
-
35Enumerations
-
36Classes and Structs
-
37Inheritance
-
38Protocols: Introduction
-
39Protocols: Delegates
-
40Protocols: Extensions
-
41Protocols: Synthesized Implementation
-
42Protocols: Types and Inheritance
-
43Protocols: Composition
-
44Protocols: Conformance Check
-
45Protocols: Optional protocol requirements
Coding Challenge (Assignment): UITableView
-
46What is MVC?
MVC is a design pattern that Apple recommends to use for iOS. In this lecture we will learn what is MVC and how it applies to iOS development.
-
47MVC
The quiz tests the knowledge about Model View Controller (MVC) and helps review the concepts learnt in the lectures.
-
48What is UITableView?
-
49Create a starting project (MagicTravel app)
-
50Adding UITableView to Storyboard and linking it to View Controller via IBOutlet
-
51UITableViewDataSource
-
52UITableViewCell
-
53Configuring table view cell and table view to show data
-
54Handle tapping on row / table view cell?
-
55Displaying additional data inside UITableViewCell
Navigation in UIKit based apps (MagicTravel app)
Coding Challenge: Navigation
Autolayout (MomentFan app)
Cocoa Pods (NYCSchools app)
App Structure & Organization
-
66What is Cocoa Pods?
-
67Installing Cocoa Pods in your system using Gem
-
68Installing Cocoa Pods in your system using HomeBrew
-
69Debugging & resolving CocoaPods installation error
-
70Create a new XCode project
-
71Fixing a "rvm" or "pod" command not found issue
-
72How to set up Cocoa Pods for Xcode project?
-
73PureLayout, SDWebImage, AlamoFire
Networking: Alamofire, Codable, Decodable, URL Components, URL Session
Design Patterns, Architecture, MVVM (NYCSchools app)
-
76NYC Schools Open Data APIs
-
77Setup Networking/Data Layer service
-
78Setup Constants to hold your URL and other important information
-
79Data Error enum
-
80Codable & Decodable to parse incoming JSON data
-
81HTTP
-
82Networking using iOS standard services: URLComponent and URLSession (part 1)
-
83Networking using Apple standard services (part 2)
-
84Networking using Apple Standard service (part 3)
-
85AlamoreFire: how to make a networking call using AF library (part1)
-
86AlamoFire: using Decodable to parse data in the response (part2)
-
87JSON format
-
88Completion callbacks / closures