Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 37
  1. 10× faster Xcode CI builds with slot caching

    10× faster Xcode CI builds with slot caching Two months ago, I started saving roughly $4,000/month by self-hosting Mac minis for Sidecar’s CI.

  2. Saving $4000+/month with self-hosted runners

    Saving $4000+/month with self-hosted runners For the longest time, Sidecar didn’t have any continuous integration 😭.

  3. iOS 26: Offset buttons in ScrollView aren’t tappable iOS 26 introduced a subtle regression in SwiftUI’s Button component when used inside a ScrollView with an .offset() modifier.

  4. Getting consistent temperature preferences on iOS iOS’ Settings app allows for a variety of fine-tunings of user preferences, which is particularly handy if you’ve grown up half the time in Canada and the USA and your personal locale is best described as…

  5. Buggy linear gradients in SwiftUI Charts

    Buggy linear gradients in SwiftUI Charts If you’re using linear gradients in SwiftUI’s Charts framework, make sure that the delta between every color stop is at least 0.0001.

  6. Reminder: Apple Watches use 32 bit pointers

    Reminder: Apple Watches use 32 bit pointers Since the Series 4 was introduced in 2018, all new Apple Watches have been arm64_32.

  7. SubscriptionStoreView crasher on watchOS 11.1

    SubscriptionStoreView crasher on watchOS 11.1 Sidecar supports watchOS as a first-class application, which sometimes means I get to run into some bleeding edge cases.

  8. textSelection broken in List on iOS 18

    textSelection broken in List on iOS 18 Happy iOS 18 release week!

  9. Let’s build iOS 18’s navigation title card in SwiftUI iOS 18 standardizes a design pattern that could be called “navigation title cards”, for lack of an established HIG term.

  10. Everything you never thought you wanted to know about emoji flags Let’s say you’re building an analytics app and you want a simple way to represent the location of an analytics event.

  11. Subtitle Shenanigans in SwiftUI’s `Menu`

    Subtitle Shenanigans in SwiftUI’s Menu SwiftUI’s Menu component is a delightfully powerful API in terms of the complexity of the interactions it supports compared to the API footprint, but if you need to use subtitles then things can go a bit off the rail…

  12. FB14804445: Swift 6 and SwiftUI’s PasteButton As of Xcode Version 16.0 beta 5 (16A5221g), 18.0 beta 5 (22A5326g), enabling Swift 6 compilation mode will cause use of PasteButton to crash when tapped at runtime with the exception “EXC_BREAKPOINT (code=1, s…

  13. Hog Mobile

    Hog Mobile I’m a big fan of PostHog from a product and design point of view.

  14. End of an era

    End of an era I’ve been hearing this expression a lot lately.

  15. “Why aren’t the designers and engineers sitting together?”

  16. LinkedIn’s loading animation

    LinkedIn’s loading animation Let’s build LinkedIn’s loading animation in <50 lines of SwiftUI.

  17. Threads Carousel pinch effect

    Threads Carousel pinch effect Let’s build Threads’ seamless carousel effect in <50 lines of SwiftUI.

  18. Leads define culture

    Leads define culture For a long time I’d ran my team while wearing many different hats across design, engineering, and product leadership.

  19. What do you think?

    What do you think?

  20. Enumerate XCUIElementQuery in Swift

    Enumerate XCUIElementQuery in Swift Let’s learn how to make XCUIElementQuery enumerable in a Swift for-in loop so that we can do the following: for cell in XCUIApplication().cells { // cell is an XCUIElement } We’ll take the template from Minimal Swift…

  21. Retirement and shared code

    Retirement and shared code Creating shared code is easy.

  22. Minimal Swift 2.1 protocol conformance

    Minimal Swift 2.1 protocol conformance With the advent of protocol-oriented programming Swift types are able to adopt all sorts of super powers with minimal work.

  23. Reading MIDI properties in Swift using ambiguous return types CoreMIDI’s interface for accessing MIDI object properties relies on a handful of C get/set methods corresponding to the supported data types: Integer, String, Dictionary, and Data: MIDIObjectGe…

  24. Hashable CFString in Swift

    Hashable CFString in Swift This post is also available as a Swift playground at https://github.com/jverkoey/playgrounds.

  25. Enumerate messages of a MIDIPacket using Swift reflection In Enumerate MIDIPacketList in Swift we built an extension for MIDIPacketList that enabled easy enumeration of its MIDIPacket objects.

  26. Enumerating tuple values in Swift

    Enumerating tuple values in Swift This post is also available as a Swift playground at https://github.com/jverkoey/playgrounds.

  27. Get current Xcode playground page name

    Get current Xcode playground page name You can get the name of the current Playground page using the following snippet: NSProcessInfo.processInfo().environment["PLAYGROUND_NAME"]

  28. MIDI messages as a Swift associated enum

    MIDI messages as a Swift associated enum The MIDI specification outlines the complete set of messages one can expect to receive from a MIDI endpoint.

  29. Swift Dictionary: get with default

    Swift Dictionary: get with default This post is also available as a Swift playground at https://github.com/jverkoey/playgrounds.

  30. Enumerate MIDIPacketList in Swift: Part 2

    Enumerate MIDIPacketList in Swift: Part 2 This is the conclusion of Enumerate MIDIPacketList in Swift.

  31. How to access framework internals from a Swift Playground Swift 2 introduced the @testable keyword so that unit test targets could access internal APIs of frameworks like so: @testable import MyFramework Without this keyword the only alternative was to ma…

  32. Swift frameworks with conflicting symbols in Objective-C apps What happens when an Objective-C app includes two or more Swift frameworks that happen to have a conflicting class name?

  33. Enumerate MIDIPacketList in Swift: Part 1

    Enumerate MIDIPacketList in Swift: Part 1 In this post we’re going to look at how we can use Swift 2’s SequenceType and GeneratorType to enumerate the packets of a MIDIPacketList.

  34. Nimbus Chameleon

    Nimbus Chameleon Stop compiling.

  35. Three20 is -insert expletive-

    Three20 is -insert expletive- From my monitoring of Twitter so far today, it seems some people are angered by the fact that Three20 is composed of many libraries.

  36. Hack Faster with Secret Features

    Hack Faster with Secret Features I love it when I stumble upon a new feature in a piece of software that makes my life easier.

  37. Strips postmortem

    Strips postmortem During the summer of 2009 I made a big decision.