After watching the ball drop this year, I know that what we needed to do was have the year sponsored by Kia and planet fitness.
Lilly love neck rubs.
I just spent an hour going over a 15 minute tutorial. It was great.
I think I might have to work on the workflow between taking screen captures and marsedit.
Swift Slowly: Day 9
Getting back into the swing of things and I’m continuing with the tutorial. Today is about State Management.
In this tutorial, you’ll add two new features to Scrumdinger. First, you’ll add a view to create new daily scrum meetings. Then you’ll update the meeting timer to keep track of past meetings.
Section 1: Use EditView
Today, I felt a little more confident in myself and my tools. I went with the option of defining the content of views and closures in the way that Xcode wanted.
For example, Xcode places the following as a method signature.
The tutorial defines the sheet as the following.
Semantically, they are both the same but I feel that the one in Xcode definition is less ambiguous. I’m still learning and want to be able to read this code later.
I pat myself on the back for being able to understand both options.
That being said, I don’t know if I like the idea of creating multiple views in a single line to make a composition.
I can see why you would do it since you aren’t using the buttons anywhere else in the application but I hope that I’ll continue to be able to learn and think in the swift way1.
I don’t like long lines for code.
Much better.
Section 2: Add Scrum History
Purpose: Re-enforce the ideas of state.
I’m immediately impressed with the object diagram.
The second section really made things click for me and having the alt-click shortcut allows me to look up the documentation quickly.
In review
I liked today’s progress. I really feel that a lot of stuff clicked for me. This isn’t my first tutorial, and I’ve attempted to learn multiple times in the last couple of years. Today was jun and I’m looking forward to tomorrow.
I was trying to lose weight this year. I’ve been creeping up more and more these last couple of months.
So, I bought a controller to for my Mac and my daughter asked to use it. My swift development has come to an abrupt halt.
I haven’t forgotten that I was going to work on my swift development. I just used that time to spend with the family. That’s part of why I’m thinking of it as #swiftslowly.
I want to understand this and not give up on myself by making it a habit.
I wonder if this is new in the beta?
Swift Slowly: Day 8
I’m continuing with the Managing State and Life Cycle section of the Apple SwiftUI Tutorial.
Section 4: Add a State Object
Purpose: Learn about State Object
This sections was pretty small and introduced the concept of “Source of Truth”.
At this point, I got a little side track with trying to get an understanding of how it all comes together and getting the above picture.
Section 6: Extract the Meeting Footer
I’m not a fan on the syntax for closures and views. Defining a closure in the view means that I have to specify it when I call the view doesn’t make since to me.
I guess it’s part of the language. You can’t have a view that has values that aren’t defined.
Section 7: Trigger Sound with AVFoundation
Purpose: Lear about audio feed back
Right away, I liked this part of the tutorial because it starts showing me how to use different resources.
Swift Slowly: Day 7
Today marks the 7th day that I’ve committed to blogging about my development. This continues the walk through with Apple’s updated1 SwiftUI tutorial.
In today’s tutorial, I’ll be working on the following.
In this tutorial, you’ll learn how to use reference type models with SwiftUI views. You’ll display meeting time and progress in views that better represent the final design. And you’ll integrate with AVFoundation to play audio when the scrum’s state changes.
It’s supposed to be 30 minutes.
Section 1: Create an Overlay View
In this tutorial, I’ve seen more warnings during the individual steps than I have with the previous days.
For me, this causes a little bit of anxiety as I think more about “how do I make this go away?” Versus “how am what I’m doing going to make this work?”
Section 2: Extract the Meeting Header
Purpose: Learning about making composited views
The steps have been pretty easy to follow.
I HATE ternary statements!
minutesRemaining == 1 ? "minute" : "minutes"
All in all, pretty fun to follow along with.
Section 3: Add Design Elements to the Meeting Header
Purpose: Make the component view use dynamic properties
As I’m adding things to make the message signature, I notice that some lines need to be wrapped. Xcode does a good job of making it legible, but I’ve spent a lot of time having code be wrapped at 80 characters for one reason or another.
End for the day
I decided that I was going to end programming for the day.
-
As of December 22nd, 2020. ↩︎