The Swift Arcade Professional iOS Development Course UIKit

Everything you need to transition from hobbyist to professional iOS developer
The Swift Arcade Professional iOS Development Course UIKit
File Size :
18.81 GB
Total length :
17h 11m



Jonathan Rasmusson


Last update




The Swift Arcade Professional iOS Development Course UIKit

What you’ll learn

How to build professional looking iOS apps programatically using UIKit
Version control with Git
High-level understanding of Agile
Essential software engineering skills like unit testing and refactoring
How to land your first professional iOS job

The Swift Arcade Professional iOS Development Course UIKit


Mac computer
Basic iOS programming knowledge


Joining a company and starting work as an iOS engineer can initially feel overwhelming. Techniques we used for introductory iOS app aren’t there. People seem to expect you to know everything about core Apple frameworks like UIKit.And there are just certain key practices everyone is going to expect you to be able to apply, which initially can seem really confusing, and everything can just feel overwhelming.Not any more.This course was created to help you make the transition from iOS hobbyist to working professionally.Working professionally as an iOS engineer means:Knowing how to build apps programmatically without storyboardsUnderstanding the fundamentals of Auto Layout and UIKitBeing able to use version control and create pull requests using tools such as gitUnderstand the basics of AgileBeing comfortable modern software engineering practices like unit testing and refactoringKnowing the design patterns and idioms professional iOS developers use when writing professional codeThis course will not only equip you with these essential skills, you will get to apply them on real life work examples and problems, all pulled from my experiences working as a professional iOS engineer on real world jobs.By the end of this course you will:Be able to work professionally as an iOS engineerHave the confidence to join any teamPossess the skills and tools necessary to hit the ground running when you land your first professional iOS jobAnd who am I? My name is Jonathan Rasmusson. I am a professional ex-Spotify iOS engineer who built the Spotify iMessaging app. I have authored several books on software delivery, and produce the YouTube channel The Swift Arcade. I will be your instructor for the course.What are you waiting for? Come on in, and let’s begin your journey to a high paying, rewarding career as an iOS professional today.What others are saying about this course:One of the best courses on Udemy, you will learn a lot even if you are an experienced iOS developer, I really recommend it.The best iOS course out there. The stuff he teaches is super relevant and to make everything from scratch, literally without even storyboards was amazing. There were so many concepts with which I used to struggle with and he taught them with ease. I am really glad I took this course. Keep making amazing videos Jonathan. You have a follower here :)If you wanna get things right? get this course. Getting things right is a huge part of your job as a professional iOS developer. There are many courses out there that teach you how develop iOS apps but they also teach you bad habits that you will need to correct in the future. So if you wanna save time and learn correctly from the start I would recommend this course to the moon and back.I really enjoy how the instructor has attitude to a student. Listening and watching it is just the honey on my heart. Additional the knowledge of instructor is amazing which it’s multiply the experience :)I’ve purchased dozens of courses on Udemy, and Jon truly stands out as an instructor. He makes the content engaging and skillfully explains the nuances and subtle details of the implementation. His enthusiasm for the material distinguishes him as someone who is not only competent in the subject matter but also adept at teaching.Excellent lessons! I have fairly extensive Swift experience, but I’m learning so much to improve the quality and professionalism of my code.I found this course through the Swift Arcade YouTube channel. For the longest time I had been looking for a course to really show me how to develop an iOS app similarly to how you would working for a software company. Jonathan goes over things such as consistently using git to save and host your work, using vi for editing, etc. all while building a variety of features for an iOS app. While I am not a beginner at iOS development, I had some knowledge gaps to fill and I am 100% satisfied with how this course helped in filling those gaps. I am now feeling much more confident moving forward in obtaining that first iOS developer job. Big thank you to Jonathan for this iOS professional course. I’d love to see more content like this in the future.I’m still studying for my first iOS job and this course was great to give me a broader view of what to expect to work more professionally. Jonathan has an amazing methodology, many times throughout the course I had a question or was wondering about something he came with the explanation soon after, like he could read my mind xD Now I will try to apply all this knowledge to my personal projects, Thanks !John’s explanations are great; he gives a practical approach to iOS development. Git, programmatic UIKit, practical use of several common elements and also his professional insight from years of experience in the field are all appreciated here.


