Finally home after a long but extremely satisfying trip to

@cocoaphony I stumbled upon this as I was thinking about the assertion and failure api I've developed. I currently do Abort.because("reason"), but I realized I could do Never(because: "reason") as well.

I'm thinking about how much I like this or not

@ronnqvist My bug was that I was getting a height constraint set on the view (despite the flexible height mask).

Switching to pinning the 4 edges Fixed Everything™. Just another sign to me that we should be using AL directly instead of trying to shortcut through resizing masks

This is kind of a "well, duh" moment for me, but I *just* realized that setting a "flexible width, flexible height" autoresizing mask and translating into constraints is NOT the same thing as pinning the top, bottom, leading, and trailing edges.

Finally found the source of a bunch of minor layout issues

I just realized you can add init() methods to `Never` in an extension.

As long as you fatalError() in there, the compiler is totally fine with it.

This is very very interesting to me.

@pixel feel free to ask more questions and/or check out the videos on the CV page of my site. Gotta hit the sack now. It’s 3am here

@pixel in my apps, a screen is composed of many view controllers

@pixel no, you still need controllers.

It’s just that those controllers are UIViewControllers

@phausler I’m gonna have to think about that. My gut reaction is “no”, but there might be some truth to it. UIView is static in the sense that it doesn’t change itself; changes generally need to be externally applied

If you're interested in the slides I presented at on "A Better MVC", I've actually uploaded them for once:

I put in some extra effort to replace animations w/ arrows in the pdf so you can kinda sorta get the same effect.

@geekygent Alternatively if you prefer reading, I've got a series of blog posts on the idea (although my ideas have evolved over time, which I try to capture).

Starting here:

@geekygent boy have I got a conference talk for you... 😉

Basically, I avoid Massive View Controller through a lot of application of child view controllers and small, single-purpose view controllers. All business logic gets moved out of them to higher levels

Check out any of the "A Better MVC" videos linked to here:

(The one will be up in the next few days)

It's basically the idea that, to me (and you're welcome to disagree cuz you know we're all human), a UIView is a *static* thing. You give it text/colors/images to show, and that's it.

To me, *mutating* that, whether immediately or w/ animation, does not belong in a "static" UIView, but belongs to that view's UIViewController.

Thus, UIViewController is responsible for shoving data into your UI and shoving *around* your UI, and not much else. To me, that makes it a View.

Now that is over and my latest delivery of is done, I've just realized a better articulation of *why* I believe UIViewController belongs in the View layer of your app

@Cdespinosa and calendars. Somehow they’ve come up with a way to consistently measure time regardless of one’s gravity well and I NEED TO KNOW WHAT IT IS

@sirshannon yep, that one! iFixit did a teardown of one, and I can see there's not much spare room inside, but I'd be willing to have it be a little bigger if I could get rid of the dumb cable

@sirshannon I'm talking about the USB-A → puck charger that comes in the watch box, not that massive monstrosity

I've been rehearsing my presentation and oh my god I love the Logitech Spotlight remote. Hands down the best presentation remote I've ever used:

I would love to see an Apple Watch charger that was just the puck with a lightning connector hole on the side, so I could plug it in to a lightning cable.

I filed a radar on this years ago, but I think it got closed. I don't really know why though; this would be amazing to toss in my Bag O' Dongles.

Show more

Follow friends and discover new ones. Publish anything you want: links, pictures, text, video. This server is run by the main developers of the Mastodon project. Everyone is welcome as long as you follow our code of conduct!