Day(s) | Challenge / Milestone | Swift Language & Frameworks |
---|---|---|
16-18 | Project01 Storm Viewer |
Xcode, Interface Builder, Type Casting. Foundation: Array Bundle FileManager String UIKit: UIImage UIImageView UINavigationBar UINavigationController UINavigationItem UITableView UITableViewCell UITableViewController |
19-21 | Project02 Guess the Flag |
Asset catalogs, @2x and @3x images. Core Animation: Modifying the Layer’s Appearance CALayer .borderColor .borderWidth Foundation: Array random numbers String UIKit: Actions Auto Layout constraints UIAlertController UIColor UIImage UIImageView Configuring a View’s Visual Appearance UIView .layer |
22-22 | Project03-C1 Storm Viewer with Sharing |
Info.plist, @objc, Photo Library Core Animation: CALayer Foundation: Array String UIKit: Actions Auto Layout constraints UIActivityViewController UIAlertController UIBarButtonItem UIImage UIImageView UINavigationBar UINavigationItem |
22-22 | Project03-C2 Storm Viewer with Recommendations |
Project01 + UIKit: Actions UIActivityViewController UIBarButtonItem UINavigationItem |
22-22 | Project03-C3 Guess the Flag with Message Score |
Project02 + UIKit: Actions UIActivityViewController UIBarButtonItem UINavigationItem |
Day(s) | Challenge / Milestone | Swift Language & Frameworks |
---|---|---|
23-23 | Milestone-P01-03 World Flags |
Days 16-22 |
Day(s) | Challenge / Milestone | Swift Language & Frameworks |
---|---|---|
24-26 | Project04-C2 Easy Browser |
Delegation, Key-value observing (KVO). Foundation: URL URLRequest UIKit: UIBarbuttonItem UINavigationBar UINavigationController UINavigationItem UIProgressView UIToolbar WebKit: WKNavigation WKNavigationDelegate WKWebView |
24-26 | Project04-C3 Easy Browser with table view |
Project04-C2 + UIKit: UITableView UITableViewCell UITableViewController |
27-29 | Project05 Word Scramble |
Closures: Weak references Foundation: NSNotFound NSString .components(separatedBy:) NSRange String .firstIndex(of:) init(contentsOf:) .remove(at:) UIKit: UITableView .insertRows(at:with:) .reloadData() UITextChecker .rangeOfMisspelledWord(...) |
30-30 | Project06a World Flag with Landscape View |
Project02 + Auto Layout: Aspect ratio constraints. |
30-31 | Project06b Auto Layout |
Programatically Auto Layout: Auto Layout Visual Format Language (VFL) technology with constraints metrics and priorities. Anchor technology. UIKit: NSLayoutAnchor NSLayoutConstraint .constraints(withVisualFormat:options:metrics:views:) NSLayoutDimension .constraint(equalTo) NSLayoutYAxisAnchor UIView .addConstraints(_:) .addSubview() .heightAnchor .safeAreaLayoutGuide .sizeToFit() .translatesAutoresizingMaskIntoConstraints .topAnchor .widthAnchor |
Day(s) | Challenge / Milestone | Swift Language & Frameworks |
---|---|---|
32-32 | Milestone-P04-06 Shopping List |
Days 24-31 |
Day(s) | Challenge / Milestone | Swift Language & Frameworks |
---|---|---|
33-35 | Project07 Whitehouse Petitions |
JSON. Foundation: Codable Data UIKit: UIStoryboard UITabBarController Specifying Content for Standard Cell Styles UITableCell .detailTextLabel WebKit: Loading content WKWebView .loadHTMLString(_:·baseURL:) |
36-38 | Project08 Swifty Words |
Text alignment, Layout margins. Core Animation: Modifying the Layer’s Appearance CALayer .borderColor .borderWidth Foundation: Iterating Over an Array's Elements Array .enumerated() Dividing Strings NSString .trimmingCharacters(in:) Replacing Substrings NSString .replacingOccurrences(of:, with:) UIKit: Activate and Desactivate Constraints NSLayoutConstraint .activate() Configuring the Button Title UIButon .setTitle(_:for:) Accessing the Control’s Targets and Actions UIControl .addTarget(_:·action:for:) Creating System Fonts UIFont .systemFont(ofSize:) Accessing the Text Attributes UILable .textAlignment Accessing the Text Attributes UITextFiled .placeholder Configuring a View’s Visual Appearance UIView.isHidden Managing the View Hierarchy UIView .addSubview() Getting the Safe Area UIView .safeAreaLayoutGuide Managing the View’s Constraints UIView .addConstraints(_:) Creating Constraints Using Layout Anchors UIView .heightAnchor .topAnchor .widthAnchor Configuring the Resizing Behavior UIView .sizeToFit() Laying out Subviews UIView .translatesAutoresizingMaskIntoConstraints |