Jeff Verkoeyen Profile picture
Staff eng lead for Google Design on  platforms. ex-: Robot/Pixel Heart, Google Maps iOS (v1), Nimbus, Three20, fb iOS, Sony, Waterloo. Opinions are my own. 🪶
otaria123 Profile picture 1 subscribed
Jan 21, 2022 18 tweets 3 min read
SwiftUI is great until it isn’t, and I think the biggest limiting factor is that you aren’t able to control the realization of the DSL as UI.

Some thoughts on this as a 🧵 Purely declarative systems are only as powerful as the underlying mechanisms that realize them. It doesn’t matter how nice the DSL is if you can’t express a concept due to the underlying mechanisms.
Jan 20, 2022 15 tweets 5 min read
Some of the things I've learned over my vacation while having to use my iPad Pro as my sole programming device for UIKit-based app development (RIP my 2019 macbook pro), a 🧵: Swift Playgrounds, for a "first release", is pretty darn good.

It's clear the MVP for v1 was "idea to App Store", and all the parts are there to let you do that.

There's quite a few features Swift Playgrounds will need if it wants to go beyond that, though.
Jan 1, 2022 11 tweets 4 min read
UIKit design fundamental #84

Switches are only meant to be used as accessory views in table view cells. In most other places, consider using a UIButton built as a "toggle button" instead.

Why?

It's actually a bit nuanced! A 🧵. UISwitch controls are quite small by tap area standards, measuring in at 31pt tall.
Dec 4, 2021 24 tweets 5 min read
Dark Mode, Bold Text, Increase Contrast, Dynamic Type, right-to-left languages, what do they all have in common?

They're often overlooked during testing.

A 🧵 on ways to improve test coverage for these important features — Dynamic Type alone is used by ~30% of iOS users! "Combinatorial explosion"

That's usually the first thing someone says when you bring up automating tests for all of iOS' personalization features. And there's some truth to this concern: there are a *lot* of ways someone can personalize their phone to meet their wants and needs.
Nov 27, 2021 13 tweets 4 min read
Tiny signs that, to me, show that an iOS app’s probably being designed and engineered primarily for cross-platform alignment at the expense of familiarity within the platform. A 🧵 of some of the more common ones I’ve seen lately in the wild: Using other platforms’ back button icons instead of the standard back chevron.
Oct 7, 2021 14 tweets 3 min read
This year my team shifted the open source Material components libraries for iOS into maintenance mode. Why?

A 🧵... Since 2012 and the original launch of Google Maps iOS, my team has supported the creation and maintenance of shared UI components across Google. This was originally born out of a need to fill gaps in UIKit's design language.

theguardian.com/technology/201…
Apr 14, 2021 15 tweets 4 min read
Been digging into details about UIFont and Dynamic Type recently. Come swim with me in a sea of tiny details for a moment. 🧵 So generally speaking there's two canonical ways to get fonts that support Dynamic Type: preferred fonts and system fonts + UIFontMetrics.

The preferred font APIs are great if you just need default point sizes, but if you need different point sizes or weights, things get...weird