Awesome
100 Days of Swift
👋 Introduction
This project is meant to follow along with Paul Hudson’s 100 Days of Swift challenge. There are many 100 Days of Swift challenges out there in the wild, but Paul is one of the best contributors to education that the Swift community has, and when I saw him throw down the gauntlet, I couldn’t resist taking part.
As the first day of this endeavor, a brief introduction is in order. I’ve been learning Swift and iOS development for a few months now after 5 years as a (mostly) front-end web (re: JavaScript 😐) developer who has decided to take the leap into native — thus, diving into the wonderful world of Swift, iOS, macOS, server-side Swift, and beyond.
As an unabashed polyglot who’s played with everything from JavaScript and Python to Java and CPP, Swift has been love at first line of code. While this is a topic that deserves a much larger write-up, I will say that Swift, in many ways, feels like a culmination for me — the kind of language I’ve wanted to write in for quite some time. With that in mind, I’m actually planning on Infinity days of Swift. But that’s neither here nor there: The people want 100, so I'll do my best to provide something valuable within those parameters.
Each "day" folder will contain a write-up where I'll recap the material covered, while also trying to interject my own insight, opinions, and reflections on how I'm learning and growing. Furthermore, when possible, I’ll try to include any code that was written along the way, links to relevant articles and information that I find online -- basically, whatever I can think of that's useful and relevant.
Contributing
Feedback and suggestions are highly appreciated. I'll be opening up issues to serve as discussion threads for each day. But feel free to open up your own as well.
Days
<details> <summary>Full List</summary>- Day 1: Variables, simple data types, and string interpolation
- Day 2: Complex Data Types
- Day 3: Operators and Conditions
- Day 4: Loops
- Day 5: Functions
- Day 6: Closures, Part 1
- Day 7: Closures, Part 2
- Day 8: Structs, Part One
- Day 9: Structs, Part Two
- Day 10: Classes
- Day 11: Protocols and Extensions
- Day 12: Optionals
- Day 13: Swift Review, Day One
- Day 14: Swift Review, Day Two
- Day 15: Swift Review, Day Three
- Day 16: Project 1, Part One
- Day 17: Project 1, Part Two
- Day 18: Project 1, Part Three
- Day 19: Project 2, Part One
- Day 20: Project 2, Part Two
- Day 21: Project 2, Part Three
- Day 22: Project 3
- Day 23: Milestone for Projects 1-3
- Day 24: Project 4, Part One
- Day 25: Project 4, Part Two
- Day 26: Project 4, Part Three
- Day 27: Project 5, Part One
- Day 28: Project 5, Part Two
- Day 29: Project 5, Part Three
- Day 30: Project 6, Part One
- Day 31: Project 6, Part Two
- Day 32: Milestone for Projects 4-6
- Day 33: Project 7: Whitehouse Petitions, Part One
- Day 34: Project 7: Whitehouse Petitions, Part Two
- Day 35: Project 7: Whitehouse Petitions, Part Three
- Day 36: Project 8: 7 Swifty Words, Part One
- Day 37: Project 8: 7 Swifty Words, Part Two
- Day 38: Project 8: 7 Swifty Words, Part Three
- Day 39: Project 9: Grand Central Dispatch, Part One
- Day 40: Project 9: Grand Central Dispatch, Part Two
- Day 41: Milestone for Projects 7-9
- Day 42: Project 10: Names and Faces, Part One
- Day 43: Project 10: Names and Faces, Part Two
- Day 44: Project 10: Names and Faces, Part Three
- Day 45: Project 11: Pachinko, Part One
- Day 46: Project 11: Pachinko, Part Two
- Day 47: Project 11: Pachinko, Part Three
- Day 48: Project 12: User Defaults, Part One
- Day 49: Project 12: User Defaults, Part Two
- Day 50: Milestone for Projects 10-12
- Day 51: Conference Talks and Functional Programming
- Day 52: Project 13: Instafilter, Part One
- Day 53: Project 13: Instafilter, Part Two
- Day 54: Project 13: Instafilter, Part Three
- Day 55: Project 14: Whack-a-Penguin, Part One
- Day 56: Project 14: Whack-a-Penguin, Part Two
- Day 57: Project 15: Animation, Part One
- Day 58: Project 15: Animation, Part Two
- Day 59: Milestone for Projects 13-15
- Day 60: Project 16: Capital Cities, Part One
- Day 61: Project 16: Capital Cities, Part Two
- Day 62: Project 17: Space Race, Part One
- Day 63: Project 17: Space Race, Part Two
- Day 64: Project 18: Debugging, Part One
- Day 65: Project 18: Debugging, Part Two
- Day 66: Milestone for Projects 16-18
- Day 67: Project 19: JavaScript Injection, Part One
- Day 68: Project 19: JavaScript Injection, Part Two
- Day 69: Project 19: JavaScript Injection, Part Three
- Day 70: Project 20: Fireworks Night, Part One
- Day 71: Project 20: Fireworks Night, Part Two
- Day 72: Project 21: Local Notifications, Part One
- Day 73: Project 21: Local Notifications, Part Two
- Day 74: Milestone for Projects 19-21
- Day 75: Project 22: Detect-A-Beacon, Part One
Projects
I previously created projects alongside Hacking with Swift in a separate repository. For 100 Days of Swift, however, I've been extending things further and adding my revised projects to this repo under each "Part One" folder. I'll try to add direct links here soon 🙂.