"/assets/images/2021/02/SwiftUI-Jam-Logo.png", "title"=>"SwiftUI Jam Logo", "caption"=>"A fun jam for SwiftUI."}">
Searching for Jam ideas is always interesting. You need something that can reasonably be done in 2-3 days, but also need something you can show. Plus, people have lives and things come up. (Or, as you’ll hear shortly, can be literally flung up.)
I went through some of the listings of APIs over on Programmable Web to see if any ideas stuck.
The Art Institute of Chicago has a fantastic API. It’s unfortunately so rich that it’s not particularly well documented, though it does offer elastic search. One of the parameters offered is color, which I thought, “Huh, what if you could search based on color?”
Spoiler alert: It turns out you can’t search on color (or colorfulness, another parameter). heavy sigh
I did find someone on GitHub had essentially looked at and abandoned the same approach.
That was one full day. :P
So, let’s suck a bunch of data in, overfetching, then filter client side, right?
I’m trying to plan this as my cat Lily is literally flinging a bird around in the back yard. Yes, an actual bird. facepalm
Meanwhile, Tianna has gotten a nice couple of screens done despite having a super busy weekend.
Pete, team lead has gotten some work done too.
By midnight, I had the JSON sucking written (on a background thread), I was just trying to figure out where made the most sense to hook it up. Lots of people do it in the .onAppear, which seems too late for an API that may need multiple calls. I’d been working in document applications on macOS, where the data suck is tied to the opening of the document, but this wasn’t the same paradigm, so I needed to think about where made sense. Historically, things like CoreData were instantiated from the AppDelegate (or, more commonly, something invoked by the AppDelegate) before the rest of the app was launched.
In SwiftUI 2.0, though, the equivalent of an AppDelegate is…a view.
I was tired, so I deferred it for the next morning.
I’ve just finished breakfast and am about to write more code when we get the familiar “Do you have a cat named Lily?” phone call. (Number 35 in a series. Seriously. ObCatTax)
Long story short, didn’t get everything I wanted to do done, then realized it’d have been better in CoreData anyway. I’d been avoiding that because it seemed like it might add complexity, but I think ultimately it’d have reduced it (partly because I’ve been working in it more of late).
Based on a few things I saw:
It’d have been helpful to get people’s GitHub experience up front, because some of these I hadn’t thought about deeply before. While I’m not new to git, I’m relatively new to GitHub, and it has its own quirks.
The #iOSDevHappyHour took place on Saturday afternoon, and shoutout to the guy painting his ceiling during the meetup. You go, Mitch!
GeometryReader inside a LazyVGrid can be hilarious if you’re thinking you can use it to set an item’s size. Width was fine, height not so much.