Go to file
CypherPoet 5a193c5f26 Complete Project 23 2019-02-10 04:52:14 -05:00
00-Introduction-to-Swift Initial setup for World Flag Sharing challenge 2019-01-16 00:17:01 -05:00
01-Storm-Viewer Finish 01-Storm-Viewer Project 2019-01-13 17:06:02 -05:00
02-guess-the-flag/Guess the Flag - Add dynamic current score display 2019-01-14 23:37:09 -05:00
03-social-media Small semantic tweak to variable name 2019-01-15 22:21:46 -05:00
04-easy-browser/Easy Browser Add decision handling for navigation actions 2019-01-17 02:07:33 -05:00
05-word-scramble/Word Scrable Clean up word loading logic 2019-01-18 15:47:23 -05:00
06-auto-layout/Auto Layout Add alternate approach of using anchor constraints 2019-01-19 00:57:55 -05:00
06-guess-the-flag-v2/Guess the Flag Add Auto Layout constraints for vertical sizing in landscape mode 2019-01-18 17:51:01 -05:00
07-near-earth-objects/Near Earth Objects Implement UI for HistoryViewController 2019-01-22 01:01:39 -05:00
08-seven-swifty-words/Seven Swifty Words Add Auto Layout view constraint 2019-01-22 20:32:43 -05:00
09-near-earth-objects-v2/Near Earth Objects V2 initial start on Hangman challenge 2019-01-23 05:15:45 -05:00
10-names-and-faces/Names And Faces Add `Person` model, support upload images, support updating name 2019-01-24 05:09:29 -05:00
11-pachinko/Pachinko Add logic for removing obstacles in edit mode 2019-01-26 01:26:19 -05:00
12-names-and-faces-2a/Names And Faces 2a Implement saving and loading stored data 2019-01-26 04:58:38 -05:00
12-names-and-faces-2b/Names And Faces 2b Implement saving and loading stored data via Codeable 2019-01-26 18:49:44 -05:00
13-instafilter/Instafilter Fix action to handle filter change 2019-01-27 19:09:25 -05:00
14-whack-a-penguin/Whack a Penguin Finish project 14 2019-01-29 00:21:35 -05:00
15-animation/animation Add animation cases + spring/damping physics 2019-01-29 17:22:02 -05:00
16-safari-extension/Safari Extension Initial setup for project 17 2019-01-31 22:54:03 -05:00
17-swifty-ninja/Swifty Ninja Add end-game logic 2019-02-02 20:28:22 -05:00
18-debugging/Debugging finish project 18. Start notes imitation challenge 2019-02-03 03:06:30 -05:00
19-capital-cities/Capital Cities Initial setup for project 20 2019-02-06 06:10:58 -05:00
20-fireworks-night/Fireworks Night Complete Project 20 2019-02-08 02:14:34 -05:00
21-local-notifications/Local Notifications Complete Project 21 2019-02-08 06:20:26 -05:00
22-detect-a-beacon/Detect A Beacon Complete Project 23 2019-02-10 04:52:14 -05:00
23-space-race/Space Race Complete Project 23 2019-02-10 04:52:14 -05:00
challenges First pass at attempting to handle keyboard changes in detail view 2019-02-05 04:22:54 -05:00
.gitignore Initial progress on 01-Storm-Viewer 2019-01-13 02:06:51 -05:00
README.md Complete Project 23 2019-02-10 04:52:14 -05:00
certificate.jpg feat: experimenting with 00 in playgrounds 2019-01-10 21:18:11 -05:00

README.md

My project portfolio from following along with the book Hacking With Swift.

Shield.io MIT License Shield

Beginner 📕

