Sign in

Chris Eidhof

@eidhof.nl
747 followers 114 following 70 posts
PostsRepliesMedia
Chris Eidhof @eidhof.nl · 13/02/2026
I'm still experimenting with LLMs. I made a self-improving agent from scratch and wrote about what I learned: chris.eidhof.nl/post/self-fo...
chris.eidhof.nl
Self-Forking Agents — Chris Eidhof
0120
Chris Eidhof @eidhof.nl · 05/02/2026
When you work with LLMs, you can also take a different approach towards dependencies. Instead of seeing them as fixed, you can actually just completely integrate them and take ownership. chris.eidhof.nl/post/integra...
chris.eidhof.nl
Integrating Dependencies into LLM-Assisted Projects — Chris Eidhof
010
Chris Eidhof @eidhof.nl · 03/02/2026
I'm focusing on learning more about LLMs this month (not just using them, actually understanding how to work with them more intently). Today, I built my own little assistant: chris.eidhof.nl/post/llm-mon...
chris.eidhof.nl
Food Assistant — Chris Eidhof
090
Chris Eidhof @eidhof.nl · 01/07/2025
I recorded my Attribute Graph talk from a few weeks ago. I hope this is helpful! chris.eidhof.nl/presentation...
chris.eidhof.nl
Attribute graph — Chris Eidhof
0122
Chris Eidhof @eidhof.nl · 10/06/2025
I had such a fun day at WWDC, was really great talking to everyone! Hope to see many more people tomorrow at 3pm at the One More Thing conference, I'll be talking about the Attribute graph.
050
Reposted by Chris Eidhof
Klemens 🦆 The Art of Fauna 🦆 @strasser.bsky.social · 03/06/2025
The Art of Fauna just *WON* an Apple Design Award in the Inclusivity category. 🤯 But it is also a finalist for Social Impact. 💚 Two nominations, one win. I still can't believe this. What a year 🥹 #indiedev #WWDC #WWDC25 #TheArtOfFauna
4218824
Chris Eidhof @eidhof.nl · 31/05/2025
Working on my @omt-conf.bsky.social presentation... (Feeling a bit like that guy from the meme).
150
Chris Eidhof @eidhof.nl · 22/05/2025
I've been playing around with this tool to record and play back my typing. I took inspiration from Retcon and made the history draggable. Things like automatically doing the indentation / syntax highlighting quite don't work yet, but those are the "easy" polishing bits.
2121
Reposted by Chris Eidhof
Klemens 🦆 The Art of Fauna 🦆 @strasser.bsky.social · 15/05/2025
I am beyond thrilled to finally share this! 🥹 Today is Global Accessibility Awareness Day - and Apple sat down with me to talk about how I build accessible apps. 🦾 The interview is now live on the *front page* of the App Store: apps.apple.com/at/story/id1... #GAAD #A11Y #accessibility #indiedev
apps.apple.com
‎Discover the art of accessibility : App Store Story
‎Learn about collection Discover the art of accessibility featuring Art of Fauna: Cozy Puzzles, Study Snacks: Language & More, Letter Rooms: Fun Anagrams and many more on Mac App Store. Enjoy these ap...
148723
Reposted by Chris Eidhof
Paul Hudson @twostraws.bsky.social · 09/05/2025
What's new in Swift 6.2? A whole ton of stuff – raw identifiers, Collection conformances for enumerated(), method key paths, backtracing, weak let, Observations, InlineArray, and of course a big batch of concurrency changes too. Want to see it all in action? www.hackingwithswift.com/articles/277...
hackingwithswift.com
What's new in Swift 6.2?
Raw identifiers, backtraces, task naming, and more.
57724
Chris Eidhof @eidhof.nl · 06/05/2025
How to correctly initialize a view model in SwiftUI: chris.eidhof.nl/post/swiftui... (for when the view needs ownership of the view model).
chris.eidhof.nl
SwiftUI View Model Ownership — Chris Eidhof
2247
Reposted by Chris Eidhof
Geoffrey Litt @geoffreylitt.com · 13/04/2025
www.geoffreylitt.com/2025/04/12/h...
geoffreylitt.com
Stevens: a hackable AI assistant using a single SQLite table and a handful of cron jobs
74410
Chris Eidhof @eidhof.nl · 21/03/2025
Another "linkable explanation": why I avoid `Binding(get:set:)` in SwiftUI. chris.eidhof.nl/post/binding...
chris.eidhof.nl
Bindings — Chris Eidhof
4213
Chris Eidhof @eidhof.nl · 19/03/2025
In our workshops, people often use `Group` and somehow it always makes me feel uneasy — it can behave in unexpected ways. I finally figured out the actual problem, and it's not really `Group` that's the issue. chris.eidhof.nl/post/why-i-a...
chris.eidhof.nl
Why I Avoid Group — Chris Eidhof
1172
Chris Eidhof @eidhof.nl · 03/03/2025
I thought I'd found a bug in SwiftUI, but it turned out to just be an unlucky combination of implementation details: chris.eidhof.nl/post/swiftui...
chris.eidhof.nl
SwiftUI Phase Animation "Bug" — Chris Eidhof
093
Reposted by Chris Eidhof
objc.io @objc.io · 28/02/2025
Swift Talk 443 Staggered Animations Revisited After a two year hiatus, we build a staggered modifier in SwiftUI that works with any view in the view tree. This episode is free to watch! 😊 talk.objc.io/episodes/S01...
151
Chris Eidhof @eidhof.nl · 26/01/2025
The store didn’t have my usual shampoo. Got a different brand with a different fragrance and now I keep thinking there’s a person standing right next to me because I’m not yet used to the new smell. 🙃
060
Chris Eidhof @eidhof.nl · 24/01/2025
Went to a miso-making workshop today, where we made miso paste and onigiri, so much fun (and so delicious). The only difficult bit left is waiting for half a year until the miso paste is ready with fermentation...
030
Reposted by Chris Eidhof
Curt Clifton @curtclifton.net · 07/01/2025
Coming Feb. 5–6 to Apple Developer Center Cupertino and on livestream, Bring SwiftUI to your app! We’ll focus on how your expertise in imperative user interface frameworks like UIKit and AppKit can help you get comfortable with SwiftUI’s declarative approach.
12812
Chris Eidhof @eidhof.nl · 20/12/2024
No video today because I’ve got to watch the kids all day. Will be back at it on Monday!
040
Chris Eidhof @eidhof.nl · 19/12/2024
The `Animatable` protocol lets you hook into the animation subsystem of SwiftUI. You can expose any property using `AnimatableData` and have it interpolated for you (but the property does need to conform to `VectorArithmetic`)
0162
Chris Eidhof @eidhof.nl · 18/12/2024
Keyframe animations are a very powerful tool to have in your toolbox. They're more complicated than regular SwiftUI animations but allow you to animate almost anything you can think of.
1324
Chris Eidhof @eidhof.nl · 17/12/2024
Phase animators can help to work around the limitations of the regular SwiftUI animation system. They let you do animations that end up in the same state as the starting point.
080
Chris Eidhof @eidhof.nl · 16/12/2024
In many cases, adding a `.animation` or `withAnimation` might be all you need to have beautiful interruptible animations in SwiftUI.
0294
Reposted by Chris Eidhof
Drew McCormack @drewmccormack.bsky.social · 13/12/2024
I've spent the 6 months working on a new approach to shared data in Swift: Forked. Main features: - Git-like branching and merging for Swift structs - Advanced merge algorithms (CRDTs) - Macros to make structs mergeable - Sync structs via CloudKit with <10 LOCs appdecentral.com/2024/12/13/n...
appdecentral.com
Now we’re all Forked!
Forked is a new Swift framework for working with shared data, on device, and across networks.
26317
Chris Eidhof @eidhof.nl · 13/12/2024
Today we recap a bunch of things we looked at in the last two weeks of short videos. It was a bit of a struggle to get this in at under one minute but I managed 😅
080
Chris Eidhof @eidhof.nl · 12/12/2024
Often it doesn't really matter whether you use an overlay or a ZStack, but if the views have different sizes and positions, it definitely does!
1162
Chris Eidhof @eidhof.nl · 11/12/2024
Explicit alignment guides are very helpful when aligning using two different alignment guides. In this example, we align the center of a badge to the top trailing edge of a button.
1141
Chris Eidhof @eidhof.nl · 10/12/2024
First text baseline alignment is a great way to align views horizontally that contain different font sizes. SF Symbols even have builtin support for this.
1101
Chris Eidhof @eidhof.nl · 09/12/2024
In our workshops we often notice that view alignment is underused. This week's short videos will mostly look at working with alignment. This video shows aligning stacks, frames and overlays. Here's the corresponding SwiftUI Field Guide page: www.swiftuifieldguide.com/layout/align...
0181
Chris Eidhof @eidhof.nl · 09/12/2024
Managed to wrap GraphViz to lay out a DAG. All the drawing itself is SwiftUI. This still calls out to the binary (which you need to have installed). Would be nice to wrap the GraphViz C library as a Swift Package so I can ship this in our workshop app.
1151
Reposted by Chris Eidhof
robb @robb.is · 05/12/2024
Quick tutorial how the stitching was achieved: - Use `strokedPath(_:)` to split the path into multiple lines, using a two-component dash array. - Convert to a CGPath, split it into subcomponents using `componentsSeparated(using:)`. - Apply a rotation to each line. - Merge them back together.
1696
Chris Eidhof @eidhof.nl · 06/12/2024
One of the must underrated views in SwiftUI might just be the `Text` view. It's a perfect example of progressive disclosure: once you dig in, you'll find a bunch of nice features! Related to the video: developer.apple.com/documentatio...
0287
Chris Eidhof @eidhof.nl · 06/12/2024
For our workshop (Mac) app, we have a lot of branches (one per client). I kinda would like to setup CI so that it automatically builds the app, runs it on the most recent + 1 version back of macOS (smoke test) and if possible, code signs it for direct distribution. Is this easy to do these days?
000
Chris Eidhof @eidhof.nl · 05/12/2024
No new video today due to a sick kid. Will be back at it tomorrow!
020
Chris Eidhof @eidhof.nl · 04/12/2024
SwiftUI provides us with the @ScaledMetric property wrapper which makes supporting Dynamic Type incredibly easy. It allows us to quickly scale magic numbers. When recording, I didn't realize the video was too long... so here it is as a Dropbox video: www.dropbox.com/scl/fi/bewj3...
swiftuifieldguide.com
Dynamic Type - SwiftUI Field Guide
Dynamic Type and ScaledMetric lets us scale fonts and other values based on the user's preferences.
0142
Chris Eidhof @eidhof.nl · 03/12/2024
In this example, we show the sizing behavior of an `Image` view in SwiftUI, and how you need to be careful when using aspectRatio. It might draw out of bounds. See also: www.swiftuifieldguide.com/layout/aspec...
1262
Chris Eidhof @eidhof.nl · 02/12/2024
Here's an experiment: I made a short video to show how to use a `frame(maxWidth:)` to accept the full width. Here's the accompanying SwiftUI Field Guide page: www.swiftuifieldguide.com/layout/flexi...
0150
Reposted by Chris Eidhof
Alex Ozun @alexozun.com · 28/11/2024
Last week, our #iOS engineering team at #amex in London had the privilege of hosting a #SwiftUI Workshop by the highly regarded objc.io team, @chriseidhof.bsky.social and Florian Kugler.
3242
Chris Eidhof @eidhof.nl · 28/11/2024
Wisdom from my therapist: if you have an argument with someone and one person wins the argument, both lose.
0130
Chris Eidhof @eidhof.nl · 27/11/2024
I've been diving deep into trying to replicate (my interpretation of) SwiftUI's attribute graph! I finally have a setup where I can write something like `ZStack { Rectangle().frame(...); Rectangle(); }.padding` and construct the entire graph. Just like the AG (I think) my graph gets constructed once
2110
Chris Eidhof @eidhof.nl · 26/11/2024
Hello, world!
2140
Reposted by Chris Eidhof
Alex Ozun @alexozun.com · 24/11/2024
Dunno how this information evaded me this long, but I learned from @chriseidhof.bsky.social the other day that you can interact with backgrounded apps without bringing them to foreground by CMD-clicking. My life will never be the same. #macOS #mac
55010