Daily progress through Paul Hudson's "100 Days of Swift" challenge #100DaysOfSwift. https://www.hackingwithswift.com/100
Project Prefixes
- DayXX - ProjectX - Project
- Folder: Day16-17 - Project1 StormViewer
- Topics: Table views and image views, App bundles, FileManager, Typecasting, View controllers, Storyboards, Outlets, Auto Layout, UIImage, UIImageView, UINavigationBar.
- Has a number of images added to the bundle.
- Day16-17 - Project1/Project1/ViewController.swift
- Day16-17 - Project1/Project1/DetailViewController.swift
- Folder: Day18 - Project1 StormViewer
- Topics: Challenge changes from the StormViewer project and interface builder updates, array sorting
- Has a number of images added to the bundle.
- Day18 - Project1/Project1/ViewController.swift
- Day18 - Project1/Project1/DetailViewController.swift
- Folder: Day19-20 - Project2 GuessTheFlag
- Topics: @2x and @3x, Asset catalogs, UIButton, CALayer, UIColor, Random numbers, Actions, UIAlertController.
- Has a number of images added to the bundle.
- Day19-20 - Project2/Project2/ViewController.swift
- Folder: Day21 - Project2 GuessTheFlag
- Topics: Challenge changes from the GuessTheFlag project, simple UI changes and a new UIAlertController
- Day21 - Project2/Project2/ViewController.swift
- Folder: [Day22 - Project3 StormViewer](https://github.com/jeanyvesgarcin/100DaysOfSwift/tree/main/Day22%20-%20Project3
- Topics: UIBarButtonItem and UIActivityViewController.
- Day22 - Project3/Project1/ViewController.swift
- Day22 - Project3/Project1/DetailViewController.swift
- Folder: Day23 - Milestone - Project1-2-3
- Topics: Milestone project challenge covering projects 1 to 3.
- Day23 - Milestone - Project1-2-3/WorldFlagsViewer/ViewController.swift
- Day23 - Milestone - Project1-2-3/WorldFlagsViewer/DetailViewController.swift
- Folder: Day24-25 - Project4
- Topics: loadView(), WKWebView, Delegation, URL, URLRequest, UIToolbar, UIProgressView, Key-Value Observing.
- Day24-25 - Project4/project4/ViewController.swift
- Folder: Day26 - Project4
- Topics: Challenge changes from the SimpleBrowser project (Day 25), webView navigation and add a UITableView as a new initial screen.
- Day26 - Project4/SimpleBrowser/ViewController.swift
- Folder: Day27-28 - Project5
- Topics: capture lists and reading files. Reloading table views, inserting rows, text input in alerts, Strings and UTF-16, Closures, NSRange.
- Day27-28 - Project5/Project5/ViewController.swift
- Folder: Day29 - Project5
- Topics: Challenge changes from the WordScrable project, refactoring and added UIAlertController etc.
- Day29 - Project5/Project5/ViewController.swift
- Folder: Day30 - Project6
- Topics: Equal Height, Aspect Ratio constraints, Visual Formatting Language, Anchors, Advanced Visual Formatting Language and Auto Layout anchors.
- Day30 - Project6/Day30 - Project6b/ViewController.swift
- Folder: Day31 - Project6
- Topics: Challenge changes from the Autolayout project, added further anchors etc.
- Day31 - Project6/Day30 - Project6b/ViewController.swift
- Folder: Day32 - Milestone - Project4-5-6
- Topics: Milestone project challenge (shopping list).
- Day32 - Milestone - Project4-5-6/ViewController.swift
- Folder: Day33-34 - Project7
- Topics: UITabBarController, Data, Codable, UITabBarController and UIStoryboard
- Day33-34 - Project7/Day33-34 - Project7/AppDelegate.swift
- Day33-34 - Project7/Day33-34 - Project7/DetailViewController.swift
- Day33-34 - Project7/Day33-34 - Project7/ViewController.swift
- Day33-34 - Project7/Day33-34 - Project7/Petition.swift
- Day33-34 - Project7/Day33-34 - Project7/Petitions.swift
- Folder: Day35 - Project7
- Topics: Challenge changes, add a new UIBarButtonItem + UIAlertController and filter results
- Day35 - Project7/Day35 - Project7/AppDelegate.swift
- Day35 - Project7/Day35 - Project7/DetailViewController.swift
- Day35 - Project7/Day35 - Project7/ViewController.swift
- Day35 - Project7/Day35 - Project7/Petition.swift
- Day35 - Project7/Day35 - Project7/Petitions.swift
- Folder: Day36-37 - Project8
- Topics: Text alignment, layout margins, UIFont, addTarget, enumerated, joined, replacingOccurences and more.
- Day36-37 - Project7/Day36-37 - Project8/ViewController.swift
- Folder: Day38 - Project8
- Topics: Challenge changes from P08 SwiftyWords, UI changes and game logic
- Day38 - Project8/Day38 - Project8/ViewController.swift
-
Folder: Day39 - Project9
-
Topics: Grand Central Dispatch, quality of service queues, performSelector() and more
-
Folder: Day40 - Project1
-
Topics: Challenge GCD changes to several projects
-
Folder: Day40 - Project7
-
Topics: Challenge GCD changes to several projects
-
Folder: Day40 - Project8
-
Topics: Challenge GCD changes to several projects
- Folder: Day41 - Milestone 7-8-9
- Topics: Milestone project challenge for Projects 7 to 9.
- Day41 - Milestone 7-8-9/Day41 - Milestone 7-8-9/ViewController.swift
- Folder: Day42-43 - Project10
- Topics: UICollectionView and UICollectionViewCell, UIImagePickerController, UUID, NSObject subclasses, and fatalError.
- Day42-43 - Project10/ViewController.swift
- Day42-43 - Project10/Day42-43 - Project10/PersonCell.swift
- Day42-43 - Project10/Day42-43 - Project10/Person.swift
- Folder: Day44 - Project10
- Topics: Challenge to add a second UIAlertController, using picker.sourceType = .camera.
- Day44 - Project10/NamesToFaces/ViewController.swift
- Folder: Day45-46 - Project11
- Topics: SpiteKit, SKSpriteNode and SKPhysicsBody
- Day45-46 - Project11/Day45-46 - Project11/GameViewController.swift
- Day45-46 - Project11/Day45-46 - Project11/GameScene.swift
- Folder: Day47 - Project11
- Topics: Challenge changes, use new images, position changes and game logic changes.
- Day47 - Project11/Day47 - Project11/GameViewController.swift
- Day47 - Project11/Day47 - Project11/GameScene.swift
- Folder: Day48 - Project12A
- Folder: Day49 - Project12B
- Folder: Day49 - Project1
- Folder: Day49 - Project2
- Folder: Day49 - Project5
- Topics: UserDefaults, NSCoding (Objective C compatible), Codable (Not Objective C compatible), NSKeyedArchiver, NSKeyedUnarchiver, JSONEncoder and JSONDecoder + Challenge changes, update older projects and add UserDefaults.
- Folder: Day50 - Milestone 10-12
- Topics: Milestone project challenge projects 10 to 12.
- Day50 - Milestone 10-12/CameraCaptions/ViewController.swift
- Day50 - Milestone 10-12/CameraCaptions/DetailViewController.swift
Watching conference videos from Paul Hudson:
- Folder: Day52-53 - Project13
- Topics: Core Image, UISlider, Writing images to the iOS photo album.
- Day52-53 - Project13/Day52-53 - Project13/ViewController.swift
- Folder: Day54 - Project13
- Topics: Challenge changes from P13 InstaFilter, additional slider for filter property and UI changes.
- Day54 - Project13/Day54 - Project13/ViewController.swift
- Folder: Day55-56 - Project14
- Topics: SKCropNode, SKTexture, asyncAfter(), New SKAction types
- Day55-56 - Project14/WhackAPenguin/GameScene.swift
- Day55-56 - Project14/WhackAPenguin/GameViewController.swift
- Day55-56 - Project14/WhackAPenguin/WhackSlot.swift
- Folder: Day56 - Project14
- Topics: Challenge changes from Day55-56 - Project14, created a game over sound file, additional SKLabelNode and new SKEmitterNode for mud.
- Day56 - Project14/WhackAPenguin/GameScene.swift
- Day56 - Project14/WhackAPenguin/GameViewController.swift
- Day56 - Project14/WhackAPenguin/WhackSlot.swift
- Folder: Day57 - Project15
- Topics: animate(withDuration:), Spring animations, Alpha values, CGAffineTransform
- Day57 - Project15/Day57 - Project15/ViewController.swift
- Folder: Day58 - Project14
- Topics: Challenge changes, update older projects with animations.
- Day58 - Project2/project2/ViewController.swift
- Day58 - Project8 /Day58 - Project8/ViewController.swift
- Day58 - Project13/Day58 - Project13/ViewController.swift
- Folder: Day59 - Milestone - Projects 13-14-15
- Topics: Milestone project challenge 13 to 15.
- Day59 - Milestone - Projects 13-14-15/CountryFacts/ViewController.swift
- Day59 - Milestone - Projects 13-14-15/CountryFacts/Countries.swift
- Day59 - Milestone - Projects 13-14-15/CountryFacts/Country.swift
- Day59 - Milestone - Projects 13-14-15/CountryFacts/DetailTableViewController.swift
- Folder: Day60 - Project16
- Topics: MKMapView, MKAnnotation, MKPinAnnotationView, CLLocationCoordinate2D
- Day60 - Project16/Project16/ViewController.swift
- Folder: Day61 - Project16
- Topics: Challenge changes, add webview for wiki details shown via annotationView.
- Day61 - Project16 /CapitalCities/ViewController.swift
- Folder: Day62 - Project17
- Topics: Per-pixel collision detection, advancing particle systems, timer, linear and angular damping.
- Day62 - Project17/Day62 - Project17/GameScene.swift
- Day62 - Project17/Day62 - Project17/GameViewController.swift
- Folder: Day63 - Project17
- Topics: Challenge changes, added game restrictions and difficulty.
- Day63 - Project17/Day63 - Project17/GameScene.swift
- Day63 - Project17/Day63 - Project17/GameViewController.swift
- Folder: Day64-65 - Project18
- Topics: print(), assert(), Breakpoints, View debugging + conference video
- Day64-65 - Project18/Day64-65 - Project18/ViewController.swift
- Folder: Day66 - Milestone - Projects16-17-18
- Topics: Challenge Milestone - Projects16-17-18
- Day66 - Milestone - Projects16-17-18/ShootingGallery/GameScene.swift
- Day66 - Milestone - Projects16-17-18/ShootingGallery/GameViewController.swift
- Day66 - Milestone - Projects16-17-18/ShootingGallery/SpriteNode.swift
- Folder: Day67-68 - Project19
- Topics: NSExtensionItem - creating a safari extension which runs JavaScript on a web page.
- Day67-68 - Project19/Day67-68 - Project19/ViewController.swift
- Day67-68 - Project19/Extension/ActionViewController.swift
- Folder: Day69 - Project19
- Topics: Challenge changes, add a table view to list scripts and use UserDefaults to store them, tap to run, disclosure to edit.
- Day69 - Project19/SafariJavascriptInjection/ViewController.swift
- Day69 - Project19/Extension/ActionViewController.swift
- Day69 - Project19/Extension/ScriptsTableViewController.swift
- Day69 - Project19/Extension/SiteScript.swift
- Folder: Day70 - Project20
- Topics: follow(), UIBezierPath, for case let, Color blending, Shake gesture
- Day70 - Project20/Day70 - Project20/GameScene.swift
- Day70 - Project20/Day70 - Project20/GameViewController.swift
- Folder: Day71 - Project20
- Topics: Challenge, adding score label that updates score, make game end with invlidate() method, use waitForDuration, removeFromParent
- Day71 - Project20/Day71 - Project20/GameScene.swift
- Day71 - Project20/Day71 - Project20/GameViewController.swift
- Folder: Day72 - Project21
- Topics: UNUserNotificationCenter
- Day72 - Project21/Day72 - Project21/ViewController.swift
- Folder: Day73 - Project2
- Folder: Day72 - Project21
- Topics: Challenge changes, update projects to update or add user notifications.
- Day73 - Project2/project2/ViewController.swift
- Day72 - Project21/Day72 - Project21/ViewController.swift
- Folder: Day74 - Milestone - Projects 19-20-21
- Topics: Creating a note app, Milestone project challenge 19 to 21
- Day74 - Milestone - Projects 19-20-21/Notes/Folder.swift
- Day74 - Milestone - Projects 19-20-21/Notes/FoldersViewController.swift
- Day74 - Milestone - Projects 19-20-21/Notes/Note.swift
- Day74 - Milestone - Projects 19-20-21/Notes/NoteListViewController.swift
- Day74 - Milestone - Projects 19-20-21/Notes/NoteViewController.swift
- Folder: Day75 - Project22
- Topics: Core Location, CLBeaconRegion
- Day75 - Project22/Day75 - Project22/ViewController.swift
- Folder: Day76 - Project22
- Topics: Challenge adding further beacons and a circle for range.
- Day76 - Project22/Day76 - Project22/ViewController.swift
- Folder: Day77-78 - Project23
- Topics: SKShapeNode, AVAudioPlayer, Physics speed, CaseIterable, removeFirst(), Action groups
- Day77-78 - Project23/Day77-78 - Project23/GameScene.swift
- Day77-78 - Project23/Day77-78 - Project23/GameViewController.swift
- Folder: Day79 - Project23
- Topics: Challenge, add game over, moved numbers, strings into enums and constants
- Day79 - Project23/Day79 - Project23/GameScene.swift
- Day79 - Project23/Day79 - Project23/GameViewController.swift
- Folder: Day80 - Project24
- Topics: String work differently from arrays, writing extensions for String, Using functions as closures, NSAttributedString for formatting
- Day80 - Project24/Day80 - Project24.playground/Contents.swift
- Folder: Day81 - Project24
- Topics: Challenge, write from string extensions
- Day81 - Project24/Day81 - Project24.playground/Contents.swift
- Folder: Day82 - Milestone - Project22-23-24
- Topics: Challenge, Milestone project challenge 22 to 24
- Day82 - Milestone - Project22-23-24/Day82 - Milestone - Project22-23-24.playground/Contents.swift
- Folder: Day83 - Project25
- Topics: Peer to peer networking, usage: can use existing WiFi, can creat a new WiFi network, can connect over Bluetooth
- Day83 - Project25/Day83 - Project25/ViewController.swift
- Folder: Day84 - Project25
- Topics: Challenge, add some UIAlerts for status, produce a list of users, send text messages
- Day84 - Project25/Day84 - Project25/ViewController.swift
- Folder: Day85-86 - Project26
- 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
- Day85-86 - Project26/Day85-86 - Project26/GameScene.swift
- Day85-86 - Project26/Day85-86 - Project26/GameViewController.swift
- Folder: Day87 - Project26
- Topics: Challenge, rewriting loadLevel(), create a finish marker, add a teleport
- Day87 - Project26/Day87 - Project26/GameScene.swift
- Day87 - Project26/Day87 - Project26/GameViewController.swift
- Folder: Day88 - Project27
- Topics: UIGraphicsImageRenderer, CGRect, NSAttributedString, drawing fills and strokes
- Day88 - Project27/Day88 - Project27/ViewController.swift
- Folder: Day89 - Project27
- Topics: Challenge, emoji and word twin drawn
- Day89 - Project27/Day89 - Project27/ViewController.swift
- Folder: Day90 - Milestone - Project25-26-27
- Topics: Challenge, create a Meme Generator, Milestone project challenge 25 to 27
- Day90 - Milestone - Project25-26-27/MemeGenerator/ViewController.swift
- Folder: Day92 - Project28
- Topics: LocalAuthentication framework, iOS keychain
- Day92 - Project28/SecretSwift/ViewController.swift
- Day92 - Project28/SecretSwift/KeychainWrapper.swift
- Day92 - Project28/SecretSwift/KeychainItemAccessibility.swift
- Folder: Day93 - Project28
- Topics: Challenge, Add a simple password, an unlock/done button
- Day93 - Project28/SecretSwift/ViewController.swift
- Day93 - Project28/SecretSwift/KeychainWrapper.swift
- Day93 - Project28/SecretSwift/KeychainItemAccessibility.swift
- Day93 - Project12
- Folder: Day94-95 - Project29
- Topics: How to generate a scene dynamically, how to connect SpriteKit and UIKit
- Day94-95 - Project29/Project29/GameScene.swift
- Day94-95 - Project29/Project29/GameViewController.swift
- Folder: Day96 - Project29
- Topics: Challenge, adding wind (with increased difficulty: gravity/speed), auto layout, scores
- Day96 - Project29/ExplodingMonkeys/GameScene.swift
- Day96 - Project29/ExplodingMonkeys/GameViewController.swift
- Folder: Day97 - Project30
- Topics: Time Profiler and Allocations instruments, how to draw shadows in both Core Graphics and CALayer, re-using table view cells in code
- Day97 - Project30/Project30/ImageViewController.swift
- Day97 - Project30/Project30/SelectionViewController.swift
- Folder: Day98 - Project30
- Topics: Challenge, remove all force unwraps
- Day98 - Project30/Project30/ImageViewController.swift
- Day98 - Project30/Project30/SelectionViewController.swift
- Folder: Day99 - Milestone - Project28-29-30
- Topics: Challenge, Milestone - Project28-29-30: Memory pairs game that has players find pairs of cards
- Day99 - Milestone - Project28-29-30/Pelmanism/GameScene.swift
- Day99 - Milestone - Project28-29-30/Pelmanism/GameViewController.swift
- Day99 - Milestone - Project28-29-30/Pelmanism/MessageNode.swift
- Day99 - Milestone - Project28-29-30/Pelmanism/PlayingCard.swift