Chapter 13 Feedback

Great book Audrey, Caroline, et al. Very informative.

I’m hoping the following feedback on Ch 13 is useful…

Under “Creating a Full Screen Modal View”

“Add a modifier to CardThumbnail():” - It would have been clearer to me if it read: “In CardThumbnail, add a modifier to the RoundedRectangle View”

“In live preview, tap one of the cards.” - It would have been clearer to me if it read: “In CardsListView live preview, tap one of the cards”

Also, there are steps missing to complete the use of the @State variable (isPresented). In a manner similar to previous chapters, I had to update the call to CardThumbnail in CardThumbnail_Previews with the isPresented parameter and also the same call in CardsListView. This is not called out in the instructions. Perhaps these omissions were intentional to reduce hand holding as the reader progresses through the text?

Under “The Navigation Toolbar”

Specific instructions to wrap Color.yellow view with a NavigationStack are omitted in this section (they are covered in the next). As a result, adding the .toolbar modifier for the Done button has no effect (as pointed out in the next section). “You place a Done button at the top right of the screen” is not true at this point as the NavigationStack is not yet added. Then there is a digression into placements before the writer explains (in the next section) that the ToolbarItem will not show up until the NavigationStack wrap is completed. For me, it would be a better learning experience to have the whole process laid out…starting with the NavigationStack wrap.

Under “The Bottom Toolbar”

It would be clearer to me if the explanation “Each modal button will use this view…” was placed before “Above BottomToolbar, add a new View for a…” It would give context to understand why we created “BottomToolbar” and then immediately pivoted to creating another struct within the same file.

Under “Adding the Other Buttons”

“Add this property to ToolbarButton:” - it would have been clearer to me if the context provided after the modalButton property was presented above it (again context).

Kudos for the modal property type/initialization. Very thought provoking…thanks for further opening my mind to the things that are possible with Swift/SwiftUI.

2 Likes

Hi James, and welcome to the forums!

Thanks for your great feedback, which we will revisit for our next update :blush:.

One thing though.

Under “Creating a Full Screen Modal View”, you shouldn’t be changing files as you described.

In CardsListView.swift, change

CardThumbnail()

to:

CardThumbnail()
.onTapGesture {
  isPresented = **true**
}

Then you wouldn’t have the missing steps you describe. There shouldn’t be any omissions in the book as we don’t reduce hand holding (much!) :).

However, as you have mistaken the instructions there, it may need an change, such as:

Still in CardsListView.swift, add a modifier to CardThumbnail():

Hi Caroline,

Thank you for the fast response. Copy all.

James

1 Like