Your Second iOS and SwiftUI App | raywenderlich.com

<p>Use the knowledge you&#39;ve gained from creating a SwiftUI app, and learning the fundamentals of Swift, to create a more complex app: a task list!</p>


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

The second app seems to be running but if I select a task from the list and the return to the list with the Back button, I get a long error message that includes UITableView was told to layout its visible cells and other contents without being in the view hierarchy. Doesn’t seem to hurt anything but the message sounds pretty bad.

(Course is great, BTW!)

??

1 Like

I got all kinds of fun error messages when putting this together—it was pretty much guaranteed that in every beta, old ones would disappear, but new new ones would come about! Here’s hoping for a stabler SwiftUI over the next year. :smiley_cat:

OK - ignoring that problem and on to the next.

FIrst, I have to say the course was terrific. It’s been decades since I wrote any serious code and, somehow, PL/1 skills don’t help much these days. Your course has me writing the productive app I wanted within days. Thanks!

So - made progress on my app and it seems to be working well on iPhone simulator. Decided to try it on an iPad simulator since that’s what I really want and when I run it on the iPad Air simulator, all my lists are empty. Couldn’t find anything obvious so I went back to the TaskList app from the course and when I run TaskList on an iPad Air simulator I get a blank white screen! TaskList runs fine an iPhone simulator.

I’ve tried it on both 11.1 and the 11.2 beta with same results

Help?

My experience:

  • Works on device in landscape.
  • Works in Simulator after two rotations back to landscape.

That’s not good enough! :smile_cat:
It’s clear that the iPhone took priority for SwiftUI development, but there are some workarounds here: swift - SwiftUI Navigation on iPad - How to show master list - Stack Overflow

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.

2 Likes

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!