Check out Deborah’s story as it started out here
Apple’s WorldWide Developers Conference (WWDC) for 2022 kicked off with the Keynote (1 hour and 48 minutes) where I sat and enjoyed the presentation and did not take any notes. The Platforms State of the Union sessions (1 hour 10 minutes) was next, after an hour for lunch on the West Coast. This also is a session I watch and do not take notes. They also had the Apple Design Awards (18 minutes) and a Day 1 recap (3 minutes).
During the week, I looked over the list of sessions available each day and jotted down the ones that I was most interested in, listed by the days the videos would be available. I figured I would start with those and potentially watch others based on what I learned from the first set and how much energy I had left from the day.
On June 7, I was ambitiously planning on watching the following sessions, once they because available that day:
I opened a Word document and copied the transcript of each session and any code that was attached and pasted it into the document. I figured it might come in handy to look for terms, ideas, or code snippets someday.
The first session, Build Your First App in Swift Playgrounds, was interesting, and I do not have a lot of hand-written notes about it, as it did not directly apply to my goal, to learn how to use SwiftUI to update my way-out-of-date-app.
The second one, Dive into App Intents sounded promising and yet…it was about how to make it easier for a user to RUN your app, not how to describe what I intended it to do for me. I took lots of notes from Implement App Shortcuts with App Intents because I was determined to make them work for me somehow.
Now, the SwiftUI Cookbook for Navigation was exactly what I needed. It talked about three-column navigation split view, and showed Recipe Categories, Recipe List, and Recipe Detail. This would work fine for me. I need to implement this! Yippee! I found what I came for!
Now, I just needed to dig deeper and find out how to implement what they were cooking up! It talked about new container types: NavigationStack and NavigationSplitView.
I did not watch the last session I had planned for Monday. I saved that for Tuesday morning, as the new sessions were not available when I get up early (I live on the East Coast of the United States and Apple and their timeline is based on their West Coast location) and I wanted to have something to do so I wasn’t tempted to log into my full-time job and check on some things. This was my “vacation” week after all.
On June 8, I added to the one left-over session with the following choices:
I started with What’s New in Swift UI from Monday’s list. It was a list of sessions that talk about the details of new items in SwiftUI, such as The SwiftUI Cookbook for Navigation, which was the last session I watched the previous day, so I congratulated myself on that choice.
The session also mentioned Swift Charts, and this was not of interest to me because I had no immediate plans to add charts to my app. It then talked about sharing, and since this is broken in my app currently, it peaked my interest until they talked about Mail, Messages, Air Drop, Notes, Add to Photos etc and not Facebook or Twitter, that are not not considered sharing now. The session ended with a peek at layout and how a mixed layout can be achieved with Grid, GridRow and GridColumn.
Next up was Create Your Privacy Nutrition Label. I went into this thinking there was an actual label that would need to be filled out to submit an app to the store. The areas are Data Used to Track You, Data Linked to You, Data Not Linked to You, and Data Not Collected. If the developer selects the last one, the label reads, “This developer does not collect any data from this app” and that applies to my app. So, that was all I really needed from this session.
On June 9, I added just two more to my original list:
I still have not watched either of those sessions. I started the day with What’s New in Xcode which gave me a list of other sessions to take a look at when I have time. Some new code was introduced and hints and tricks were shared to make coding faster by using code completion and using simple icons in a single size instead of needing all the sizes for all the different versions of pixel count now available.
The new sessions I added to the watch list are:
I decided to watch the last one on that list first, Building Global Apps: Localization by Example. This sounded promising, and I was interested in how well the translation would work for my app. I thought it was too much AI and not enough about how you will need to hire translators who would take the text you send them and return it in different languages, which you reference in code to use the localized version of the text.
My small little app is not going to be translated. Not for this next version.
Next, I watched the session Compose Custom Layouts with SwiftUI and learned about grids and geometry reader and the layout engine. It was way over my head, and not really relevant to what I was hoping I needed to do. I thought starting in Swift Playgrounds is where I should turn my attention. I watched Create Engaging Content for Swift Playground only to find out that this was not relevant either since it was about how to write an app for learners.It was interesting though!
I had signed up for a Design Lab appointment so someone from the Apple Design department would take a look at my app currently available and make suggestions on how to improve it and bring it up-to-date. I took lots of notes on what he found when he used the app, and I have a few things to think about when re-designing the app that I hope to incorporate into the final product. Then, as I was looking around for sessions to watch, I noticed that my all-time favorite SwiftUI online instructor, Paul Hudson (@twostraws) had recorded a session at Apple Headquarters in their new developer lab podcast space so I just had to watch it. It was What’s New in SwiftUI for iOS16 and this is the session I took the most notes from and, as usual, after watching his session, I wanted to jump right in and start coding.
Well, WWDC is over for the year. There are still sessions I would like to watch…you know, that magical time we all have called “someday”. It is time to get the app updated and into the app store before the time runs out and Apple pulls it from the App Store. That story was in part 1 and documents now I spent most of my Saturday after WWDC, all psyched up to get going with this new-found knowledge and enthusiasm for a redesigned version of my personality test app (Which 1 Are You).
After spending way too much time on Saturday downloading the Beta version of Xcode, making sure the app works, and then finding out I can’t submit to the App Store from Beta, and all the other pitfalls I tripped over, I was not too enthusiastic about redesigning the app. So, I reread some of my notes, and remembered that I had had a dream over night about how exactly I could do this.
I started a new project in XCode, called TestingCode. To use as a proof of concept It has three structs, some state variables, and the body consists of a NavigationSplitView from the Cookbook session and Paul’s podcast. I thought I had understood it, and yet I cannot get it to work. And it’s back to my full-time job, too!
And that is where this blog ends, for now. Tune in for part 3, where I debug the issue, and learn more about this intriguing NavigationSplitView and how it actually should work. This is where the transcripts and code samples from the sessions I copied should come in handy to see what the pieces of the NavigationSplitView actually should be and how they work together.
Any comments? Suggestions? Email me at FromInterpretedBasicToSwiftUI@gmail.com.