I’ve been working my way through version 8.1 of the ebook. Some thoughts and errata:
Section 1, Bullseye with SwiftUI, was very good and at the right level for a beginner.
However, the jump to section 2 was big. Really big. It was like going from having someone hold your hand an walking up a gentle hill with you, to being thrown out of an airplane with a roll of cloth and the instructions for making your own parachute.
Anyway, I worked my way through it, although I would’t pass a quiz at the end of the section…Having every single class, file and object start with “CheckList” sometimes made it hard to remember exactly which part of Checklists I was working on.
Then came Bullseye again, now with UIKit.
Sadly both Section 2 and Section 3 were full of errors, missing text and text that looks like it should have been removed. I made some notes along the way, posted below (page numbers refer to version 8.1).
In particular, I found the parts about delegates in Section 3 incredibly dense. And there was a part there about Objective-C legacy code which was not very easy to follow. After having encountered a repeating crash after having typed in everything along the way, I’m not going to bother with Section 3 anymore. If I ever have to make a Bullseye app, I’ll just do it with SwiftUI, not UIKit!
I also found it strange that on page 702, after having spent the previous 701 pages working with functions, variables, constants and so on with a steep learning curve, the book suddenly takes a few pages to go through some relatively basic introduction to these and other concepts. I sure would have appreciated seeing this some 700 pages earlier.
Anyway, I downloaded version 8.2 and will start working on it now, hoping there are fewer typos and that MyLocations isn’t too challenging!
Misc. errors:
Page 253: Missing text in a grey box.
Pages 285-287: Photo captions do not match photos.
Page 321, typo:
Now, make use of oveListItem in .onMove.
Page 381: Nowhere does it say to replace
.onDelete(perform: deleteListItem)
.onMove(perform: moveListItem)
with
.onDelete(perform: checklist.deleteListItem)
.onMove(perform: checklist.moveListItem)
The app will not build and run until this is done.
Page 413: There seems to be a “note to self” here which should perhaps have been removed before publishing:
[I changed this sentence from passive to active voice. Is Xcode the correct actor.]
Page 448:
whose code is trying to pass put a checklist item
Page 450:
IIn the previous chapter
Page 624:
Change this methods
Page 658:
The user can always press Cancel, but Done only works when there is text.to listen to changes to the text field
Page 667:
Protocols [TODO: delete me?]
Page 672: A grey box with simply the number «5» inside of it.
Page 673:
[TODO: FPE: Is this spacing OK? I can’t see how it renders, so I can’t verify.]