Section 1: Introduction

Lecture 1 Course overview

Lecture 2 Source code

Section 2: Professional iOS setup

Lecture 3 How to download Xcode like a pro

Lecture 4 How to support multiple versions of Xcode

Lecture 5 How to setup your own GitHub repository

Lecture 6 GitHub Text Setup

Lecture 7 Getting your personal token

Lecture 8 How to download and setup the GitHubCLI

Lecture 9 Setting up Oh My Zsh

Lecture 10 What we’ve learned

Lecture 11 My number one tip for becoming a better iOS developer

Section 3: Agile

Lecture 12 What is Agile software delivery and how does it work

Section 4: Bankey – Login

Lecture 13 What you are going to build

Lecture 14 How to create a new iOS project without storyboards

Lecture 15 Creating the LoginView

Lecture 16 Boosting productivity with Code Snippets

Lecture 17 Adding the text field

Lecture 18 Enter the stack view

Lecture 19 Adding the divider

Lecture 20 Adding the sign-in button

Lecture 21 Adding the error message label

Lecture 22 Handling login

Lecture 23 Missing title labels

Lecture 24 Saving our work

Lecture 25 What we’ve learned

Lecture 26 Professional Tip #2

Section 5: Onboarding – Part I

Lecture 27 What you are going to build

Lecture 28 The Agile storyboard

Lecture 29 What is onboarding and how does it work?

Lecture 30 Creating the container view controller

Lecture 31 Not all art is created equal

Lecture 32 How to import and configure vector based graphics

Lecture 33 Boss Challenge!!!

Lecture 34 Adding the close button

Lecture 35 Houston we have a problem

Section 6: Onboarding – Part II

Lecture 36 Setting the stage

Lecture 37 What is the protocol-delegate pattern and how does it work?

Lecture 38 Protocol-delegate in action

Lecture 39 How to transition between view controllers like a pro

Lecture 40 Logging out

Lecture 41 Onboarding once in memory

Lecture 42 Onboarding once with UserDefaults

Lecture 43 Synchronized no longer required

Lecture 44 What we’ve learned

Lecture 45 Professional Tip #3

Lecture 46 iOS New Feature Checklist

Section 7: Container View Controllers

Lecture 47 Introduction

Lecture 48 What are container view controllers?

Lecture 49 How do UINavigationControllers work?

Lecture 50 How do UITabBarControllers work?

Lecture 51 How does a UIPageViewController work?

Lecture 52 Adding the tab bar

Lecture 53 Fixing the deprecation

Lecture 54 Professional Tip #4

Section 8: Scrollable View Controllers

Lecture 55 Making things scrollable

Lecture 56 The UIScrollView

Lecture 57 The UICollectionView

Lecture 58 The UITableView

Lecture 59 Which to choose and when

Lecture 60 Learn more

Section 9: Account Summary Header

Lecture 61 How to create a git branch

Lecture 62 Creating the view controller

Lecture 63 Adding the table view

Lecture 64 Adding the table view header

Lecture 65 Styling the header with stack views

Lecture 66 Content-Hugging-Compression-Resistance (CHCR)

Section 10: Account Summary Cell

Lecture 67 Adding the table view cell

Lecture 68 Doing the cell design

Lecture 69 Doing the the layout

Lecture 70 How to make things pretty with NSAtrributedString

Lecture 71 How to save your work incrementally

Lecture 72 Meet the View Model

Lecture 73 How to leverage enums

Lecture 74 Dealing with the decimal

Lecture 75 Why isn’t my currency matching yours?

Lecture 76 Setting the tab bar background color

