Swift Talk 467
Visual Node Editor (Part 9)
We add share support, which exports diagrams as different content types, including text, JSON, image, and PDF.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 9)
We add share support, which exports diagrams as different content types, including text, JSON, image, and PDF.
talk.objc.io/episodes/S01...
November 7, 2025 at 4:46 PM
Swift Talk 467
Visual Node Editor (Part 9)
We add share support, which exports diagrams as different content types, including text, JSON, image, and PDF.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 9)
We add share support, which exports diagrams as different content types, including text, JSON, image, and PDF.
talk.objc.io/episodes/S01...
Swift Talk 466
Visual Node Editor (Part 8)
We clean up the code and transform the project to a document-based app.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 8)
We clean up the code and transform the project to a document-based app.
talk.objc.io/episodes/S01...
October 31, 2025 at 6:10 PM
Swift Talk 466
Visual Node Editor (Part 8)
We clean up the code and transform the project to a document-based app.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 8)
We clean up the code and transform the project to a document-based app.
talk.objc.io/episodes/S01...
Swift Talk 465
Visual Node Editor (Part 7)
We add snapping to node resizing, with shared state managed in the model rather than in preferences or the environment.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 7)
We add snapping to node resizing, with shared state managed in the model rather than in preferences or the environment.
talk.objc.io/episodes/S01...
October 24, 2025 at 4:14 PM
Swift Talk 465
Visual Node Editor (Part 7)
We add snapping to node resizing, with shared state managed in the model rather than in preferences or the environment.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 7)
We add snapping to node resizing, with shared state managed in the model rather than in preferences or the environment.
talk.objc.io/episodes/S01...
Swift Talk 464
Visual Node Editor (Part 6)
We refactor our view state, moving properties and logic into a compound struct. This makes gestures more testable.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 6)
We refactor our view state, moving properties and logic into a compound struct. This makes gestures more testable.
talk.objc.io/episodes/S01...
October 17, 2025 at 6:30 PM
Swift Talk 464
Visual Node Editor (Part 6)
We refactor our view state, moving properties and logic into a compound struct. This makes gestures more testable.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 6)
We refactor our view state, moving properties and logic into a compound struct. This makes gestures more testable.
talk.objc.io/episodes/S01...
Swift Talk 463
Visual Node Editor (Part 5)
We address some issues with multi-selection, moving node state to the graph view, which we plan to simplify later.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 5)
We address some issues with multi-selection, moving node state to the graph view, which we plan to simplify later.
talk.objc.io/episodes/S01...
October 3, 2025 at 3:28 PM
Swift Talk 463
Visual Node Editor (Part 5)
We address some issues with multi-selection, moving node state to the graph view, which we plan to simplify later.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 5)
We address some issues with multi-selection, moving node state to the graph view, which we plan to simplify later.
talk.objc.io/episodes/S01...
Swift Talk 462
Visual Node Editor (Part 4)
We add multi-select for nodes, but that means rethinking our focus architecture.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 4)
We add multi-select for nodes, but that means rethinking our focus architecture.
talk.objc.io/episodes/S01...
September 26, 2025 at 3:04 PM
Swift Talk 462
Visual Node Editor (Part 4)
We add multi-select for nodes, but that means rethinking our focus architecture.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 4)
We add multi-select for nodes, but that means rethinking our focus architecture.
talk.objc.io/episodes/S01...
Swift Talk 461
Visual Node Editor (Part 3)
We wire-up the draggable resize handles, and deal with some tricky edge case logic.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 3)
We wire-up the draggable resize handles, and deal with some tricky edge case logic.
talk.objc.io/episodes/S01...
September 19, 2025 at 2:36 PM
Swift Talk 461
Visual Node Editor (Part 3)
We wire-up the draggable resize handles, and deal with some tricky edge case logic.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 3)
We wire-up the draggable resize handles, and deal with some tricky edge case logic.
talk.objc.io/episodes/S01...
Swift Talk 460
Visual Node Editor (Part 2)
We add focus behavior to the nodes and edges, with custom drawing and resize handles.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 2)
We add focus behavior to the nodes and edges, with custom drawing and resize handles.
talk.objc.io/episodes/S01...
July 25, 2025 at 3:08 PM
Swift Talk 460
Visual Node Editor (Part 2)
We add focus behavior to the nodes and edges, with custom drawing and resize handles.
talk.objc.io/episodes/S01...
Visual Node Editor (Part 2)
We add focus behavior to the nodes and edges, with custom drawing and resize handles.
talk.objc.io/episodes/S01...
Swift Talk 459
Visual Node Editor (Part 1)
In a new series, we build a node editor to explore focus, selection, gestures, and accessibility.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Visual Node Editor (Part 1)
In a new series, we build a node editor to explore focus, selection, gestures, and accessibility.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
July 18, 2025 at 5:23 PM
Swift Talk 459
Visual Node Editor (Part 1)
In a new series, we build a node editor to explore focus, selection, gestures, and accessibility.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Visual Node Editor (Part 1)
In a new series, we build a node editor to explore focus, selection, gestures, and accessibility.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Swift Talk 458
SwiftUI as Static Site Generator (Part 6)
We finish the series by adding Hummingbird as a web server, using WebSockets to reload live when something changes.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 6)
We finish the series by adding Hummingbird as a web server, using WebSockets to reload live when something changes.
talk.objc.io/episodes/S01...
July 11, 2025 at 2:30 PM
Swift Talk 458
SwiftUI as Static Site Generator (Part 6)
We finish the series by adding Hummingbird as a web server, using WebSockets to reload live when something changes.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 6)
We finish the series by adding Hummingbird as a web server, using WebSockets to reload live when something changes.
talk.objc.io/episodes/S01...
Swift Talk 457
SwiftUI as Static Site Generator (Part 5)
We generate share images from SwiftUI views, and use hashing to reload them correctly when content changes.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 5)
We generate share images from SwiftUI views, and use hashing to reload them correctly when content changes.
talk.objc.io/episodes/S01...
July 4, 2025 at 3:00 PM
Swift Talk 457
SwiftUI as Static Site Generator (Part 5)
We generate share images from SwiftUI views, and use hashing to reload them correctly when content changes.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 5)
We generate share images from SwiftUI views, and use hashing to reload them correctly when content changes.
talk.objc.io/episodes/S01...
Swift Talk 456
SwiftUI as Static Site Generator (Part 4)
We add a templating system using the environment, and integrate Swim for HTML generation.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 4)
We add a templating system using the environment, and integrate Swim for HTML generation.
talk.objc.io/episodes/S01...
June 27, 2025 at 7:35 PM
Swift Talk 456
SwiftUI as Static Site Generator (Part 4)
We add a templating system using the environment, and integrate Swim for HTML generation.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 4)
We add a templating system using the environment, and integrate Swim for HTML generation.
talk.objc.io/episodes/S01...
Swift Talk 455
SwiftUI as Static Site Generator (Part 3)
We add directory observation, which lets us use SwiftUI's preferences to generate the site.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 3)
We add directory observation, which lets us use SwiftUI's preferences to generate the site.
talk.objc.io/episodes/S01...
June 20, 2025 at 3:23 PM
Swift Talk 455
SwiftUI as Static Site Generator (Part 3)
We add directory observation, which lets us use SwiftUI's preferences to generate the site.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 3)
We add directory observation, which lets us use SwiftUI's preferences to generate the site.
talk.objc.io/episodes/S01...
Swift Talk 454
SwiftUI as Static Site Generator (Part 2)
We add file observation using GCD’s Dispatch Source APIs, which handle both standard write events and atomic delete-plus-write sequences.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 2)
We add file observation using GCD’s Dispatch Source APIs, which handle both standard write events and atomic delete-plus-write sequences.
talk.objc.io/episodes/S01...
June 13, 2025 at 6:24 PM
Swift Talk 454
SwiftUI as Static Site Generator (Part 2)
We add file observation using GCD’s Dispatch Source APIs, which handle both standard write events and atomic delete-plus-write sequences.
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 2)
We add file observation using GCD’s Dispatch Source APIs, which handle both standard write events and atomic delete-plus-write sequences.
talk.objc.io/episodes/S01...
Swift Talk 453
SwiftUI as Static Site Generator (Part 1)
We build a very unconventional static site generator on top of SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 1)
We build a very unconventional static site generator on top of SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
June 6, 2025 at 3:07 PM
Swift Talk 453
SwiftUI as Static Site Generator (Part 1)
We build a very unconventional static site generator on top of SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
SwiftUI as Static Site Generator (Part 1)
We build a very unconventional static site generator on top of SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Swift Talk 452
Building a Token Field (Part 5)
We finish our drag-and-drop implementation, displaying an insertion point for dragging and using Transferable for the drop.
talk.objc.io/episodes/S01...
Building a Token Field (Part 5)
We finish our drag-and-drop implementation, displaying an insertion point for dragging and using Transferable for the drop.
talk.objc.io/episodes/S01...
May 9, 2025 at 5:34 PM
Swift Talk 452
Building a Token Field (Part 5)
We finish our drag-and-drop implementation, displaying an insertion point for dragging and using Transferable for the drop.
talk.objc.io/episodes/S01...
Building a Token Field (Part 5)
We finish our drag-and-drop implementation, displaying an insertion point for dragging and using Transferable for the drop.
talk.objc.io/episodes/S01...
Swift Talk 451
Building a Token Field (Part 4)
We use SwiftUI's drag-and-drop APIs to support token reordering. While dragging is almost free, we need a delegate to track the dropping position.
talk.objc.io/episodes/S01...
Building a Token Field (Part 4)
We use SwiftUI's drag-and-drop APIs to support token reordering. While dragging is almost free, we need a delegate to track the dropping position.
talk.objc.io/episodes/S01...
May 9, 2025 at 5:31 PM
Swift Talk 451
Building a Token Field (Part 4)
We use SwiftUI's drag-and-drop APIs to support token reordering. While dragging is almost free, we need a delegate to track the dropping position.
talk.objc.io/episodes/S01...
Building a Token Field (Part 4)
We use SwiftUI's drag-and-drop APIs to support token reordering. While dragging is almost free, we need a delegate to track the dropping position.
talk.objc.io/episodes/S01...
Swift Talk 450
Building a Token Field (Part 3)
We add more selection and backspace behaviors. Token fields on macOS feel natural, but they're actually quite complicated!
talk.objc.io/episodes/S01...
Building a Token Field (Part 3)
We add more selection and backspace behaviors. Token fields on macOS feel natural, but they're actually quite complicated!
talk.objc.io/episodes/S01...
April 25, 2025 at 4:40 PM
Swift Talk 450
Building a Token Field (Part 3)
We add more selection and backspace behaviors. Token fields on macOS feel natural, but they're actually quite complicated!
talk.objc.io/episodes/S01...
Building a Token Field (Part 3)
We add more selection and backspace behaviors. Token fields on macOS feel natural, but they're actually quite complicated!
talk.objc.io/episodes/S01...
Swift Talk 449
Building a Token Field (Part 2)
We add selection to our custom SwiftUI token field. Even the most basic behaviors are quite tricky!
talk.objc.io/episodes/S01...
Building a Token Field (Part 2)
We add selection to our custom SwiftUI token field. Even the most basic behaviors are quite tricky!
talk.objc.io/episodes/S01...
April 11, 2025 at 3:20 PM
Swift Talk 449
Building a Token Field (Part 2)
We add selection to our custom SwiftUI token field. Even the most basic behaviors are quite tricky!
talk.objc.io/episodes/S01...
Building a Token Field (Part 2)
We add selection to our custom SwiftUI token field. Even the most basic behaviors are quite tricky!
talk.objc.io/episodes/S01...
Swift Talk 448
Building a Token Field (Part 1)
In a new series, we build a token view from scratch, using pure SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Building a Token Field (Part 1)
In a new series, we build a token view from scratch, using pure SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
April 4, 2025 at 5:12 PM
Swift Talk 448
Building a Token Field (Part 1)
In a new series, we build a token view from scratch, using pure SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Building a Token Field (Part 1)
In a new series, we build a token view from scratch, using pure SwiftUI.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Swift Talk 447
Building a FaceTime-like Animation (Part 2)
We add smoothly animated drag gestures to our FaceTime-like view.
talk.objc.io/episodes/S01...
Building a FaceTime-like Animation (Part 2)
We add smoothly animated drag gestures to our FaceTime-like view.
talk.objc.io/episodes/S01...
March 28, 2025 at 8:17 PM
Swift Talk 447
Building a FaceTime-like Animation (Part 2)
We add smoothly animated drag gestures to our FaceTime-like view.
talk.objc.io/episodes/S01...
Building a FaceTime-like Animation (Part 2)
We add smoothly animated drag gestures to our FaceTime-like view.
talk.objc.io/episodes/S01...
Swift Talk 446
Building a FaceTime-like Animation (Part 1)
We build an interactive animation similar to FaceTime’s picture-in-picture view, visualizing the path it takes.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Building a FaceTime-like Animation (Part 1)
We build an interactive animation similar to FaceTime’s picture-in-picture view, visualizing the path it takes.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
March 21, 2025 at 3:38 PM
Swift Talk 446
Building a FaceTime-like Animation (Part 1)
We build an interactive animation similar to FaceTime’s picture-in-picture view, visualizing the path it takes.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Building a FaceTime-like Animation (Part 1)
We build an interactive animation similar to FaceTime’s picture-in-picture view, visualizing the path it takes.
This episode is free to watch, enjoy! 😊
talk.objc.io/episodes/S01...
Swift Talk 445
Staggered Animations Revisited (Part 3)
We add priorities and custom sorting to our staggered animations.
talk.objc.io/episodes/S01...
Staggered Animations Revisited (Part 3)
We add priorities and custom sorting to our staggered animations.
talk.objc.io/episodes/S01...
March 14, 2025 at 7:15 PM
Swift Talk 445
Staggered Animations Revisited (Part 3)
We add priorities and custom sorting to our staggered animations.
talk.objc.io/episodes/S01...
Staggered Animations Revisited (Part 3)
We add priorities and custom sorting to our staggered animations.
talk.objc.io/episodes/S01...
Swift Talk 444
Staggered Animations Revisited (Part 2)
We add custom transitions using SwiftUI's Transition protocol, which work when new views are inserted.
talk.objc.io/episodes/S01...
Staggered Animations Revisited (Part 2)
We add custom transitions using SwiftUI's Transition protocol, which work when new views are inserted.
talk.objc.io/episodes/S01...
March 11, 2025 at 4:02 PM
Swift Talk 444
Staggered Animations Revisited (Part 2)
We add custom transitions using SwiftUI's Transition protocol, which work when new views are inserted.
talk.objc.io/episodes/S01...
Staggered Animations Revisited (Part 2)
We add custom transitions using SwiftUI's Transition protocol, which work when new views are inserted.
talk.objc.io/episodes/S01...
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...
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...
February 28, 2025 at 9:02 PM
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...
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...