WKWebView, URL, URLRequest, UIToolbar, UIProgressView, KVO (Key-Value Observing) design pattern (not sure if this is an optimal design for most cases, though), WKNavigationDelegate, classes (instances passed by reference) vs structs (instances passed by copy), class inheritance and protocol conformance
string methods, NSRange, UITextChecker, lowercased(), IndexPath, anagrams, inserting rows into tables without reloading, UIAlertController text fields, constants can be declared w/o a value, as long as it’s set before use
Grand Central Dispatch, async(), DispatchQueue.main, Quality of Service, global(), performSelector(inBackground:), never do UI work on a background thread
UICollectionView, UICollectionViewCell, UICollectionViewDelegate, UICollectionViewDataSource, UIImagePickerController, UUID, Custom NSObject Classes, URLs for app directories, writing JPEG data to disk
Swifty switch/case statements, animate(withDuration:), CGAffineTransform, view.transform, changing animatable properties of UIViews within an animation closure
Timer, SKNode, SKAction.follow() and its awesome orientToPath option, motionBegan(), prefersStatusBarHidden, Timer.invalidate(), colorBlendFactor for SKSpriteNodes
Using the KeychainAccess library, resignFirstResponder(), NotificationCenter, UIApplication.willResignActiveNotification, LocalAuthentication, LAContext, canEvaluatePolicy(), .deviceOwnerAuthenticationWithBiometrics, evaluatePolicy(), privacy for Touch ID & Face ID, simulating Face ID with the Simulator
Int.random(in:), Float.random(in:), Double.random(in:), CGFloat.random(in:), Bool.random(), arc4random(), GKRandomSource.sharedRandom(), GKLinearCongruentialRandomSource, GKMersenneTwisterRandomSource, GKARC4RandomSource, GKRandomDistribution, GKShuffledDistribution, GKGaussianDistribution, Fisher-Yates Algorithm, arrayByShufflingObjects(in:), the importance of being able to seed the source of randomness 🌱
scale modes, parallax scrolling, SpriteKit Physics, SKPhysicsContactDelegate, SKPhysicsBody, SKAudioNode, managing game state with enums, restarting entire game scenes
All about Core Data 💪, NSFetchRequest, NSManagedObject, NSManagedObjectContext, NSPredicate, NSSortDescriptor, NSFetchedResultsController, ISO8601DateFormatter, Core Data relationships and attribute constraints
XCTest, Test-Driven Development in iOS, XCTestCase, setting a baseline, measure() NSCountedSet, XCUIApplication(), XCUIElementQuery, UI test recording, Continuous Integration with Xcode Server
Project Portfolio
Beginner 🐣
Introduction to Swift
Storm Viewer
super
, viewDidLoad(), FileManager, app bundles,try-catch
blocks, Storyboards & Interface Builder, UITableView, UITableViewDelegate, UITableViewDataSource, UIImageView, UIImage, UIButton, Auto Layout, Outlets & Actions, UINavigationController, view stackingGuess the Flag
#selector
&@objc
, Info.plist, privacy & permissionsEasy Browser
Word Scramble
Auto Layout
Guess The Flag V2
Near Earth Objects
Seven Swifty Words
Grand Central Dispatch
Names to Faces
Pachinko
Saving User Defaults & Data: NSCoding
Saving User Defaults & Data: Codeable
Instafilter
Whack-a-Penguin
Core Animation
Intermediate 🐥
Safari Extension & JavaScript Injection
Swifty Ninja
Debugging
print
,assert
, breakpoints, visual debugging, conditional breakpoints, lldb printing and expressionsCapital Cities
Fireworks Night
orientToPath
option, motionBegan(), prefersStatusBarHidden, Timer.invalidate(), colorBlendFactor for SKSpriteNodesLocal Notifications
Detect-A-Beacon
uuidgen
, CLBeaconRegion, CLProximitySpace Race
Swift Extensions
mutating
methods, Protocol-Oriented programming,Self
vsself
, conventions regarding methods (generally, verbs) vs computed properties (generally, nouns/state), ExSwiftPhoto Share
Marble Maze
Core Graphics
Secret Swift
Exploding Monkeys
stride
to create a sequence of evenly-spaced numbers 💥, HSB FTW 🎨Instruments
Advanced 🦅
Multibrowser
StackView.removeArrangedSubview
alongsideWKWebView.removeFromSuperview
Swift Searcher
CSSearchableItemActionType
activity during app startup to handle CoreSpotlight search hitsName That Tune
Four in a Row
Random Numbers
Crashy Plane
WatchKit ESP Tester
Github Commits (Core Data)
Unit testing with XCTest
measure()
NSCountedSet, XCUIApplication(), XCUIElementQuery, UI test recording, Continuous Integration with Xcode ServerChallenges 🥅
Fizz Buzz
World Flags
Hangman
Storm Viewer 2 (Collection View)
Country Facts
Imitation Apple Notes App
Expanding on Extensions
Core Graphics Rainbow 🌈
Private Photos App