Giving up on Bullseye (UIKit) in version 8.1

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)


.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 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.]

1 Like

@frostbite Thank you for your feedback - much appreciated! I will forward it to the book team.

This topic was automatically closed after 166 days. New replies are no longer allowed.