Your Second iOS and SwiftUI App · Challenge: Add Prioritized Tasks | raywenderlich.com


This is a companion discussion topic for the original entry at https://www.raywenderlich.com/5662524-your-second-ios-and-swiftui-app/lessons/28

And again, gives everyone a task, that nobody will do, how it supposed to help me to learn something?

Hey, I don’t want to come across as negative - but I find how you give the tutorials very rushed!
I’m already a bit lost at this challenge, so when I’m following along with your typing it’s hard to keep up (especially during the ’ self.taskStore.prioritisedTasks[priotiyIndex].tasks.append’ section (around 4min and 30 seconds in), before my auto complete has had the time to popup with a suggestion, you’ve already went and hit build (I find myself having to switch from watching the video in a PIP along with Xcode in full screen, back to safari to go backwards).

It’s quite a jarring jump from the ’ Programming in Swift: Fundamentals’ section, where Chris was quite slow and relaxed (and you could even hear him typing!).

I hope this is appropriate feedback and doesn’t come across as rude.

1 Like

Thanks for the feedback.

Do you like hearing typing? I haven’t heard anyone have a good enough signal-to-noise ratio for me to ever appreciate it; I personally just get distracted by the room noise around the typing. So I stopped bothering trying to record it. I could get a mechanical keyboard, and try to isolate the fan noise, if it’s helpful for learning.

@syavah Do you still have issues with this?

Hi there!

Is there any reason for this specific design approach where we have sections for different priorities, but tasks themselves do not store that value? I may be wrong, but it seems natural for a task instance to also have a property of its priority.

Thanks!

1 Like

I agree with you completely!

When putting this app together, I couldn’t figure out any way to make that possible, and still have the project seem at all suitable for a beginner’s learning path. It’s not a natural fit for SwiftUI’s data flow. But I’m hoping that will change in a month and a half!

I fiddled around a bit and made PrioritizedTasks a class instead of a struct, so that we could find and alter the correct prioritizedTasks directly, without having to find the index first, as such:

if let tasks = self.taskStore.prioritizedTasks.first(where: {
  $0.priority == self.taskPriority
}) {
  tasks.tasks.append(Task(name: self.text))
}

Is this a bad idea?

I think it’s going to make view refreshing harder, but let me know how it works out for you!

I believe there’s an error in this video. The direction shows to delete TaskStore.task (no ‘s’) when it was, I believe, intended to instruct to delete TaskStore.tasks (with an ‘s’.)

I kept trying to figure out what to actually delete? Find by case sensitive or not? “Am I supposed to delete taskStore.task (lowercase ‘t’) instead?” I got that I needed the data to be added into the prioritizedTasks array somehow, but that little error caused me enough confusion to wash away any potential good result from trying this challenge. Honestly, at this point in the course I was frustrated at the overly complex nature of it. (why 13 files for a simple task list app - why not 4 or 5 files and later teach why that’s not the best thing? - data modeling isn’t needed for a beginner course yet, Combine intro isn’t needed yet for a beginner, bindings aren’t needed yet for a beginner, etc. - just my opinion, but again, I don’t yet know better). This little error put me into feedback mode.

It was no longer a challenge, but a “wth am i doing wrong?” As a beginner, I don’t yet know that it was an error in what was shown on video, I simply will always assume (incorrectly in this case - I think - still not sure) that I did something wrong. That negates learning. In most cases (in this world nowadays), misspellings and errors are sadly the norm (I probably have a lot in this comment) - and expected/commonplace, but in a course where a single error causes a bug or confusion for a newby, precision in the product is ABSOLUTELY NECESSARY in a course such as this, for beginners. Especially paying ones. Later on, when I know better, I would understand what the issue was.

If I had a suggestion - other than precision of course, I would have gotten much more with this course had this been reduced to less complex nature followed by supplementary “intermediate” videos - each course introducing a major concept updating the app teaching larger concepts such as Data Modeling (and “why”), Persistence (and “why”), Bindings (and “why”), Combine(and “why”), etc.

Overall, I truly DO appreciate the time and effort this presenter put in to the course - it definitely shows its professionalism. So don’t take my frustration (which I know happens in coding) as derogetory to the presenter or course - simply my opinions. I enjoyed the presenter and even though I strongly believe there was way too much complexity for this course, it is definitely helpful, I definitely learned a lot, and have a list of very complex things to try to understand this year.

2 Likes

Thanks for the feedback!

If you ever encounter confusion with an instruction, whether it’s a typo like in this case, or not, please ask, and we’ll try to respond as soon as possible.

Also, there’s no harm in watching the first few seconds of a solution to see if that clarifies things, too!

I agree, this was really confusing at first. I spent a few minutes going back to see if I missed in a previous video a taskStore.task property. Would be awesome if you can update the video!

1 Like

@darkmatter Do you still have issues with your deleted post?

Please check out the latest version of the course when you get a chance:

I hope it helps!