Lecture 77 What we’ve learned

Lecture 78 Professional Tip #5

Section 11: Introduction to Unit Testing

Lecture 79 What are unit tests?

Lecture 80 How to add unit tests to an existing project

Lecture 81 Testing the CurrencyFormatter

Lecture 82 How unit testing affects your code

Lecture 83 How to squash and rebase in git

Lecture 84 Getting back into our flow

Section 12: Communication over long distances with NotificationCenter

Lecture 85 What is notification center and how does it work?

Lecture 86 Adding the logout button

Lecture 87 Hooking up NotificationCenter

Lecture 88 Showing the password

Lecture 89 How to dynamically adjusting the font to fit the view

Lecture 90 What we’ve learned

Section 13: Animating with Auto Layout Constraints

Lecture 91 What you are going to build

Lecture 92 Overview of UIKit animation

Lecture 93 Animating constraints demo

Lecture 94 Animating constraints in action

Lecture 95 How to string multiple animations together

Lecture 96 How to animate the transparency of a view

Section 14: Animating with Core Animation

Lecture 97 Introduction to Core Animation

Lecture 98 Animating the sign-in button

Lecture 99 Shakey bell animation setup

Lecture 100 Animating in a test rig

Lecture 101 Animation mechanics

Lecture 102 Shaking the bell

Lecture 103 Adding the badge

Lecture 104 What we’ve learned

Section 15: Networking

Lecture 105 What you are going to learn

Lecture 106 How does networking work?

Lecture 107 Networking in playgrounds

Lecture 108 The power of Codable

Lecture 109 URLSession explained

Lecture 110 The beauty of Result

Lecture 111 Fetch account challenge

Lecture 112 Making the header configurable

Lecture 113 Fetching profile data

Lecture 114 Getting back onto the main thread

Lecture 115 Functional programming with accounts

Lecture 116 Adding unit tests

Lecture 117 What we’ve learned

Section 16: Affordances

Lecture 118 How to make your apps look professional and easy to use

Lecture 119 How to group network calls together

Lecture 120 Adding DispatchGroup to Bankey

Lecture 121 What is pull-to-refresh?

Lecture 122 How does pull-to-refresh work?

Lecture 123 Adding pull-to-refresh to Bankey

Lecture 124 What are skeleton loaders?

Lecture 125 How do skeleton loaders work?

Lecture 126 Adding skeleton loaders to Bankey

Lecture 127 Adding skeleton loaders to table view

Lecture 128 Adding skeleton loaders to pull-to-refresh

Lecture 129 What we’ve learned

Section 17: Error handling

Lecture 130 What you are going to learn

Lecture 131 The problem

Lecture 132 How to force a network failures in your app

Lecture 133 Adding the alert controller

Lecture 134 How to make your code a joy to read

Lecture 135 How to unit test network failures

Lecture 136 What exactly is dependency-injection?

Lecture 137 Adding the protocol

Lecture 138 Adding the protocol with the implementation

Lecture 139 Adding a view controller unit test

Lecture 140 How to unit test a view controller?

Lecture 141 Unit testing the alert controller

Lecture 142 Unit testing take-aways

Section 18: Essential Git

Lecture 143 How to create a branch

Lecture 144 Essential Vi commands

Lecture 145 How to write a good commit message

Lecture 146 How to reset your branch

Lecture 147 How to squash and rebase

Lecture 148 What’s the difference between git merge and rebase?

Lecture 149 What is a merge or pull request?

Section 19: Things worth knowing

Lecture 150 Stack vs Heap

Section 20: How to land your first professional job

Lecture 151 What you are going to learn

Lecture 152 How to advertise yourself

Lecture 153 What to put on your resume

Lecture 154 No experience? No problem.

Lecture 155 Types of questions you may be asked

Section 21: NEW – Password Reset Component

Lecture 156 What you are going to learn

Lecture 157 New project – no storyboards

