Giter Club home page Giter Club logo

100daysofswiftui's Introduction

100 Days of SwiftUI

This repository is dedicated to documenting my progress of the Hacking With Swift's course "100 Days of SwiftUI" by Paul Hudson.

If you would like to try this course yourself, you can find it at: https://www.hackingwithswift.com/100/swiftui

Current Status

🚨 Latest update: 15/12/22

👨🏻‍💻 Currently on: Day 100 of 100

certificate

The Process

19 Projects

Each numbered project is taught by Paul Hudson through his videos, readings and quizes, as he slowly works through increasingly complex topics. The projects are ultimately prompted with challenges left up to the students to elevate the code on their own. These challenges are optional, but I find them to be one of the most essential parts to learning and gaining the most out of this course.

6 Milestone projects

After 3 regular projects comes a milestone project - a project cumulating the topics of the previous 3. What puts these milestone projects above the regular ones is the absence of any learning material as the students are only provided with prompts to complete and a couple of hints. I believe this to be the most challenging aspect to this course, but also the most effective as it forces the students to delve deeply into all the previous material as well as develop our creativity to successfully tackle every problem. It is entirely up to the students to interpret the essence of each project and find ways to fulfill that image - these milestone projects do not have a single way being done and that is where every student can shine on their own.

1 Final exam

This course has a final goal that can be reached after conquering all of the aforementioned projects: an exam for all the 100 days spent. If passed, the student obtains a certificate - with merit if they score 80% or more and with distinction if they score 95% or more. Achieving such a feat is without a doubt not easy and is definitely a great way to comemorate all of this hard work.

The Course

Days 1 - 14: Introduction to Swift

The first 14 days provided a gentle warm up for my SwiftUI learning as I covered the fundamentals of the Swift programming language. I worked through a selection of tutorials every day, and there was some optional extra reading afterwards I got to read through to dig even deeper.

Day 15: Consolidation I

I just learned a lot about Swift in only 14 days, so before I continue it's important I reflect on what you've learned so far.

Days 16 - 24: Starting SwiftUI

Now that I’ve mastered the basics of Swift, in these days I’ll start building real SwiftUI apps using what I learned.

Day 25: Consolidation II

Reviewing what I’ve learned from days 16 - 24, and creating a project on these topics.

Days 26 - 34: Expanding your skills

In these next three projects, I developed my SwiftUI skills in new directions, while also practicing the fundamentals.

Day 35: Consolidation III

Reviewing what I’ve learned from days 26 - 34, and creating a project covering these topics.

Days 36 - 46: Scaling up to bigger apps

Now that my core SwiftUI skills are strong, I pushed past the basics and started building bigger apps.

Days 47 - 48: Consolidation IV

Reviewing what I have learned from days 36 - 46, and creating a project covering these topics.

Days 49 - 59: Focus on data

In these projects, I started looking more carefully at how to send, retrieve, and store data in SwiftUI apps.

Days 60 - 61: Consolidation V

Reviewing what I have learned from days 49 - 59, and creating a project covering these topics.

Days 62 - 76: Views and view controllers

In these projects, the difficulty started to ramp up as I learned how to integrate code from frameworks outside of SwiftUI, including UIKit and MapKit.

Days 77 - 78: Consolidation VI

Reviewing what I have learned from days 62 - 76, and creating a project covering these topics.

Days 79 - 94: Controlling UI flow

In these projects, I built my biggest apps yet, while also exploring more ways to let the user interact with my apps: tab bars, gestures, haptics, and more.

Days 95: Consolidation VII

As I approach the end of our 100 days, it’s time to pause and reflect on the massive projects I’ve built, then take on a fresh app building challenge.

Days 96 - 99: One last project

In this final project, I cover some last tips and techniques to help me build fuller apps, including how to optimize for iPad.

Special thanks

Thank you for taking your time to see all that I've learned about SwiftUI.

This entire process has been long and challenging while also being extremely insightful and interesting. I want to give my thanks to Paul Hudson for creating this course that has made it so much easier to learn and understand the beauty and nuances that come with the exciting language of SwiftUI. Not only did I gain more knowledge in SwiftUI itself, I also learned more about the time, effort and patience that comes with building more intricate and complex apps. Now more than ever, I feel most complete as an iOS developer. I am proud to have achieved as much as I did and will be sure to use all this knowledge to keep improving and coming out with amazing apps!

Tony Vu

100daysofswiftui's People

Contributors

vmthanh-bi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.