Day 16 / 17 - Folder: P01 StormViewer - Topics: view controllers, storyboards, FileManager class, UIImageView, UIImage, UITableView, UINavigationBar and more. - Has a number of images added to the bundle. - P01 StormViewer/../ViewController.swift - P01 StormViewer/../DetailViewController.swift
|
|
Day 18 - Folder: P01X StormViewer - Challenge changes from the StormViewer project and interface builder updates, array sorting. - P01X StormViewer/../ViewController.swift - P01X StormViewer/../DetailViewController.swift
|
|
Day 19 / 20 - Folder: P02 GuessTheFlag - Topics: Asset catalogs, buttons, colors, array shuffling, random number generation, @IBAction and UIAlertController. - P02 GuessTheFlag/../ViewController.swift
|
|
Day 21 - Folder: P02X GuessTheFlag - Challenge changes from the GuessTheFlag project, simple UI changes and a new UIAlertController. - P02X GuessTheFlag/../ViewController.swift
|
|
Day 22 - Folder: P03 StormViewerActivity (based on P01 StormViewer aka Project 1) - Topics: UIBarButtonItem and UIActivityViewController. - P03 StormViewerActivity/../ViewController.swift - P03 StormViewerActivity/../DetailViewController.swift |
|
Day 23 - Folder: X01 WorldFlagsViewer - Milestone project challenge covering projects 1 to 3. - X01 WorldFlagsViewer/../ViewController.swift - X01 WorldFlagsViewer/../DetailViewController.swift |
|
Day 24 / 25 - Folder: P04 SimpleBrowser - Topics: WKWebView, action sheets, UIProgressView, key-value observing and more. - P04 SimpleBrowser/../ViewController.swift |
|
Day 26 - Folder: P04X SimpleBrowser (based on P04 SimpleBrowser aka Project 4) - Challenge changes from the SimpleBrowser project, webView navigation and add a UITableView as a new initial screen. - P04X SimpleBrowser/../ViewController.swift - P04X SimpleBrowser/../ListViewController.swift |
|
Day 27 / 28 - Folder: P05 WordScrable - Topics: capture lists and reading files. - P05 WordScrable/../ViewController.swift |
|
Day 29 - Folder: P05X WordScrable (based on P05 WordScrable aka Project 5) - Challenge changes from the WordScrable project, refactoring and added UIAlertController etc. - P05X WordScrable/../ViewController.swift |
|
Day 30 - Folder: P06A GuessTheFlag (based on P02X GuessTheFlag aka Project 2) - Topics: aspect ratio constraints, Visual Format language and more. - P06A GuessTheFlag/../ViewController.swift |
|
Day 31 - Folder: P06B Autolayout - Folder: P06X AutoLayoutAnchors - Topics: advanced Visual Formatting Language and Auto Layout anchors. - Challenge changes from the Autolayout project, added further anchors etc. - P06B AutoLayout/../ViewController.swift - P06X AutoLayoutAnchors/../ViewController.swift |
|
Day 32 - Folder: X02 - Shopping List - challenge project. - Milestone project challenge. - X02 ShoppingList/../ViewController.swift |
|
Day 33 / 34 / 35 - Folder: P07 WhiteHousePetitions - Folder: P07X WhiteHousePetitions (based on P07 WhiteHousePetitions aka Project 7) - Topics: UITabBarController, Data, Codable, UITabBarController and UIStoryboard. - Challenge changes, add a new UIBarButtonItem + UIAlertController and filter results etc. - P07 WhiteHousePetitions/../AppDelegate.swift - P07 WhiteHousePetitions/../ViewController.swift - P07 WhiteHousePetitions/../DetailViewController.swift - P07 WhiteHousePetitions/../Petition.swift - P07 WhiteHousePetitions/../Petitions.swift - - P07X WhiteHousePetitions/../AppDelegate.swift - P07X WhiteHousePetitions/../ViewController.swift - P07X WhiteHousePetitions/../DetailViewController.swift - P07X WhiteHousePetitions/../Petition.swift - P07X WhiteHousePetitions/../Petitions.swift |
|
Day 36 / 37 / 38 - Folder: P08 SwiftyWords - Folder: P08X SwiftyWords (based on P08 SwiftyWords aka Project 8) - Topics: Text alignment, layout margins, UIFont, addTarget, enumerated, joined, replacingOccurences and more. - Challenge changes from P08 SwiftyWords, UI changes and game logic. - P08 SwiftyWords/../ViewController.swift - P08X SwiftyWords/../ViewController.swift |
|
Day 39 - Folder: P09A WhiteHousePetitions (based on P07X WhiteHousePetitions aka Project 7) - DispatchQueue.global - async, DispatchQueue.main.async - Folder: P09B WhiteHousePetitions (based on P07X WhiteHousePetitions aka Project 7) - PerformSelector - Topics: Grand Central Dispatch, quality of service queues, performSelector() and more. - An important video on GCD https://www.hackingwithswift.com/read/9/3/gcd-101-async - P09A WhiteHousePetitions/../AppDelegate.swift - P09A WhiteHousePetitions/../ViewController.swift - P09A WhiteHousePetitions/../DetailViewController.swift - P09A WhiteHousePetitions/../Petition.swift - P09A WhiteHousePetitions/../Petitions.swift - - P09B WhiteHousePetitions/../AppDelegate.swift - P09B WhiteHousePetitions/../ViewController.swift - P09B WhiteHousePetitions/../DetailViewController.swift - P09B WhiteHousePetitions/../Petition.swift - P09B WhiteHousePetitions/../Petitions.swift
|
|
Day 40 - Folder: P09X StormViewer (based on P01X StormViewer aka Project 1) - Folder: P09X SwiftyWords (based on P08X SwiftyWords aka Project 8) - Folder: P09X WhiteHousePetitions (based on P0X WhiteHousePetitions) - Challenge GCD changes to several projects. - P09X StormViewer/../ViewController.swift - P09X StormViewer/../DetailViewController.swift - - P09X SwiftyWords/../AppDelegate.swift - P09X SwiftyWords/../ViewController.swift - - P09X WhiteHousePetitions/../AppDelegate.swift - P09X WhiteHousePetitions/../ViewController.swift - P09X WhiteHousePetitions/../DetailViewController.swift - P09X WhiteHousePetitions/../Petition.swift - P09X WhiteHousePetitions/../Petitions.swift |
|
Day 41 - Folder: X03 Hangman - Milestone project challenge for Projects 7 to 9. - X03 Hangman/Hangman/ViewController.swift
|
|
Day 42 / 43 / 44 - Folder: P10 NamesToFaces - Folder: P10X NamesTofaces (based on P10 NamesToFaces aka Project 10) - Folder: P10X StormViewer - Topics: UICollectionView and UICollectionViewCell, UIImagePickerController, UUID, NSObject subclasses, and fatalError. - P10 NamesToFaces/../ViewController.swift - P10 NamesToFaces/../Person.swift - P10 NamesToFaces/../PersonCell.swift - - P10X NamesToFaces/../ViewController.swift - P10X NamesToFaces/../Person.swift - P10X NamesToFaces/../PersonCell.swift - - P10X StormViewer/../ViewController.swift - P10X StormViewer/../DetailViewController.swift - P10X StormViewer/../Storm.swift - P10X StormViewer/../StormCell.swift |
|
Day 45 / 46 / 47 - Folder: P11 Pachinko - Folder: P11X Pachinko (based on P11 Pachinko aka Project 11) - Topics: SpiteKit, SKSpriteNode and SKPhysicsBody - Challenge changes, use new images, position changes and game logic changes. - P11 Pachinko/../GameScene.swift - P11 Pachinko/../GameViewController.swift - - P11X Pachinko/../GameScene.swift - P11X Pachinko/../GameViewController.swift |
|
Day 48 / 49 - Folder: P12 UserDefaults - test project just showing some methods. - Folder: P12A NamesToFaces NSCoding (based on P10X NamesTofaces aka Project 10) - Folder: P12B NamesToFaces Codable (based on P10X NamesTofaces aka Project 10) - Folder: P12X StormViewer (based on P09X StormViewer aka Project 1) - Folder: P12X GuessTheFlag (based on P06A GuessTheFlag aka Project 2) - Folder: P12X WordScrable (based on P05X WordScrable aka Project 5) - Topics: UserDefaults, NSCoding (Objective C compatible), Codable (Not Objective C compatible), NSKeyedArchiver, NSKeyedUnarchiver, JSONEncoder and JSONDecoder - Challenge changes, update older projects and add UserDefaults. - P12 UserDefaults/../ViewController.swift - - P12A NamesToFaces NSCoding/../ViewController.swift - P12A NamesToFaces NSCoding/../Person.swift - P12A NamesToFaces NSCoding/../PersonCell.swift - - P12B NamesToFaces Codable/../ViewController.swift - P12B NamesToFaces Codable/../Person.swift - P12B NamesToFaces Codable/../PersonCell.swift - - P12X GuessTheFlag/../ViewController.swift - - P12X StormViewer/../ViewController.swift - P12X StormViewer/../DetailViewController.swift - P12X StormViewer/../Storm.swift - - P12X WordScrable/../ViewController.swift |
|
Day 50 - Folder: X04 CameraCaptions - Milestone project challenge projects 10 to 12. - X04 CameraCaptions/../ViewController.swift - X04 CameraCaptions/../DetailViewController.swift - X04 CameraCaptions/../Photo.swift |
|
Day 51 - Watching a couple of conference videos - https://www.youtube.com/watch?v=OgU8d_E1K14 - https://vimeo.com/291590798 |
|
Day 52 / 53 / 54 - Topics: UISlider while also getting some practice with UIImagePickerController and saving to iOS Photos. - Folder: P13 InstaFilter - Folder: P13X InstaFilter (based on P13 InstaFilter aka Project 13) - Challenge changes from P13 InstaFilter, additional slider for filter property and UI changes. - P13 InstaFilter/../ViewController.swift - P13X InstaFilter/../ViewController.swift |
|
Day 55 / 56 - Topics: SKCropNode, SKTexture, and more. - Folder: P14 Whack-A-Penguin - Folder: P14X Whack-A-Penguin (based on P14 Whack-A-Penguin aka Project 14) - Challenge changes from P14X Whack-A-Penguin, created a game over sound file, additional SKLabelNode and new SKEmitterNode for mud. - P14 WhackAPenguin/../GameScene.swift - P14 WhackAPenguin/../GameViewController.swift - P14 WhackAPenguin/../WhackSlot.swift - - P14X WhackAPenguin/../GameScene.swift - P14X WhackAPenguin/../GameViewController.swift - P14X WhackAPenguin/../WhackSlot.swift |
|
Day 57 / 58 - Topics: animate(withDuration:), CGAffineTransform, alpha, and more. - Folder: P15 Animation - Folder: P15X SwiftyWords (based on P09X SwiftyWords - aka Project 8) - Folder: P15X InstaFilter (based on P13X InstaFilter aka Project 13) - Folder: P15X GuessTheFlag (based on P06A GuessTheFlag aka Project 2) - Challenge changes, update older projects with animations. - P15 Animation/../ViewController.swift - P15X SwiftyWords/../ViewController.swift - P15X InstaFilter/../ViewController.swift - P15X GuessTheFlag/../ViewController.swift |
|
Day 59 - Folder: X05 CountryFacts - Milestone project challenge 13 to 15. - X05 CountryFacts/../ViewController.swift - X05 CountryFacts/../Countries.swift - X05 CountryFacts/../Country.swift - X05 CountryFacts/../DetailTableViewController.swift |
|
Day 60 / 61 - Topics: MKMapView, MKAnnotation, MKPinAnnotationView, CLLocationCoordinate2D, and more. - Folder: P16 CapitalCities - Folder: P16X CapitalCities (based on P16 CapitalCities) - Challenge changes, add webview for wiki details shown via annotationView. - P16 CapitalCities/../ViewController.swift - P16 CapitalCities/../Capital.swift - - P16X CapitalCities/../ViewController.swift - P16X CapitalCities/../Capital.swift - P16X CapitalCities/../DetailViewController.swift |
|
Day 62 / 63 - Topics: Pixel-perfect collision detection, advancing particle systems, Timer, linear and angular Damping, and more. - Folder: P17 Space Race - Folder: P17X Space Race (based on P17 Space Race) - Challenge changes, added game restrictions and difficulty. - P17 SpaceRace/../GameViewController.swift - P17 SpaceRace/../GameScene.swift - - P17X SpaceRace/../GameViewController.swift - P17X SpaceRace/../GameScene.swift |
|
Day 64 / 65 - Folder: P18 Debugging - Topics: Print, assert, breakpoints and view debugging. - Challenge, debugging and changing values of older projects (didn't commit). - P18 Debugging/../ViewController.swift |
|
Day 66 - Folder: X06 ShootingGallery - Milestone project challenge projects 16 to 18. - X06 ShootingGallery/../GameScene.swift - X06 ShootingGallery/../GameViewController.swift - X06 ShootingGallery/../SpriteNode.swift |
|
Day 67 / 68 / 69 - Topics: NSExtensionItem - creating a safari extension which runs JavaScript on a web page. - Folder: P19 SafariJavascriptInjection - Folder: P19X SafariJavascriptInjection (based on P19 SafariJavascriptInjection) - Challenge changes, add a table view to list scripts and use UserDefaults to store them, tap to run, disclosure to edit. - P19 SafariJavascriptInjection/../ViewController.swift - P19 SafariJavascriptInjection/../ActionViewController.swift - - P19X SafariJavascriptInjection/../ViewController.swift - P19X SafariJavascriptInjection/../ActionViewController.swift - P19X SafariJavascriptInjection/../ScriptsTableViewController.swift - P19X SafariJavascriptInjection/../SiteScript.swift |
|
Day 70 / 71 - Topics: UIBezierPath, SKAction.follow(), for case let, and more. - Folder: P20 FireworksNight - Folder: P20X FireworksNight (based on P20 FireworksNight) - Challenge, added action sequence to remove sprite, added game over etc. - P20 FireworksNight/../GameScene.swift - P20 FireworksNight/../GameViewController.swift - - P20X FireworksNight/../GameScene.swift - P20X FireworksNight/../GameViewController.swift |
|
Day 72 / 73 - Topics: UNUserNotificationCenter - Folder: P21 LocalNotifications - Folder: P21X GuessTheFlag (based on P15X GuessTheFlag) - Challenge changes, update projects to update or add user notifications. - P21 LocalNotifications/../ViewController.swift - P21X GuessTheFlag/../ViewController.swift |
|
Day 74 - Folder: X07 Notes - Milestone project challenge 19 to 21. - X07 Notes/../FoldersViewController.swift - X07 Notes/../Folder.swift - X07 Notes/../NoteListViewController.swift - X07 Notes/../NoteViewController.swift - X07 Notes/../Note.swift |
|
Day 75 / 76 - Topics: Core Location, CLBeaconRegion, and more. - Folder: P22 DetectABeacon - Folder: P22X DetectABeacon (based on P22 DetectABeacon) - Challenge, aded further beacons and a circle for range. - P22 DetectABeacon/../ViewController.swift - P22X DetectABeacon/../ViewController.swift |
|
Day 77 / 78 / 79 - Topics: SKShapeNode, touchesEnded(), AVAudioPlayer, CaseIterable, removeFirst() and more. - Folder: P23 SwiftyNinja - Folder: P23X SwiftyNinja (based on P23 SwiftyNinja) - Challenge, add game over, moved numbers, strings into enums and constants etc. - P23 SwiftyNinja/../GameScene.swift - P23 SwiftyNinja/../GameViewController.swift - - P23X SwiftyNinja/../GameScene.swift - P23X SwiftyNinja/../GameViewController.swift |
|
Day 80 /81 - Topics: String subscripts, contains(where:), NSAttributedString, and more. - File: 24 SwiftStrings.playground - File: P24X SwiftStrings.playground - Challenge to write from string extensions. - P24 SwiftStrings.playground/Contents.swift - P24 SwiftStrings.playground/Contents.swift |
|
Day 82 - Milestone project challenge 22 to 24 - File: X08 Extensions playground. - X08 Extensions.playground/Contents.swift |
|
Day 83 / 84 - Topics: Peer to peer networking, while also getting some practice with collection views, GCD, and more. - Folder: P25 SelfieShare - Folder: P25X SelfieShare (based on P25 SelfieShare) - Challenge to add some UIAlerts for status, also send text messages and produce a list of users. - P25 SelfieShare/../ViewController.swift - P25X SelfieShare/../ViewController.swift |
|
Day 85 / 86 / 87 - Topics: Core Motion, accelerometer, how to load a game level from a file and how to create custom physics bitmasks, while also getting some practice with fatalError(), SKAction, and more. - Folder: P26 MarbleMaze - Folder: P26X MarbleMaze (based on P26 MarbleMaze) - P26 MarbleMaze/../GameScene.swift - P26 MarbleMaze/../GameViewController.swift - - P26X MarbleMaze/../GameScene.swift - P26X MarbleMaze/../GameViewController.swift |
|
Day 88 / 89 - Topics: UIGraphicsImageRenderer, drawing fills and strokes, and insetting a CGRect, while also getting more practice with NSAttributedString and more. - Folder: P27 CoreGraphics - Folder: P27X CoreGraphics (based on P27 CoreGraphics) - emoji and word twin drawn. - Folder: P27X StormViewer (based on P12X StormViewer aka Project 1) - draw text on image. - P27 CoreGraphics/../ViewController.swift - - P27X CoreGraphics/../ViewController.swift - - P27X StormViewer/../ViewController.swift - P27X StormViewer/../DetailViewController.swift - P27X StormViewer/../Storm.swift |
|
Day 90 - Milestone project challenge 25 to 27 - Folder: X09 MemeGenerator - X09 MemeGenerator/../ViewController.swift |
|
Day 91 - Topics: Core Graphics Redux - File: Learn-Core-Graphics.playground. - Blending/../LiveView.swift - Checkerboards/Contents.swift - Checkerboards/LiveView.swift - Ellipses/Contents.swift - Ellipses/../LiveView.swift - Emoji/Contents.swift - Emoji/../LiveView.swift - Flags/Contents.swift - Flags/../LiveView.swift - Flowers/Contents.swift - Flowers/../LiveView.swift - Images/Contents.swift - Images/../LiveView.swift - Introduction/Contents.swift - Lines/Contents.swift - Lines/../LiveView.swift - Rainbows/Contents.swift - Rainbows/../LiveView.swift - Rectangles/Contents.swift - Rectangles/../LiveView.swift - Rotation/Contents.swift - Rotation/../LiveView.swift - Sandbox/Contents.swift - Sandbox/../LiveView.swift - Stripes/Contents.swift - Stripes/../LiveView.swift - Strokes/Contents.swift - Strokes/../LiveView.swift - Text/Contents.swift - Text/../LiveView.swift - Translation/Contents.swift - Translation/Sources/LiveView.swift - LiveViewController.swift |
|
Day 92 / 93 - Topics: LocalAuthentication framework and the iOS keychain, get some practice with UITextView and more. - Folder: P28 SecretSwift - Folder: P28X SecretSwift (based on P28 SecretSwift) - Folder: P28X NamesToFaces Codable (based on P12B NamesToFaces Codable) - Challenge: P28X SecretSwift + P28X NamesToFaces Codable - Add a unlock / done button, add a simple password fallback feature. - P28 SecretSwift/../ViewController.swift - P28 SecretSwift/../KeychainItemAccessibility.swift - P28 SecretSwift/../KeychainWrapper.swift - - P28X SecretSwift/../ViewController.swift - P28X SecretSwift/../KeychainItemAccessibility.swift - P28X SecretSwift/../KeychainWrapper.swift - - P28X NamesToFaces Codable/../ViewController.swift - P28X NamesToFaces Codable/../Person.swift - P28X NamesToFaces Codable/../PersonCell.swift |
|
Day 94 / 95 / 96 - Topics: How to generate a scene dynamically, how to connect SpriteKit and UIKit, and more. - Folder: P29 ExplodingMonkeys - Folder: P29X ExplodingMonkeys (based on P29 ExplodingMonkeys) - Challenge to add wind and auto layout, scores and wind with increased difficulty (gravity / speed) - P29 ExplodingMonkeys/../GameScene.swift - P29 ExplodingMonkeys/../GameViewController.swift - P29 ExplodingMonkeys/../BuildingNode.swift - - P29X ExplodingMonkeys/../GameScene.swift - P29X ExplodingMonkeys/../GameViewController.swift - P29X ExplodingMonkeys/../BuildingNode.swift |
|
Day 97 / 98 - Topics: Time Profiler and Allocations instruments, how to draw shadows in both Core Graphics and CALayer, re-using table view cells in code, and more. - Folder: P30 XcodeInstruments - Folder: P30X XcodeInstruments (based on P30 XcodeInstruments) - remove all force unwraps - Folder: P30X2 XcodeInstruments (based on P30X XcodeInstruments) - do all images processing at the start. - P30 XcodeInstruments/../AppDelegate.swift - P30 XcodeInstruments/../ImageViewController.swift - P30 XcodeInstruments/../SelectionViewController.swift - - P30X XcodeInstruments/../AppDelegate.swift - P30X XcodeInstruments/../ImageViewController.swift - P30X XcodeInstruments/../SelectionViewController.swift - - P30X2 XcodeInstruments/../AppDelegate.swift - P30X2 XcodeInstruments/../ImageViewController.swift - P30X2 XcodeInstruments/../SelectionViewController.swift |
|
Day 99 - Milestone project challenge 28 to 30 - Folder: X10 Pelmanism - X10 Pelmanism/../GameScene.swift - X10 Pelmanism/../GameViewController.swift - X10 Pelmanism/../MessageNode.swift - X10 Pelmanism/../PlayingCard.swift |
|
Day 100 - Final Exam - Result: Certificate of Completion |
|