Lecture 158 How should we do this layout?

Lecture 159 Creating the view

Lecture 160 Adding the lock image

Lecture 161 Adding the text field

Lecture 162 Adding the eye button

Lecture 163 Fixing the CHCR

Lecture 164 Adding the divider

Lecture 165 How to choose the right iOS color

Lecture 166 Adding the error label

Lecture 167 How to deal with long text

Lecture 168 Embedding the stack view

Lecture 169 Reveal

Section 22: Building the PasswordCriteriaView

Lecture 170 What you are going to build

Lecture 171 How would you build this component?

Lecture 172 Creating the criteria view

Lecture 173 Challenge: Adding the stack view

Lecture 174 Adding the image

Lecture 175 Adding the label

Lecture 176 Professional Tip #6

Section 23: Build the PasswordStatusView

Lecture 177 Creating the status view

Lecture 178 Adding the stack view

Lecture 179 Keeping things real by checking the criteria

Lecture 180 Four different ways of dealing with ambiguity in stack views

Lecture 181 Adding the label

Lecture 182 Final touches

Section 24: Inline interactions

Lecture 183 What you are going to learn in this section

Lecture 184 Demo of the component you are going to build

Lecture 185 How to text interactions work?

Lecture 186 Setting up our sandbox

Lecture 187 Meet the UITextField

Lecture 188 Enter the Responder Chain

Lecture 189 Receiving the text just-in-time

Lecture 190 How to talk back to the view controller

Lecture 191 Updating the status view

Lecture 192 To reset or to not reset

Lecture 193 Handling uppercase

Lecture 194 Challenge: Handling lowercase and digits

Lecture 195 Boss Challenge: Special characters

Lecture 196 Let’s save our work

Lecture 197 Wrapping up this section

Section 25: Loss of focus interactions

Lecture 198 What you are going to learn in this section

Lecture 199 Demo of how loss of interactions work

Lecture 200 How to detect a loss of focus

Lecture 201 How to dismiss the keyboard with a tap gesture

Lecture 202 Talking back via the protocol-delegate

Lecture 203 How the custom validation is going to work

Lecture 204 Swift functions as types

Lecture 205 Challenge: Swift functions

Lecture 206 Adding the typealias

Lecture 207 Checking for empty text

Lecture 208 Checking for valid characters

Lecture 209 How to make sure all the criteria have been met

Lecture 210 Hitting pause

Lecture 211 Adding the confirm password validation

Lecture 212 Saving your work

Lecture 213 Professional Tip #7

Section 26: Dealing with keyboards

Lecture 214 What you are going to learn in this section

Lecture 215 The problem with keyboards

Lecture 216 How to detect the keyboards presense

Lecture 217 How to update your view like a pro

Lecture 218 How to detect which elements are hidden

Lecture 219 How to determine if our text hidden is hidden

Lecture 220 How to convert from one coordinate system to another

Lecture 221 How to elegantly shift everything up

Lecture 222 Hooking up the reset button

Section 27: Advanced unit testing with Password Reset

Lecture 223 What you are going to learn in this section

Lecture 224 Practice adding unit tests to your existing project

Lecture 225 Where to begin when writing unit tests

Lecture 226 How to group tests logically

Lecture 227 How to group tests by context

Lecture 228 Boss Challenge: Unit testing three of four

Lecture 229 Unit testing view controllers

Lecture 230 Changing the context

Lecture 231 How to unit test alerts

Lecture 232 Discussion: The pros and cons of coupling

Lecture 233 Wrapping up this section

Lecture 234 Professional Tip #8

Section 28: Additional resources

Lecture 235 Additional resource #1

Lecture 236 Additional resource #2

Lecture 237 Additional resource #3

Lecture 238 Until next time

Intermediate iOS developers looking for the skills necessary to work professionally as an iOS engineer

Course Information:

Udemy | English | 17h 11m | 18.81 GB
Created by: Jonathan Rasmusson

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top