My tip for SwiftUI: if you find your list of @State variables is growing long, admit it: you’re actually building a view controller. Stop that! Start breaking it up into smaller View components.

First impressions of using SwiftUI for real

My first impressions of SwiftUI were it was a bit of a slog to get up to speed; the changes from the beta to the release version weren’t helping; sudden unfamiliarity after years of UIKit was uncomfortable; live previews were failing more often than they were working.

But after a couple of weeks it dawned on me: you’re mad to try and build a SwiftUI app like a UIKit app; which of course was what I was doing.

UIKit requires you to have a working app, to even start to see anything running. With SwiftUI you can start from a single screen that you’ve been imagining and see its preview as you build. No need to think about the app’s model, the launch behaviours, the navigation, or any of the plumbing.

Gotta break those UIKit habits; just start playing with a single view. It was much more rewarding and each proof of concept was easier to reach. Kind of like building from the inside out. You get to build the most important concepts first.

Damn, just noticed in tomorrow’s forecast, Shifty Jelly announce the Pocket Weather servers are finally shutting down Dec 31st 2019

Some very cool footage should appear here soon… www.youtube.com/channel/U…

My new favourite Google search query argument: -site:medium.com. What a breath of fresh air.

If you’re going to use UIDocumentPickerViewController, and also support opening files from the Files app, and now the home screen on iOS 13, it’s best to just use a UIDocument subclass. Even if it’s simple data. UIDocument handles the security-scoped URLs and file coordination, saving you some potential frustration.

Loved Fleabag. What an astoundingly good bit of writing it is.

Hoorah! In Swift 5.1 omitting return from single line functions also applies to computed properties. It’s the little things…

If you’re using the Network Extension framework and are getting a crash building on Xcode 11 running on iOS versions pre-13: dyld: Symbol not found: _NEHotspotConfigurationErrorDomain there’s a messy workaround described here: forums.developer.apple.com/thread/12…

It’s about to begin, excited!!

Trying to track down my Grandfather’s WWII service medals and record of service book.

Here’s a mystery! I was searching for details about my Grandfathers WWII service in Tobruk today; he was Private Stanley Herbert Seiver, serial number: WX9870. I stumbled on some photos of his medals and service record on a Flickr photo stream:

www.flickr.com/photos/ka…

This was uploaded to Flickr in 2015, with a comment saying “Found on eBay”.

Turns out they’ve been missing since 2001, and no one has seen them since. I assume sometime in 2015 they were sold on eBay.

Not sure what to do next…

For years I’ve been wondering where the track “When the tigers broke free” came from, that’s heard at the start of the Alan Parker, Pink Floyd: The Wall movie. Because it’s not on the Pink Floyd album.

Just found it on The Final Cut album! In all those years a simple search would have probably found it for me :P

My Objective-C is getting a little rusty… * looks up NS_ENUM syntax…*

Good read from Dropbox about the cost of sharing code between Android and iOS: blogs.dropbox.com/tech/2019…

I’ve never fully bought into the notion that building native apps on Android and iOS is a waste of engineering capacity because you’re building the same thing twice. I’ve no experience to back that up, just a feeling that native development is the most straight forward way to get a product made. Straight forward to maintain, support, hire developers for. You’re not swimming against the current of the platform improvements that are constantly delivered by Apple and Google.

Beautiful and mind-blowing: solarsystem.nasa.gov/resources…

Some get as high as 2.5km.

Rework (23 July) is a great episode for people struggling with building complex software products in teams overcast.fm esp. if you’re over the way agile is done in a lot of places.

Working in 2 week sprints was supposed to provide a realistic perspective on development capacity, to enable better product prioritisation decisions. In my experience all it did was allow pressure to be exerted downwards to the developers; always the question why sprint targets were missed.

Even with all the battering rams and canon balls in my arsenal, I could not storm the gates of Sleep Castle.

despite my many invitations, attempts, offers of support; my love of sleep remained unrequited

The night: a tempestuous ocean; sleep: an island too far

Sleep eluded me last night; paraded it’s witnesses and suspects through my head; by the morning it was still at large.

I am deliriously unslept!

I feel like I’ve finally got a handle on how Auto Layout works with UIStackViews, how stackviews get their intrinsic content size depending on the set alignment and distribution properties. Luckily, just in time to be able to toss it all away for SwiftUI :D

My Son’s dog, a little white terrier, was leaving my office. He stopped in the doorway, turned to look back at me, farted noisily, then continued down the hall. Now I’m racking my brain for what I might have done for him to take offence. An acrid cloud of tension lingers in the air between us…

Wow, checkout What’s New in Swift developer.apple.com/videos/pl… from #WWDC2019. Feels like Swift suddenly got super powers with Swift 5.1. Also shows how SwiftUI is a direct product of these new features.