I finished going through 100 days of SwiftUI. I had taken some programming classes in college a long time ago. I also had done a very small amount of programming in Basic and VisualBasic, along with writing things like scripts and batch files but I was basically coming into this class as a beginner. I had no idea how Xcode worked or how to even make a simple app.
This course starts with the programming basics and builds on that to develop iOS app. After about 20 days into the course, I was building my own apps on my phone. They weren’t anything spectacular, but I quickly learned how to put enough code together to make something that was useful, although highly customized to my own needs. I continued working on my own apps throughout the course, trying to implement the techniques that I was learning in each lesson. This helped me to understand and remember the material.
Around day 38, I found the course became really difficult and I was getting overwhelmed trying to keep up. By about day 40, I was totally lost and became incredibly frustrated with the course. I decided to stop and start over from the beginning and go slower the second time through.
I managed to continue making progress, though some days the progress was slower than I wanted it to be and some days would turn into two or three days before I was able to complete the days work. There were also days, especially later on in the course, where the material was not as heavy.
This course basically took me from not having any idea on how to build an app for the iPhone to being able to produce something that I plan on submitting to the app store. How well will it do? I don’t know and I’m not really that concerned about it. It’s an app I regularly use now, another family member also regularly uses it, and another person has requested to have it as well.
Overall, I would rate this course: 5 out of 5 stars. It was a great course. Below are a list of my pros and cons. Even though I did list some cons, I think they are minor and the amount of excellent material found in the course, far outweighs them. If you want to learn Swift and SwiftUI, I have to believe Paul’s course is the best place to start. You’ll get a good idea if it’s for you with the only investment being your own time and energy.
- The course is totally free.
- There is a lot of material. 100 days worth. I actually found it to be much more than that.
- Paul keeps things interesting, is highly knowledgeable, easy to understand, and does a great job teaching the material.
- There are lots of projects to work on, challenges to do, and quizzes to take.
- There is also a forum to get help and ask questions. I used this frequently in my second attempt through the course in the beginning. I found I needed it less as the course progressed.
- The material is provided in both video and text format, so you can choose the method that works best or combine them.
- My biggest gripe about the course is the 100-day mentality. I found I did much better when I let go of that and progressed at my own pace. While advertising the course as 100 Days is a nice gimmick, it can be frustrating to think I’m going to be able to do this in 100 days only to find out that it’s going to take much longer than that. My advice to anyone taking this course, if you’re a beginner, is don’t expect to get through it in 100 days. Take as long as it takes. There’s a lot of good material in the lessons. Take the time to learn it even if it goes slow. Continue to make progress a little bit at a time.
- There are times when I felt Paul went too fast and glossed over things that he could have spent more time on and given more examples. A couple of examples of that would be Result, AlignmentGuides and really about half the lesson on Layout and Geometry. That was by far my least favorite lesson.
I finished day 100 and also the epilogue. I actually took my test last night. I got two questions wrong. One because I didn’t read the question carefully enough and another because I didn’t know the right answer.
I spent the previous week and a half going over all the review questions and one thing that became clear is that I still don’t understand some of the topics as well as I’d like. I definitely plan on going back over some of the material, and I’ve already started that. I think I’m also going to do the Ulimate Portfolio App next as well. It seems to be the next logical step from the options I’ve researched.
Additionally, I want to submit an app to the app store in the next month or two. I guess I’ll set myself a deadline of June 1st to get that out. It’s mostly done but there are a few adjustments I want to make.
One last note, it took me roughly 160 days to get through the 100 days. I’ve been in IT for quite awhile but programming is new to me, other than some basic programming, scripts, database management and some courses I took in college years ago.
One last last note. Thanks to those of you on this forum(the Hacking with Swift forum) who helped answer my questions and provided support my second time through. Using this forum was what gave me the motivation and understanding to be able to get through the tough spots.
I finished day 99. I found these challenges to be fairly straightforward. I have been working with similar things in my own projects so I’m sure that helped. For the first time my challenge three solution was almost identical to Paul’s. All that’s left is the final exam tomorrow.
I finished day 98. I’m done with the last app and I’m thankful for that. I wasn’t too enthusiastic going into this last app because part of the focus was on developing for the iPad which didn’t really interest me, but there actually there wasn’t that much time devoted to doing that and mostly it was continuing to learn stuff I wanted to learn. Tomorrow is the last challenge and then the final exam.
I finished day 97. This day was ok. I learned a few new things. I understand better how the NavigationView works with the primary and secondary views. It was much clearer in this video with actual data than in the first video using simple Text views. A couple of longer videos in this day but they covered quite a bit of material we’d gone over before so it wasn’t overwhelming.
I finished day 96. This day was fairly easy. I didn’t find this day as interesting as some. I don’t plan on developing anything for the iPad any time soon so learning about it really isn’t that appealing to me. Everything, I’m currently working on is for the iPhone and I don’t own a recent iPad and I have no plans to purchase one either. I did find the video on the searchable modifier to be something I might implement.
I finished day 95. This was an interesting challenge. It wasn’t too difficult except for the timer bit. That took a little bit of thinking on my part and I had to walk away from it and come back before I was able to get it working. I implemented all the challenges within the challenge except for the accessibility stuff. I wasn’t trying to make a polished app with this, I just wanted to get it functioning. In light of that it wasn’t really visually pleasing and I wasn’t looking to implement accessibility. Basically, it was downright ugly, but it worked. I have been wanting to make a dice rolling app for awhile so this is likely one I will continue to refine or entirely redo. As far as my code went, it worked, but as always, Paul’s solution was alot more refined. It didn’t occur to me to do the die rolling inside the struct itself, but I did use a timer implementation similar to his. One more project left.
I finished day 94. In spite of my difficulties with this project and its complexity, I was able to complete the challenges. I felt they were fairly easy. For challenge one, my code exactly matched Paul’s. For challenge two, my code was slightly different in one spot but accomplished the same thing and for challenge three I took a different approach. I interpreted the challenge somewhat differently than I think what he had in mind but it all worked and I’m fine with it. If I ever want to implement this stuff, I’ll definitely need to spend more time on it. I missed several questions in the wrap-up. In spite of going over the videos several times, I don’t feel there was enough practice in this project for things to be able to sink in for me. I don’t plan on spending any more time on it at the moment either but I may revisit it at another time.
I finished day 93. This is quickly becoming my least favorite project. Like yesterday, the first video was ok but the next two were somewhat overwhelming. The effects Paul can generate are really impressive. Without spending significant time playing around with GeometryReaders I’m not likley to be able to produce anything similar and I’m not likely to remember much of this as I really don’t see where I’d implement this in any of my current apps. I think it’s cool and worthwhile, I just don’t see myself using it right now. This project somewhat reminds me of the shapes and animation project though I had more fun with that one. I’ll be glad to put this project behind me. I may try playing around with it more later today. Not sure at the moment.
I finished day 92. The first video I found to be fairly easy and the first half of the second video as well. After that it started to get complicated. I followed what Paul was doing but I doubt I could implement it myself. There didn’t seem be much discussion about dimensions that we had coming in and how they work. I watched the second two videos twice and played around with it some on my own but I’m still not totally getting it. I may go back to it. I may not.