Another 100 Days of Code
IΒ have an idea for an app. A mobile app. To be able to eventually build it, IΒ need to learn how to develop mobile applications. Since I am an iPhone user, I will focus on iOS and Swift development.
IΒ have previously learned a lot about web development by completing a #100DaysOfCode challenge. So, my hope is that I can now repeat that process be able to learn what I need to build iOS apps.
This page will be the log of my progress through the challenge.
Day 1: April 6, 2023, Thursday
Progress
No progress towards actually learning iOS development today. Spent all my time getting a blog added to my site so it can serve as the log for the 100 days of code challenge. Still not done with the set up of the blog, since some issue with Docker/OrbStack and volumes cost me a bunch of time.
Actually went a head after posting and started with the first playground from "Develop in Swift - Explorations".
Links
Day 2: April 7, 2023, Good Friday
Progress
Continued working through the playgrounds of in the first chapter of "Develop in Swift - Explorations".
Thoughts
I started with that course book "Develop is Swift - Explorations" because it seems the more structured than the Develop apps for iOS course, which already expects Swift knowledge and jumps into SwiftUI, and the Swift docs are more like a reference and not really guided.
It does all seem extremely beginner level so far. I guess that was to be expected. It is only the first chapter and might get more interesting. I guess I will see.
Day 3: April 8, 2023, Saturday
Progress
Continued with "Develop in Swift - Explorations", and I am happy I did as it went into creating a very basic app. Which also means I just build the first app. It only shows a static image, but whatever, start small.
Thoughts
Had a few hick ups on the way. Missed some option. Must have clicked something bad on the second try. In the end, I basically went through the steps of the unit three times until it went without issue.
Gotta keep in mind to follow the steps very carefully, since this is all new, as I have no idea what I am doing. Maybe I got too comfortable after the last two days material just felt too easy.
Day 4: April 9, 2023, Sunday
Progress
Started Unit 2 of "Develop in Swift - Explorations". Mostly reading and working through small Playground on functions.
Thoughts
This again was all super simple. It seems like the playgrounds are all on very basic programming concepts. Kinda want to click though this faster... But after yesterday's experience I am afraid I might miss something I will need later π€¦ββοΈ
Day 5: April 10, 2023, Monday
Progress
After being recommended hackingwithswift.com yesterday I gave it a look, and I have to say it looks more up my alley than "Develop in Swift - Explorations" (which just feels a bit too much targeted at high school students).
Went through the first day materials today, which was basically nothing new after having gone through much of that just a few days ago. But, definitely looking forward to the rest of it.
Thoughts
Definitely don't want to keep switching learning materials, but this course does feel more natural to me. I also don't want to stick with something that does not feel right because I started with it. So I am moving on from "Develop in Swift - Explorations".
Day 6: April 11, 2023, Tuesday
Hm. Xcode is crashing today. My whole computer already crashed today. Seems like something is going on.
Progress
Continued with the 100 Days of SwiftUI course and completed the days 2 and 3 materials. Got into arrays, dictionaries and enums today. This feels like a way better pace than the "Explorations" book I used before.
Thoughts
I definitely need to get used to the static typing. And dictionaries with brackets instead of curlies π
Day 7: April 12, 2023, Wednesday
Progress
Completed the days 4 and 5 materials of the 100 Days of SwiftUI course today. Went through type annotations, conditionals and switch statements.
Thoughts
At this pace I will be in sync with the course tomorrow or the day after. I think that will definitely be helpful once the basic programming concepts are done and the SwiftUI part starts.
Day 8: April 13, 2023, Thursday
Progress
Bit of a short one for me today as it is getting late. Only got through the Day 6 materials of 100 Days of SwiftUI. Did go through for and while loops and implemented Fizz Buzz in Swift for the third checkpoint.
Thoughts
It's surprising how Fizz Buzz looks a little different every time I do it π
Links
Also, finally started a repo for the course playgrounds. Here is today's commit.
Day 9: April 14, 2023, Friday
Progress
Another short one. Did manage to go through the day 7 materials of 100 Days of SwiftUI and learned about functions tuples.
Thoughts
This is going to be messy with the same words between Python and Swift that do mean slightly different things (like tuples and dictionaries) π
Also, internal and external argument names for functions are interesting. I am not sure I see a huge need for this, but it's good to know.
Links
Day 10: April 15, 2023, Saturday
Progress
Continued with the day 8 lesson for the 100 Days of SwiftUI course and learned about default arguments and errors in Swift. Also worked through the 4th checkpoint to calculate integer roots.
Thoughts
The checkpoint was a bit trickier than I expected. I guess I should have gone for the brute force solution immediately.
Links
Day 11: April 16, 2023, Sunday
Progress
Late one today. Continued with the day 9 lesson from the 100 Days of SwiftUI course. Topic of the day: Closures. Also finished the accompanying checkpoint.
Thoughts
Hm. I am really not a fan of the closure syntax. I just don't really see the benefit of the inline function definition over creating named functions. That is already a trend I don't understand in JavaScript.
The only use case I could see for myself are cases where the closer has only 1 or 2 parameters and a single statement. Everything bigger than that... should probably have a name. That way you can also test it.
Links
Skip day: April 17, 2023, Monday
Bad migraine today. Not really in the condition to learn much. Hope to picket back up again tomorrow.
Day 12: April 18, 2023, Tuesday
Progress
Feeling better today, not 100%, but was able to pick up the learning again. Went through the day 10 lesson of the 100 Days of SwiftUI course and learned about structs.
Thoughts
Structs seem quite similar to classes in Python, especially data classes with the automatic initialization of the values. I am wondering what classes in Swift will be like, since they have been mentioned already π€
Links
Day 13: April 19, 2023, Wednesday
Progress
Continued with the day 11 lesson of 100 Days of SwiftUI. Still have not managed to catch the course days up with my actual days. Maybe next weekend will help π€
Learned more about structs and access control today. Also used today's and yesterday's learning to create my own first struct to complete checkpoint 6.
Thoughts
Swift is the first language I work with that actually has access control π Python and JavaScript have everything open and rely on convention. The idea of access control to prevent yourself from making mistakes is actually interesting. Similar to typing I guess.
Links
Day 14: April 20, 2023, Thursday
Progress
Continued with the day 12 materials of 100 Days of SwiftUI and worked through checkpoint number 7. After having learned about structs the last two days and have been wondering about what classes might be, it was the topics of today's lessons. It appears the main difference comes down to mutability, and I guess inheritance.
Thoughts
It's interesting to have a very clear difference between how to define mutable and immutable types. I have always been wondering how that could be done in Python. I do think that immutable types are usually the better default and also am not super fond of inheritance lately... so we will see how many classes I will create π
Links
Day 15: April 21, 2023, Friday
Progress
Another day another lesson of 100 Days of SwiftUI. Continued with the day 13 materials and learned about protocols, extensions and the combination there of. Also completed checkpoint number 8.
Thoughts
Protocols and extensions look interesting. It seems similar to abstract base classes in Python. The ability to extend build-in types seems pretty interesting though. Neither of those things I have used much before, so that is going to be interesting.
Only two more days left before diving into the UI work. At this point, I am really looking forward to it. Can't wait to finally start building something a bit more sensible than these small examples in the checkpoints.
Links
Day 16: April 22, 2023, Saturday
Progress
Getting closer to catching up with the course. Went through the day 14 materials of 100 Days of SwiftUI and learned about nil and optionals. Also went through the day 15 recap of all the materials of the past two weeks.
Thoughts
The optionals handling is something that I think could turn out super useful. "x is not a property on None" is just a very common error in Python. Being forced to unwrap values by the compiler should be helpful to avoid missing needed checks.
Also, I am really excited to leave the language learning behind me and get started on building some apps tomorrow. That, I think, is really the better way to learn anyhow.
Links
Day 17: April 23, 2023, Sunday
Progress
Woohoo. First working app: β
After managing to go through two days of material from 100 Days of SwiftUI, I am now in sync with the course days. And in the process I build the first working app, a check splitting calculator.
Thoughts
Super happy I managed to catch up with the course materials. And even more so that I am finally in the real app development weeds π
The whole closure syntax and when something is defined as parameter and closure is still feeling a little strange and something I need to get used to.
Links
Day 18: April 24, 2023, Monday
Progress
Continued today with adding some small touches to the "WeSplit" app. Total amount section, wider range of tip amounts, and a little code clean up to reduce duplication.
Thoughts
Had some strange issues in the beginning after starting Xcode. Not sure what was wrong, but it wouldn't run the app in preview but also only have a cryptic error... I just went through and commented out more and more of my code. Once it was working again, it added section of code back... I don't think the final result is different from the original, but the issue was fixed π€·ββοΈ
Links
Skip day: April 25, 2023, Tuesday
Had long day at work today and not enough time and energy for learning at the end of the day. Hope to get back to it tomorrow.
Day 19: April 26, 2023, Wednesday
Progress
Tackled the first challenge of the 100 Days of SwiftUI course today, and build my first app from scratch π It's only a simple temperature conversion app, but hey, I am still pretty happy with it.
Thoughts
I am especially happy with the realization how simple the interface can be, and that in this case a simple interface also maps to a better user experience.
Links
Day 20: April 27, 2023, Thursday
Progress
Quite the full lesson today on 100 Days of SwiftUI. Learned about stacks, colors, gradients, buttons and alerts.
Thoughts
Happy about the content of this lesson though. It definitely answered a bunch of questions I have been wondering about since building my first app yesterday.
Day 20: April 27, 2023, Thursday
Progress
Quite the full lesson today on 100 Days of SwiftUI. Learned about stacks, colors, gradients, buttons and alerts.
Thoughts
Happy about the content of this lesson though. It definitely answered a bunch of questions I have been wondering about since building my first app yesterday.
Day 22: April 29, 2023, Saturday
Progress
Expanded on the "Guess the flag" game today. Updated styling to work in dark mode, updated some of the copy and added rounds count and game over.
Thoughts
I wonder if there is a way to make the alerts show based on a computed property, because handling many boolean flags seems like something that could lead to complex bugs. It might be better to have a single enum to decide the state of the app/view, at least when it comes to alerts π€
Links
Day 23: April 30, 2023, Sunday
Progress
Continued with the day 23 materials of 100 Days of SwiftUI and learned a bit more details about views and modifiers. Most crucially, I learned how to create custom view types and custom modifiers.
Thoughts
I am really happy this was today's lesson, because I have already had the feeling in the past projects that I would like some way to break the view code up a bit more. I think the tools I learned today will be super helpful.
Also had this great moment where I was wondering why the order of modifiers matters, just to find that Paul addressed that immediately in the following lesson. Perfect course structure for my brain apparently π
Links
Day 24: May 1, 2023, Monday
Progress
Review day on 100 Days of SwiftUI today. Just checked what I learned yesterday in a little test. Then also used the new skills and made some slight adjustments to the first two projects.
Links
Day 25: May 2, 2023, Tuesday
Progress
Another review and challenge day today for 100 Days of SwiftUI. This meant: my second app from scratch. This game tests your knowledge of Rock-Paper-Scissors and is harder than it looks π
Thoughts
It also took me a bit longer to implement that the desired 1h per day. I think I get to too distracted playing with visuals... especially considering this plain result...
Links
Day 26: May 3, 2023, Wednesday
Progress
Continued with today's lesson of 100 Days of SwiftUI and learned about dealing with dates and times in SwiftUI. And, completely surprisingly, started working on my first machine learning project as part of today's lesson too.
Thoughts
I had some hiccups working with the date time stuff, but that is not surprising. It's complicated π The machine learning stuff looks super interesting. I wonder if it is possible to also train a model completely on the users device π€ So far I learned about how to use the "Create ML" app in Xcode. We will see what other surprises wait in this course.
Links
Day 27: May 4, 2023, Thursday
Progress
Late day today after a bunch of driving.
Continued with the project 4 lessons of 100 Days of SwiftUI and used the bed time table regression model to finish up the bed time recommender app.
Links
Day 28: May 4, 2023, Thursday
Progress
Went through the project 4 wrap up today. Added some small visual and UX improvements today, like automatic calculation of the output value instead of requiring a button press.
Also finally understood more about custom container views.
Links
Day 29: May 6, 2023, Saturday
Progress
Learned an about few new topics in 100 Days of SwiftUI today. The list view is pretty straight forward, and so if the file access. But the text checker, wow, that is complex.
Thoughts
It seems strange that the text checker has not been properly ported from UIKit to SwiftUI in the last 9 years, especially since UIKit is already announced to be not allowed in new apps starting 2025.
Day 30: May 7, 2023, Sunday
Progress
Continues with today by implementing a word scramble game for 100 Days of SwiftUI. Learned about minor animations, and how to use handlers for submissions and app starts.
Thoughts
Also realized how to use the syntactic sugar the guard statements provide and applied it heavily in today's code. I really like the "fail early" and flat logic this unlocks.
Links
Day 31: May 8, 2023, Monday
Progress
Review day today. Just went over the materials of the last two days and added some small features to the "WordScramble" game, including a scoring system.
Thoughts
This game is hard π
Links
Day 32: May 9, 2023, Tuesday
Progress
A bunch of new materials today on 100 Days of SwiftUI. Learned all about animations. Well, I guess I got the first glimpse of it. This seems like a huge rabbit hole. The tools you get with SwiftUI seem to make adding animation pretty easy.
Thoughts
I have never really considered animations as very useful and find they are often overused and distracting. But, I think the right animation in the right place can be very helpful mechanism to guide attention. Just gotta be careful not to over do it.
Links
Day 33: May 10, 2023, Wednesday
Progress
Continued today learning about some more about animations and transitions with 100 Days of SwiftUI.
Thoughts
Transition animations look like a nice way to highlight when something shows up on screen, especially when it's important and you really need the users attention.
Links
Day 34: May 11, 2023, Thursday
Progress
Had a challenge day today at 100 Days of SwiftUI. I added couple of small animations the flag guessing game. I think they are a nice addition, making it a little clearer when something is changing on the screen.
Thoughts
Transitions I still have not quite figured out. Are they really only to toggle something on or off? π€ I was trying to make the title slide in and out, but I could not get that to look right.
Links
Day 35: May 12, 2023, Friday
Challenge day today for 100 Days of SwiftUI. Did not make it very far into this multiplication tables edutainment game (what a horrific word)...
Not sure what took so long today. Maybe I am just tired from work today, it was quite the early day with sprint demo at 6 am.
There won't be any progress tomorrow either, as I am taking a day off to relax. Will be back on Sunday.
Skip day: May 13, 2023, Saturday
Taking the day off for a short weekend trip.
Day 36: May 14, 2023, Sunday
Progress
After the skip day yesterday, I continued with the multiplication table app from Friday, since I did not finish it then. This again was still taking me more time than I thought it would... and I did not even spend any time trying to make it look nice...
Also went through today's materials from 100 Days of SwiftUI and learned about a variety of topics, like showing other views in sheets, sharing data between views and persisting data between app restarts. All very interesting and important stuff. Much more than animations it seems to me π
Thoughts
I am currently working through the lessons by watching the videos, then writing down what I can remember without looking at the transcript and then implement the code examples.
This approach does mean that it takes me much longer to get through a lesson than the planned hour per day though. I am wondering if I should abandon that approach to limit the amount of time π€ My hope is that this does pay off in better retention though...
Links
Day 37: May 15, 2023, Monday
Progress
Continued with implementing the techniques learned yesterday. This was my first time working with multiple files and passing data between views.
Also had to debug my first bug, that might have been caused by a difference between my Xcode version and the one in the course.
Thoughts
I am definitely happy to learn about code organization, because these single file apps have been getting quite messy.
Links
Day 38: May 16, 2023, Tuesday
Progress
Continued with review and challenges of the iExpenses app today. Added handling of multiple display lists (with delete) while storage in a joint list.
Thoughts
It finally stated to feel like I am getting the hang of things when the teachers solution was pretty close to my own π€ But it's also pretty obvious in other parts that there is still so much to learn π
Links
Day 39: May 17, 2023, Wednesday
Progress
Loads of new materials today again. I finally learned how to resize image and about navigation link and how to create view stacks. This is the navigation I have been waiting for π
Thoughts
The sheets are nice, but seem limited in use. Navigation link on the other hand is everywhere. This will definitely come in handy.
Links
Day 40: May 18, 2023, Thursday
Progress
Learned a few more new topic for the Moonshot app (showing information about the Apollo missions). Generic types, extending Bundle and JSON date format decoding.
Thoughts
All the lessons are taking me quite a bit longer than the hour I have planned per day, which is a bit annoying. Maybe I need to work on the order I am doing things in, or just give up on being in sync with the course and just stopping after one hour
Links
Day 41: May 19, 2023, Friday
Progress
Continued with creating a mission view for the Moonshot app. Did not get all the way through today's lesson. This already took me too long. I was debugging some alignment issue along the way.
Thoughts
I guess this kind of issue is where the real learning is happening... but this is also costing me so much time... I am getting a little sick of it...
It also feels like the lessons are getting a bunch longer...
Links
Description text in the above image is from Wikipedia
Day 42: May 20, 2023, Saturday
Progress
Finished off yesterday's lesson by finishing the mission view and adding an astronaut view to the Moonshot app. Also went through today's review and finished the challenge tasks for the Moonshot app.
Links
Skip-day: May 21, 2023, Sunday
No time today.
Day 43: May 22, 2023, Monday
Progress
After the spontaneous skip-day yesterday, I continued with a new lesson from 100 Days of SwiftUI today and learned about basics of drawing with Path and Shape.
Thoughts
This lower level drawing of UI elements is definitely something I was interesting in learning about in native development. This unlocks a lot of things you cannot do in a nicely designed way with form driven CRUD apps.
Links
Day 44: May 23, 2023, Tuesday
Progress
Continued with the next drawing lesson today. Learnt about transformations, images as backgrounds and borders as well as drawing group for performance improvements.
Thoughts
I have adjusted how I am taking notes and implementing the lessons now, but it's still very long every time. Today, it took almost 40min to follow up on a 10min video. The lessons are packed with information but I am definitely not able to just soak it up on first pass... and copy and pasting the lesson code just does not seem like a sensible strategy either.
Links
Progress
@twostraws did it again. Introduced a topic (animatableData
) in one lesson which makes me wonder about a question (how to animate multiple values), just to answer my question in the very next lesson (AnimatablePair
). Fantastic learning experience π
Thoughts
I still am not sure I understand how SwiftUI is able to follow those value updates to enable animated custom shapes, but it works π Guess that's good enough for now.
Links
Day 46: May 25, 2023, Thursday
Progress
Short one today. Just reviewed the past drawing lessons and implemented an arrow shape with animatable size. Nothing super challenging. Just practicing the last few days of learnings.
Links
Day 47: May 26, 2023, Friday
Progress
Started a new Habit tracking app for today's challenge. I did not get super far. Only been able to implement the basics. List screen, add screen (as a sheet) and data retention between restarts.
Thoughts
This all still definitely takes me quite some time and thinking, but I did remember several pieces. Only had to really look up the encoding and decoding into UserDefaults.
Links
Day 48: May 27, 2023, Saturday
Progress
Today's lesson on 100 Days of SwiftUI was a broader talk on the Swift and SwiftUI ecosystem.
Since a had little bit of time left I went back trying to finish the habit tracking app. I did not get very far. I lost all the time on trying to come up with how to add data to the preview and where to add the navigation titles. So I wasted my time on details instead of making it actually work, regardless of the looks...
Thoughts
I really need to get this under control. Make it work. Then, make it better. I really need to burn this into my skull. π
Links
Day 49: May 28, 2023, Sunday
Progress
Today's new lesson on 100 Days of SwiftUI was all about data storing and fetching. While this may sound a bit boring, I feel like I have actually been waiting for this. Without the ability to store and share data an app will be pretty limited. I am also looking forward to learning more about storing more complex data that does not need to fit into user defaults.
Thoughts
A long the way I have been running in to a few issues when coding the lessons. The error messages in Xcode are often quite confusing. They often show up in weird unexpected places with strange error messages. I am not sure if this could be improved or if this is down to me doing valid but not the thing I meant in one place which causes down stream errors elsewhere...
Links
Day 50: May 29, 2023, Monday
Progress
Β½ way point π Followed along today's lesson and setup three views for the CupcakeCorner app. Not much new material, but good practice nonetheless. I feel like certain bits are starting to click and become easier now.
Links
Day 51: May 30, 2023, Tuesday
Progress
Learned about making network calls in SwiftUI today. It's interesting, and sensible I would say, that you always have to make network calls asynchronously. It's great when default in a framework set you up for good code.
Also learned today that the "i" in "iPhone" is for "internet". I had no idea.
Thoughts
What's not so nice is when you have to write tonnes of boiler place to make it possible for an observable object to also be en- and decodable to JSON. I hope there is some technique I don't know that makes this a bit easier, because all those lines of repeated field names are just very mechanical.
Links
Skip day: May 31, 2023, Wednesday
I planned the day too tight and did not get around to it.
Day 52: June 1, 2023, Thursday
Progress
Continued today with the wrap-up lesson for the Cupcake ordering app and implemented the challenge tasks. Also learned that you can use a struct
for all your app data if you wrap it with an observable class.
Thoughts
The observable wrapper class makes the access to the data a little more annoying, because you always need to go through the wrapper, but it's much nicer than all that boilerplate that you need to make the published keys "codable".
Links
Day 53: June 2, 2023, Friday
Progress
Wow. Quite the lesson today. Finally getting into CoreData. I have been waiting for a proper data base. But, this is also a lot of new boilerplate with the data model, persistent container that needs to be loaded, managed object context set on the environment and all that before you get into fetch requests to get fetch results of automatically generated classes based on the data model π΅βπ«
Thoughts
Wondering how you can attach methods to the classes that CoreData automatically generates from he data model π€
Links
Day 54: June 3, 2023, Saturday
Progress
Started implementing the Bookworm reading tracking app as part of today's lesson. This was pretty much just using the new core data learnings from yesterday.
Thoughts
One thing I am still wondering about is: how views are actually being called. We are defining these layouts by defining a bunch of closures. But when and how are these closures actually executed? I ran into this, because I wanted to create a helper function to simplify my body code a bit. I got something working, but it's not pretty and feels wrong.
Also, I messed up my day number the last two days. I am already on day 54 not 53. I have fixed the posts where possible.
Links
Day 55: June 4, 2023, Sunday
Progress
Continued with the Bookworm app and added detail views and delete options (that was definitely needs to be able to remove all the test data I had accidentally created π )
Thoughts
I still have to look up how to properly align text boxes. Somehow it does not feel intuitive. But I guess it makes sense with the frame and the multiline text alignment being different completely independent. I guess my main trouble was that I tried the right option, but it did not properly respond in the build (probably due to some other bad options)... I guess the lesson is to remove all the wrappings and work on a single item in isolation.
Links
Skip-day: June 5, 2023, Monday
Not much time and energy after a rough weekend and long Monday.
Day 56: June 6, 2023, Tuesday
Progress
Back at it today again after a skip day yesterday with review and challenge day today. Challenge was mostly solved with techniques from previous lessons. It's good to feel things are getting easier though.
Links
Day 57: June 7, 2023, Wednesday
Progress
Short lesson today, learning a couple of new CoreData concepts.
Thoughts
Learning about all this boilerplate makes it pretty clear why everyone was so excited about SwiftData on Monday π That will be so much nicer.
Links
Day 58: June 8, 2023, Thursday
More CoreData theory in today's lesson. And wow. Dealing with relationships just increases the boilerplate and my confusion. I guess first order of business before building something is getting up to speed with SwiftData π¬
Skip-day: June 9, 2023, Friday
Another skip day this week. Did not have enough time today after work.
Skip-days: June 10 - 16, 2023
I tried to pick it back up today, but I could not get through the lesson. It just all a little much right now. And this core data stuff is pretty annoying. It's not something I feel like I can get into my head right now.
I need a break. I'll take a week off and see if I have more energy next weekend...
Day 59: June 17, 2023, Saturday
Progress
Picking the learning backup after a very necessary one week break. I did not go strait back into the 100 Days of SwiftUI lessons because I am still struggling with how all the core data stuff is explained there. Instead, I tried the Core Data boilerplate generation in Xcode. Then I also looked up how to add items to a "many-to-many" relation, because I seem to have missed that before.
Thoughts
Using the boilerplate generation does add quite a bit more demo code, but it definitely seems nicer than typing this all out by hand or copying from one project to the next.
Also a Swiftful thinking video that deals with the core data access a bit differently. Instead of creating the entity classes manually, you can create a data manager class to handle those complexities. This does seem a bit more convenient, especially considering that the manual classes would be overridden when exporting them again.
Adding to many-to-many relationships turns out to be pretty simple with addTo<Property>
, but it took for ever to find the information for some reason.
One thing that I come to find a bit a annoying about SwiftUI is that it's pretty unclear when to use a argument name and when it's only positional... It would just be more consistent if I could always pass the name... I feel like this would be easier for retention and readability (especially for functions with multiple signatures).
Links
Day 60: June 18, 2023, Sunday
Progress
Went through today's lesson recaps at 100 Days of SwiftUI and start working on challenge 5. I did not get super far on the challenge because the recap took me quite a bit of time. I will continue with the challenge tomorrow.
Thoughts
Leaving a large part of the challenge for tomorrow will mean that I will fall behind the course days and my challenge days will not match with the course days any more. And I decided: I don't care.
It has taken me way too much time in the past every day to actually get all the materials in that are scheduled for a given day. That has led to way too long days for me. Those long days are probably a large part what led to me feeling burnt out about the course and, even worse, a lot of the stuff does not seem to stick that well if I try to cram it in.
So I will try to be ok with letting go of the goal of staying matched with the course. If that means the course will take me longer and I won't get through it in the 100 days, that's ok. I rather want to enjoy the learning, make it stick and not get burned out in the process.
Links
Day 60.5: June 19, 2023, Monday
Did not have much time today, but I did work on the JSON parsing for a little bit. So I could this as a half-day.
Skip-day: June 20, 2023, Tuesday
My brain is a bit fried to day after a rough day at work, to I am not attempting to get much done today.
Skip-day: June 21, 2023, Wednesday
Super long day today... So also no time left for learning...
Skip-days: June 22 - 23, 2023
Had a couple of long and exhausting days at work that did not leave me with much energy in the evening to tackle the challenge lesson I am on.
Day 61: June 24, 2023, Saturday
Another dat that I would count as a half. Continued with the challenge and managed to get the JSON parsing and initial data listing done. Not a huge but some progress. Also busy getting my new computer set up π
Skip-day: June 25, 2023, Sunday
Had to get my new setup ready for work tomorrow. This unfortunately did not leave any time for get back to the challenge.
Skip-day: June 26, 2023, Monday
Once againβ¦ not much time leftβ¦
I donβt know if I still have it in me to finish this.
Skip-day: June 27, 2023, Tuesday
Another day I did not make it around to continuing.
The end: June 28, 2023, Wednesday
Ok, I think I got to call it. I don't think I have the motivation anymore. We have found an app the basically solves the problem I wanted to address.
On top of that, it took way more time than the planned 1 hour every day to stick with the course... it was just too much. It totally burned me out. It got especially hard because the project I am on at work also entered a more high intensity phase and I could really use some down time after work, instead of doing another high effort activity like this course.
So I guess that's it for me and learning iOS development. I don't just want to keep going only because I already did it for some time now. That would just mean I succumb to the sunk-cost-fallacy. I have definitely learned some interesting things about software development that are very different from the web development I do at work every day. Especially working with a fully type language has been interesting and I think is something that will serve me well even when I don't use Swift.
And who knows, maybe I will pick this back up at some point in the future when I feel like I have some more mental space to get it done.