# Project Topics Covered Progress
0 🛠
Introduction to Swift
playgrounds, constants & variables, data types, operators, string interpolation, arrays & dictionaries, conditional statements, control flow, functions & methods, optionals, enumerations, classes & structures, property observers, access control, typecasting, closures
1 📱
Storm Viewer
Xcode, UIKit, UIViewController, super, viewDidLoad(), FileManager, app bundles, try-catch blocks, Storyboards & Interface Builder, UITableView, UITableViewDelegate, UITableViewDataSource, UIImageView, UIImage, UIButton, Auto Layout, Outlets & Actions, UINavigationController, view stacking
2 🎮
Guess the Flag
UIButton, action handling, asset catalogs, retina displays & @2x and @3x images, UIControlState, CALayer, UIView, UIColor, CGColor, random numbers, UIAlertController, UIAlertAction, UILabel, Auto Layout and alignment
3 🛠 Social Media UIActivityViewController, UINavigationBar, UIBarButtonItem, #selector & @objc, Info.plist, privacy & permissions
4 📱
Easy Browser
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
5 🎮
Word Scramble
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
6a 🛠
Auto Layout
Ctrl-drag, Auto Layout Visual Format Language (including anchors, metrics, priority, and vertical/horizontal specifications)
6b 🛠
Guess The Flag V2
Ctrl-drag, Auto Layout Visual Format Language (including anchors, metrics, priority, and vertical/horizontal specifications)
7 📱
Near Earth Objects
UITabBarController, UITabBarItem, parsing JSON for structs that implement the Codable protocol, didFinishLaunchingWithOptions
8 🎮
Seven Swifty Words
addTarget(), enumerated(), index(of:), joined(), replacingOccurrences(), property observers, range operators, programmatic button event handling
9 🛠
Grand Central Dispatch
Grand Central Dispatch, async(), DispatchQueue.main, Quality of Service, global(), performSelector(inBackground:), never do UI work on a background thread
10 📱
Names to Faces
UICollectionView, UICollectionViewCell, UICollectionViewDelegate, UICollectionViewDataSource, UIImagePickerController, UUID, Custom NSObject Classes, URLs for app directories, writing JPEG data to disk
11 🎮
Pachinko
CGFloat, SKSpriteNode, UITouch, SKPhysicsBody, circleOfRadius/rectangleOf for shaping physics bodies, SKPhysicsContactDelegate, SKActions — and adding them to nodes, SKLabelNode, SKEmitterNode, sprite drawing blend modes,
12a 🛠
Saving User Defaults & Data: NSCoding
UserDefaults + NSCoding/NSKeyedArchiver
12b 🛠
Saving User Defaults & Data: Codeable
UserDefaults + Codeable/JSONEncoder/JSONDecoder
13 📱
Instafilter
UISlider, CIImage, CGImage, CIContext, CIFilter, UIImageWriteToSavedPhotosAlbum, Using full function signatures with #selector
14 🎮
Whack-a-Penguin
SKCropNode, SKTexture, SKActions, GCD's asyncAfter(), SKAction.playSoundFileNamed, SKAction.wait, run(block:)
15 🛠
Core Animation
Swifty switch/case statements, animate(withDuration:), CGAffineTransform, view.transform, changing animatable properties of UIViews within an animation closure

Intermediate 📗

