Group Group Group Group Group Group Group Group Group

Your Second iOS and SwiftUI App | raywenderlich.com

Hi,

I’ve done the course, it was really good, thanks for that. As my own little challenge I’ve tried to adopt dark mode in the app - I know iOS provides it already so I’ve decided to just change a few things like accent colour or tried to make the background colour a bit lighter than just black. And problems.

Can’t find anywhere online how to actually change the background colour of the app i switfUI even in light mode - any of the courses you’re offering on the webiste tackle dark mode, colours and using assets color sets?

Thanks

Currently, these screencasts are all we have; we don’t have any Dark Mode-focused content specifically for SwiftUI.

https://www.raywenderlich.com/3788563-dark-mode-the-basics
https://www.raywenderlich.com/3979883-dark-mode-deep-dive

What do you think would be a good umbrella topic for a future course in which Dark Mode is covered? Perhaps “Colored Assets in iOS”?

1 Like

I couldn’t help but notice that when editing a task, you have left out the ability to change the task priority. You are forever stuck in a single priority. I tried, but failed to implement that feature. Had all sorts of issues with passing a bound priorityTask.
Would love to see an additional section on adding this.

1 Like

I’ve actually been thinking about what createch is talking about but instead of changing the priority on a task I was wondering if its possible in SwiftUI to move between priorities (eg dragging a task from high priority to low). I know it’s possible with UIKit but have no idea how to implement it with SwiftUI, I’d really appreciate any help.

As far as anyone seems to know, it’s not possible.

I mention that at the end of the episode on Section Views.

As for changing task priority, I left it out because SwiftUI didn’t offer a beginner-friendly solution. I expect this to change next year.

I was wondering when the IOS learning path will be swiftUI instead of a combination of UIkit and SwiftUI? I feel like its really unorganized at the moment.

As Ray goes over here, the learning path is going to cover both frameworks until we feel UIKit isn’t relevant anymore.

The transition to the hybrid learning path is not complete; we’re working on updates for the courses that come after this one. In general, when we can cover a topic with SwiftUI, then we’ll be using SwiftUI exclusively for new and updated content, and primarily only updating the projects for the older UIKit content on similar topics.

I’d like to ask if it is recommended to take the Your Second iOS and SwiftUI App course next in the learning path if I just finished the Swift Programming Fundamentals Class?

I ask this because the Your Second iOS and SwiftUI App course has a lot of content that was not covered in Swift Programming Fundamentals, the class that precedes it in the learning path. Instead, the Your Second iOS and SwiftUI App course has several topics that are actually covered in the class that follows the Your Second iOS and SwiftUI App course. These topics are protocols, enums, and closures, for example.

Should I take the Programming in Swift: Functions and Types course next, and then go to the Your Second iOS and SwiftUI App course? I’m a beginner and I don’t want to be lost and discouraged if I’m expected to do things that I haven’t learned yet. Please help. Thank you.

How did the Your First App courses go for you? The same idea from that, and the following course, is used again here: get acquainted with concepts as they’ll appear in an actual app, and then have a deeper dive into the language later.

That seems to be the most popular approach, but that doesn’t necessarily mean it’s the right one for you! We do put a lot of effort into the flow, but as you’ll see in forum comments, the way it matches up with what every learner needs is unique and personal.

If you’ve got a subscription, feel free to jump around as you see fit, getting more information on topics as your interest gets piqued. That’s how I learned!

1 Like

Thank you, Jessy, for your quick reply. I’ll try covering the topics first in the “deep dive” course, and switch to the Your Second iOS and SwiftUI App course afterward, then. Thanks again.

1 Like

As a person new to programming, this course felt MUCH more difficult and advanced than the ones before it. I easily followed along as we created the Bull’s-eye app and felt comfortable during the Swift Fundamentals class.

Embarrassingly enough, I was not actually able to create this second app — I had to quit in the last module of the class and just watch the videos without coding along. I started watching the videos at 75% speed (and sometimes 50%!) because it was going way too fast, but even cranked to a glacial pace the content was largely over my head. It was like hearing someone speak a foreign language compared to the other classes on this learning path.

I don’t think this is an issue with Jessy’s instructional style necessarily… maybe this course is a bit too early in the learning path or something? Or this should be the third app we build rather than the second? The previous videos felt like they were at a 3 or 4/10 difficulty and this one felt like an 8 or 9/10 by comparison.

1 Like

Great course! I’m curious if there’s a download the finished TaskList project option? I ran into a bug in the second to last section about binding that I couldn’t find solution to.

1 Like

Yes, it’s in the Download Materials for the last episode before the course conclusion.

Hello Jessy,

Loving your enthusiasm and clarity in these videos.
I’m on part 2-13, just finished the “Observable Objects” video and my code is exactly as yours (with a lot more comments !).
But the app, in the sim AND on my device, gets stuck after the first added item.
I get an error message in the log as soon as I tap a character to give my new task a name :

TaskList[5088:1291759] [general] Connection to daemon was invalidated

but the app still works.
After tapping the Add button, the NewTask view disappears and the task is added.
But then, the + sign is unresponsive…

[update] : same issue after actually downloading the “end” code from the course and running it, with an extra error line in the log :

2020-03-27 19:15:06.286412+0100 TaskList[5141:1308481] [general] Connection to daemon was invalidated

2020-03-27 19:15:16.454572+0100 TaskList[5141:1308244] [Snapshotting] Snapshotting a view (0x102828a00, UIKeyboardImpl) that is not in a visible window requires afterScreenUpdates:YES.

Any ideas ?

Thanks

1 Like

At this point, the majority of the episodes have a comment related to this bug. :sob: I still have no word from Apple, and don’t expect a fix before WWDC. Less than three months until a hopefully much-improved SwiftUI!

Thanks Jessy.

Seems like it really makes no sense to dig into SwiftUI too much right now…
Maybe even for a couple of years !
That’s too bad, my goal was to update a few of my 10 year-old obj-C apps to SwiftUI, mainly to avoid the whole Autolayout mess…

@ryannee Thank you for your feedback - much appreciated!

@jessycatterwaul just a note, I think this course should come after the " Programming in Swift: Functions and Types" in the iOS Beginner’s Learning Path. I’m by no means new to programming, but I am new to Swift, and going through this course I was often left scratching my head about what on earth was going on. Going through the Functions and Types course would have made it much easier to follow along in this course (particularly the section about closures).

2 Likes

Is the “Your Second iOS and UIKit app” course gone? I’m coming to this straight from the path and have zero experience with SwiftUI as I chose the UIKit path for the first Bullseye app.

Working through this tutorial I was surprised the code in the Binding video worked despite XCode raising an issue. Specifically, the code in ContentView is changed to be:

ForEach(taskStore.tasks) { index in
  RowView(task: self.$taskStore.tasks[index])
 }

I’m surprised this works because it is now iterating over tasks rather than indices, but then treating the value as an index inside the loop. What’s the intuition here? Thanks!