Dev Diary - November 2023
This was a lighter month on the personal project front as my focus was on taking a lighter load after finishing 100 Days of SwiftUI. This will be a quick wrap up of SwiftUI, look at the initial work on Bible in a Year for iOS, and a preview of what will come in December (spoiler: not much, the holidays are a busy time).
100 Days of SwiftUI #
I wrapped up 100 Days of SwiftUI early in the month, finishing the last few projects and the final exam. In the end it took me about 32 days to finish the course and I finished with a 96/100 on the final exam. I can 100% recommend the course for learning iOS as I strongly feel I can start building apps for iOS now on my own (which I currently am!) and I have been able to help review pull requests for my iOS counterparts at work. The only things I feel I need to learn now to be fully proficient are more on architecture, how to build apps in a layered way specifically, and the platform specifics that are only picked up with more time/experience.
Bible in a Year for iOS #
I started working on the iOS version of the app this month in the little time I had available for projects. I've got the JSON parser working and displaying a simple list on the screen. The app has a long way to go both in structure and functionality, but it was exciting to see the first steps up and working. I do think I need to be conscious of writing the code in a "Swift" way instead of just translating the Kotlin code directly, I'm not sure I was successful with that in this first work. Here is the repository to see the state of the project now.
Key Learnings #
- Don't translate Kotlin and Swift one-to-one - The parsing algorithm was rewritten by looking at the Kotlin code and writing it in Swift. That algorithm is likely less efficient as a result. I want to avoid that in the future, especially since libraries like Flow and Observable don't translate one-to-one at all.
- Take time to recharge - Reflecting on this past month, I was at first disappointed by how little I got done compared to previous months, but I also realized that by taking the time, I'll be more prepared to accomplish more in the new year.
- Small PRs, Better PRs - The next few takeaways are all from work and the first is from our exploration of Trunk Based Development. We broke the idea that 1 ticket == 1 pull request, and have started doing multiple smaller PRs per ticket. This has increased PR speed, thoroughness, and accuracy as well as having forced us to think about the little units that make up a feature instead of treating it as a monolith.
- Dumb UI is Smarter - I've talked about "dumb" UI in previous posts, but I can now say with some certainty that I 100% recommend applying it to any project after having done it for several screens in our app. Keep an eye out for a blog post on the concept soon!
- Compose UI AND Compose State - Compose, as the name suggests, allows you to build components for your UI and "compose" them together. We recently saw an example of how you can apply the same concept to your UI state to create reusable, testable, and isolated pieces of state.
What's Next #
I am going to be transparent and say I am not going to be getting any substantial work done in December. I'll be spending lots of time with family and celebrating the holidays. In lieu of a monthly dev diary next month, I will be doing a year in review on the work I did throughout 2023 and a look forward to 2024.
While the end of the year is a much slower time, I'm looking forward to a lull and then getting back after it in January. Keep an eye out for blog posts, they will continue to come out on the regular weekly cadence. Until next time, thanks!
Did you find this content helpful?
Please share this post and be sure to subscribe to the RSS feed to be notified of all future articles!
Want to go above and beyond? Help me out at one of the services below, it goes a long way in helping run this site. Thank you in advance!