# Project Name Topics Learned Progress
16 📱
Safari Extension & JavaScript Injection
NSExtensionItem, plists (property lists), NSDictionary, NSExtensionJavaScriptPreprocessingResultsKey, UITextView, NSItemProvider, kUTTypePropertyList, keyboard notifications, NSValue, CGRect, CGPoint, CGSize, view.convert, UIEdgeInsets
17 🎮
Swifty Ninja
SKShapeNode, CGPath, UIBezierPath, AVAudioPlayer, CaseIterable & custom enums, SKAction sequences and groups, default method parameters
18 🛠
Debugging
print, assert, breakpoints, visual debugging, conditional breakpoints, lldb printing and expressions
19 📱
Capital Cities
MKMapView, MKAnnotation, MKPinAnnotationView, CLLocationCoordinate2D, dequeueReusableAnnotationView(), switching between different map styles
20 🎮
Fireworks Night
Timer, SKNode, SKAction.follow() and its awesome orientToPath option, motionBegan(), prefersStatusBarHidden, Timer.invalidate(), colorBlendFactor for SKSpriteNodes
21 🛠
Local Notifications
UNUserNotificationCenter, UNNotificationRequest, UNNotificationAction, UNNotificationCategory, UNUserNotificationCenterDelegate, UNNotificationDefaultActionIdentifier
22 📱
Detect-A-Beacon
iBeacons, Core Location, CLBeaconRegion, CLLocationManager, startMonitoring(for:), startRangingBeacons(in:), uuidgen, CLBeaconRegion, CLProximity 🚧
23 🎮
Space Race
Per-Pixel Collision Detection, Advancing Particle Systems, Adjust Linear & Angular Damping, touchesEnded(), touchesMoved(), touchesBegan() 🔴
24 🛠
Swift Extensions
mutating, Protocol-Oriented Programming, Methods as Verbs, Properties as State, ExSwift 🔴
25 📱
Selfie Share
MCSession, MCBrowswerViewController, showConnectionPrompt(), MCPeerID, MCAdvertiserAssistant, MCSessionDelegate, MCBrowserViewControllerDelegate, Data, data(using:), String.Encoding.utf8 🔴
26 🎮
Marble Maze
categoryBitMask, collisionBitMask, contactTestBitMask, CMMotionManager, update() 🔴
27 🛠
Core Graphics
UIGraphicsImageRenderer, UIGraphicsImageRendererContext, CGContext, addRect(), addEllipse(), String.draw(with:), UIFont, NSMutableParagraphStyle() 🔴
28 📱
Secret Swift
KeychainWrapper, resignFirstResponder(), NotificationCenter, UIApplication.willResignActiveNotification, LocalAuthentication, LAContext, canEvaluatePolicy(), .deviceOwnerAuthenticationWithBiometrics, evaluatePolicy(), [unowned self], self, Privacy for Touch ID & Face ID 🔴
29 🎮
Exploding Monkeys
UIKit + SpriteKit, Texture Atlases, Scene Transitions, Destructable Terrain 🔴
30 🛠
Instruments
TimeProfiler, Color Blended Layers, Color Offscreen-Rendered Yellow, Color Hits Green and Misses Red 🔴

Advanced 📘

# Project Name Topics Learned Progress
31 📱
Multibrowser
UIStackView, iPad Multitasking, addArrangedSubview(), WKNavigationDelegate, UITextFieldDelegate, UIGestureRecognizerDelegate, App Transport Security 🔴
32 📱
Swift Searcher
Dynamic Type, NSAttributedString, SFSafariViewController, SFSafariViewControllerDelegate, Core Spotlight, UIContentSizeCategoryDidChange 🔴
33 📱
Name That Tune
AVAudioRecorder, AVAudioSession, requestRecordPermission(), CloudKit, CKRecord, CKAsset, CloudKit Dashboard, CKQueryOperation, NSPredicate, CKRecord.Reference, fetch(withRecordID:), save(), CKQuerySubscription, NSSortDescriptor 🔴
34 🎮
Four in a Row
GameplayKit AI, GKGameModel, GKGameModelPlayer, GKGameModelUpdate, AI Heuristics, NSCopying, GKMinmaxStrategist 🔴
35 🛠
Random Numbers
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:) 🔴
36 🎮
Crashy Plane
Composed Methods, Scale Modes, Parallax Scrolling, SpriteKit Physics, SKPhysicsContactDelegate, SKPhysicsBody, SKAudioNode, Managing Game State 🔴
37 🎮
Psychic Tester
WatchKit Extensions, 3D Touch, CAEmitterLayer, CAGradientLayer, @IBDesignable, @IBInspectable, transition(with:), WCSession, WKInterfaceLabel, WKInterfaceButton 🔴
38 🛠
Github Commits (Core Data)
NSFetchRequest, NSManagedObject, NSPredicate, NSSortDescriptor, NSFetchedResultsController, ISO8601DateFormatter 🔴
39 🛠
Unit testing with XCTest
XCTest, filter(), Test-Driven Development, Functional Programming, XCTestCase, Setting a Baseline, NSCountedSet, XCUIApplication(), XCUIElementQuery, UI Test Recording 🔴

Challenges 🥅

# Project Name Progress
0 🛠
Fizz Buzz
1 📱
World Flags
2 🎮
Hangman
3 📱
Storm Viewer 2 (Collection View)
4 📱
Country Facts
5 📱
Imitation Apple Notes App
🚧
KEY
📱 = App
🎮 = Game
🛠 = Technique
= Complete
🚧 = In Progress
🛑 = Not Started