GeistHaus
log in · sign up

https://talk.objc.io/episodes.rss

rss
100 posts
Polling state
Status active
Last polled May 19, 2026 04:07 UTC
Next poll May 20, 2026 04:26 UTC
Poll interval 86400s

Posts

Building a Language Model: Neural Nets
We investigate neural nets, which form the foundation for moden machine learning algorithms.
https://talk.objc.io/episodes/S01E492-building-a-language-model-neural-nets
Building a Language Model: Tokenization
We implement tokenization using the byte pair encoding algorithm.
https://talk.objc.io/episodes/S01E491-building-a-language-model-tokenization
Building a Language Model: N-grams
We implement n-grams as a first step to better understand language models.
https://talk.objc.io/episodes/S01E490-building-a-language-model-n-grams
Rewriting Recursive Expressions
We explore a technique to rewrite recursive expressions in order to abstract the recursion in a map function.
https://talk.objc.io/episodes/S01E489-rewriting-recursive-expressions
The FormatStyle API
We review the differences between the different formatting APIs and how they interact with SwiftUI.
https://talk.objc.io/episodes/S01E488-the-formatstyle-api
The Layout Protocol (Part 4)
We use layout values to specify relative widths in our layout and add support for system spacing.
https://talk.objc.io/episodes/S01E487-the-layout-protocol-part-4
The Layout Protocol (Part 3)
We add support for alignment to our custom layout.
https://talk.objc.io/episodes/S01E486-the-layout-protocol-part-3
The Layout Protocol (Part 2)
We make sure that our custom layout distributes the available space evenly and respects layout priorities.
https://talk.objc.io/episodes/S01E485-the-layout-protocol-part-2
The Layout Protocol (Part 1)
We return to a five-year-old layout challenge that we can now solve using the layout protocol.
https://talk.objc.io/episodes/S01E484-the-layout-protocol-part-1
Matched Geometry and Corner Radius
We animate the corner radius of View in combination with a matched geometry effect and learn a lot in the process.
https://talk.objc.io/episodes/S01E483-matched-geometry-and-corner-radius
Interpolating Matched Geometry Effect
We replicate our custom matched geometry implementation from an earlier episode using AI and then implement interpolation.
https://talk.objc.io/episodes/S01E482-interpolating-matched-geometry-effect
Matched Geometry Effect for Positioning Badges
We use matched geometry effect to revisit an old problem and then give the LLM a shot at solving it.
https://talk.objc.io/episodes/S01E481-matched-geometry-effect-for-positioning-badges
Building a Coding Agent (Part 2)
We implement read, write, and bash tools for the agent and have it write and execute a simple Swift program.
https://talk.objc.io/episodes/S01E480-building-a-coding-agent-part-2
Building a Coding Agent (Part 1)
We build the basic structure of a coding agent using OpenAI's API.
https://talk.objc.io/episodes/S01E479-building-a-coding-agent-part-1
Solving the View Model Problem (Part 3)
We clean up the code to make it more efficient and then create a macro to reduce the boilerplate code we have to write.
https://talk.objc.io/episodes/S01E478-solving-the-view-model-problem-part-3
Solving the View Model Problem (Part 2)
We create a view model protocol and property wrapper to automate updating the view model when new values are passed to the view.
https://talk.objc.io/episodes/S01E477-solving-the-view-model-problem-part-2
Solving the View Model Problem (Part 1)
We investigate the problem of creating and updating view models in SwiftUI and outline a potential solution.
https://talk.objc.io/episodes/S01E476-solving-the-view-model-problem-part-1
Settings Form Layout (Part 2)
We try an alternative approach using SwiftUI's Grid to lay out the settings form.
https://talk.objc.io/episodes/S01E475-settings-form-layout-part-2
Settings Form Layout (Part 1)
We implement a layout that's typical for setting screens on the Mac in SwiftUI.
https://talk.objc.io/episodes/S01E474-settings-form-layout-part-1
ThumbHash (Part 6)
We transform the image into the LPQ colorspace before encoding it to get a better thumbnail with less data.
https://talk.objc.io/episodes/S01E473-thumbhash-part-6
ThumbHash (Part 5)
We apply the discrete cosine transform to an RGB image, separating the image into three channels and putting them back together.
https://talk.objc.io/episodes/S01E472-thumbhash-part-5
ThumbHash (Part 4)
We apply our 2D discrete cosine transform to image data for the first time.
https://talk.objc.io/episodes/S01E471-thumbhash-part-4
ThumbHash (Part 3)
We extend our discrete cosine transform to work in two dimensions to be able to apply it to image data.
https://talk.objc.io/episodes/S01E470-thumbhash-part-3
ThumbHash (Part 2)
We finish the one-dimensional discrete cosine transform and use it for some first compression experiments.
https://talk.objc.io/episodes/S01E469-thumbhash-part-2
ThumbHash (Part 1)
We begin implementing the ThumbHash algorithm by creating a basic discrete cosine transform.
https://talk.objc.io/episodes/S01E468-thumbhash-part-1
Visual Node Editor (Part 9)
We add a share feature with JSON, text, bitmap image, and PDF representations.
https://talk.objc.io/episodes/S01E467-visual-node-editor-part-9
Visual Node Editor (Part 8)
We clean up the code and transform the project to a document-based app.
https://talk.objc.io/episodes/S01E466-visual-node-editor-part-8
Visual Node Editor (Part 7)
We implement snapping when resizing the width of a node.
https://talk.objc.io/episodes/S01E465-visual-node-editor-part-7
Visual Node Editor (Part 6)
We refactor our view state properties into a single struct to separate our logic from the view code.
https://talk.objc.io/episodes/S01E464-visual-node-editor-part-6
Visual Node Editor (Part 5)
We continue to work on multi-select and make plans of how to simplify our views in the future.
https://talk.objc.io/episodes/S01E463-visual-node-editor-part-5
Visual Node Editor (Part 4)
We introduce multi-select and have to rethink our focus architecture to make this work.
https://talk.objc.io/episodes/S01E462-visual-node-editor-part-4
Visual Node Editor (Part 3)
We make the resize handles of the nodes functional and deal with some tricky boundary conditions in the process.
https://talk.objc.io/episodes/S01E461-visual-node-editor-part-3
Visual Node Editor (Part 2)
We add focus state to the user interface elements of our node editor.
https://talk.objc.io/episodes/S01E460-visual-node-editor-part-2
Visual Node Editor (Part 1)
We start building a visual node editor as a playground to experiment with focus state, selection, and more.
https://talk.objc.io/episodes/S01E459-visual-node-editor-part-1
SwiftUI as Static Site Generator (Part 6)
We add Hummingbird as an HTTP server and implement live reload using WebSockets.
https://talk.objc.io/episodes/S01E458-swiftui-as-static-site-generator-part-6
SwiftUI as Static Site Generator (Part 5)
We use SwiftUI views to automatically generate images within our static site generator.
https://talk.objc.io/episodes/S01E457-swiftui-as-static-site-generator-part-5
SwiftUI as Static Site Generator (Part 4)
We use the environment to add nested templates and integrate the Swim library for easier HTML support.
https://talk.objc.io/episodes/S01E456-swiftui-as-static-site-generator-part-4
SwiftUI as Static Site Generator (Part 3)
We add directory observation and use SwiftUI's preferences to our advantage.
https://talk.objc.io/episodes/S01E455-swiftui-as-static-site-generator-part-3
SwiftUI as Static Site Generator (Part 2)
We use GCD to observe files and automatically regenerate their dependencies.
https://talk.objc.io/episodes/S01E454-swiftui-as-static-site-generator-part-2
SwiftUI as Static Site Generator (Part 1)
We experiment with using SwiftUI's infrastructure to build a static site generator on top of it.
https://talk.objc.io/episodes/S01E453-swiftui-as-static-site-generator-part-1
Building a Token Field (Part 5)
We display an insertion point for dragging and dropping and use the Transferable protocol to actually perform a drop.
https://talk.objc.io/episodes/S01E452-building-a-token-field-part-5
Building a Token Field (Part 4)
We use SwiftUI's drag-and-drop APIs to add support for reordering to our token field.
https://talk.objc.io/episodes/S01E451-building-a-token-field-part-4
Building a Token Field (Part 3)
We add forward and backward deletion with and without an active selection to the token field.
https://talk.objc.io/episodes/S01E450-building-a-token-field-part-3
Building a Token Field (Part 2)
We work on the keyboard selection behavior of our custom SwiftUI token field.
https://talk.objc.io/episodes/S01E449-building-a-token-field-part-2
Building a Token Field (Part 1)
We lay the groundwork for a token field built using pure SwiftUI.
https://talk.objc.io/episodes/S01E448-building-a-token-field-part-1
Building a FaceTime-like Animation (Part 2)
We add gestures to our FaceTime-like screen and make sure that the gesture smoothly transitions to an animation.
https://talk.objc.io/episodes/S01E447-building-a-facetime-like-animation-part-2
Building a FaceTime-like Animation (Part 1)
We start building an interactive animation similar to the one of the picture-in-picture view in FaceTime.
https://talk.objc.io/episodes/S01E446-building-a-facetime-like-animation-part-1
Staggered Animations Revisited (Part 3)
We introduce priorities and custom sorting by view geometry to our staggered animations.
https://talk.objc.io/episodes/S01E445-staggered-animations-revisited-part-3
Staggered Animations Revisited (Part 2)
We refactor our staggered animations to use SwiftUI's transition protocol.
https://talk.objc.io/episodes/S01E444-staggered-animations-revisited-part-2
Staggered Animations Revisited
We revisit the topic of staggered animations, this time allowing staggering of views in different branches of the view tree.
https://talk.objc.io/episodes/S01E443-staggered-animations-revisited
Custom Format Styles
We implement a custom format style and make it parsable as well.
https://talk.objc.io/episodes/S01E442-custom-format-styles
Text Formatting
We explore the various formatting options that SwiftUI's text view provides for dates, numbers, and more.
https://talk.objc.io/episodes/S01E441-text-formatting
Keeping Local View State in Sync
We explore the pitfalls of keeping local view state in sync using the date picker component from the last episode.
https://talk.objc.io/episodes/S01E440-keeping-local-view-state-in-sync
Optional Bindings
We explore different ways to create a binding to an optional value.
https://talk.objc.io/episodes/S01E439-optional-bindings
Attribute Graph (Part 10)
We implement a padding layout and revisit how we calculate view geometries.
https://talk.objc.io/episodes/S01E438-attribute-graph-part-10
Attribute Graph (Part 9)
We finish the layout modifier and implement a fixed frame layout on top of it.
https://talk.objc.io/episodes/S01E437-attribute-graph-part-9
Attribute Graph (Part 8)
We start implementing the View protocol to generate the attribute graph from view values.
https://talk.objc.io/episodes/S01E436-attribute-graph-part-8
Attribute Graph (Part 7)
We add the layout protocol and implement HStack on top of it.
https://talk.objc.io/episodes/S01E435-attribute-graph-part-7
Attribute Graph (Part 6)
We extend our attribute graph to compute a display list containing the frames of all views.
https://talk.objc.io/episodes/S01E434-attribute-graph-part-6
Attribute Graph (Part 5)
We construct the attribute graph for a simple SwiftUI example and step through the updates of the graph in response to changing inputs.
https://talk.objc.io/episodes/S01E433-attribute-graph-part-5
Attribute Graph (Part 4)
We use Graphviz to visualize the attribute graph and add snapshots to step through the evaluation process.
https://talk.objc.io/episodes/S01E432-attribute-graph-part-4
Attribute Graph (Part 3)
We make sure to recompute nodes in the graph that are marked dirty.
https://talk.objc.io/episodes/S01E431-attribute-graph-part-3
Attribute Graph (Part 2)
We automatically add edges in the attribute graph and invalidate edges and nodes when necessary.
https://talk.objc.io/episodes/S01E430-attribute-graph-part-2
Attribute Graph (Part 1)
We start to work on a reimplementation of SwiftUI's attribute graph.
https://talk.objc.io/episodes/S01E429-attribute-graph-part-1
Swift 6 Concurrency (Part 5)
We abstract all database accesses in a class to avoid switching isolating contexts all the time.
https://talk.objc.io/episodes/S01E428-swift-6-concurrency-part-5
Swift 6 Concurrency (Part 4)
We add a SQLite persistency layer to the project and, once again, run into several concurrency errors.
https://talk.objc.io/episodes/S01E427-swift-6-concurrency-part-4
Swift 6 Concurrency (Part 3)
We refactor the code to take a snapshot of the web view into the common SwiftUI reader pattern.
https://talk.objc.io/episodes/S01E426-swift-6-concurrency-part-3
Swift 6 Concurrency (Part 2)
We add a web view to the project and try two different methods to take a snapshot asynchronously.
https://talk.objc.io/episodes/S01E425-swift-6-concurrency-part-2
Swift 6 Concurrency (Part 1)
We start a new macOS project to explore Swift 6's concurrency features.
https://talk.objc.io/episodes/S01E424-swift-6-concurrency-part-1
Particle Effects (Part 6)
We turn the specific spray effect into a generic particle system and add a second effect.
https://talk.objc.io/episodes/S01E423-particle-effects-part-6
Particle Effects (Part 5)
We make sure to garbage collect old particles and to pause and resume the timeline view.
https://talk.objc.io/episodes/S01E422-particle-effects-part-5
Particle Effects (Part 4)
We combine the canvas-based drawing from last episode with a keyframe timeline to control the particles.
https://talk.objc.io/episodes/S01E421-particle-effects-part-4
Particle Effects (Part 3)
We improve the performance of the particle effect by rendering the particles in a canvas view.
https://talk.objc.io/episodes/S01E420-particle-effects-part-3
Particle Effects (Part 2)
We make our particle effect more flexible by combining it with a keyframe timeline.
https://talk.objc.io/episodes/S01E419-particle-effects-part-2
Particle Effects (Part 1)
We start building a particle effect, using transitions as the first approach.
https://talk.objc.io/episodes/S01E418-particle-effects-part-1
Lazy Container Views (Part 4)
We make our lazy vertical stack implementation more generic to support other kinds of vertical layouts.
https://talk.objc.io/episodes/S01E417-lazy-container-views-part-4
Lazy Container Views (Part 3)
We continue to work on our custom lazy stack implementation and add support for preferred spacing.
https://talk.objc.io/episodes/S01E416-lazy-container-views-part-3
Lazy Container Views (Part 2)
We try to re-implement a lazy vertical stack based off last week's experiments.
https://talk.objc.io/episodes/S01E415-lazy-container-views-part-2
Lazy Container Views (Part 1)
We investigate SwiftUI's new group APIs for building custom lazy container views.
https://talk.objc.io/episodes/S01E414-lazy-container-views-part-1
Bento Layout (Part 4)
We finish the bento layout by adding spacing and fixing a crash.
https://talk.objc.io/episodes/S01E413-bento-layout-part-4
Bento Layout (Part 3)
We reimplement our bento layout on top of SwiftUI's layout protocol.
https://talk.objc.io/episodes/S01E412-bento-layout-part-3
Bento Layout (Part 2)
We use the new Group API to turn our bento view into a custom container.
https://talk.objc.io/episodes/S01E411-bento-layout-part-2
Bento Layout (Part 1)
We start implementing a bento layout using two different approaches.
https://talk.objc.io/episodes/S01E410-bento-layout-part-1
Environment & Preference Updates
We discuss some subtleties around SwiftUI's view updates with regard to environment and preference changes.
https://talk.objc.io/episodes/S01E409-environment-preference-updates
Tooltips (Part 2)
We automatically position the tooltips depending on the available space around the anchor view.
https://talk.objc.io/episodes/S01E408-tooltips-part-2
Tooltips (Part 1)
We implement a custom tooltip API that only shows one tooltip at a time.
https://talk.objc.io/episodes/S01E407-tooltips-part-1
Detecting Visible Cells
We show how to detect which views in a lazy stack are currently onscreen.
https://talk.objc.io/episodes/S01E406-detecting-visible-cells
Debugging Animations
We use a custom animation to manually control the progress of animations using a slider.
https://talk.objc.io/episodes/S01E405-debugging-animations
Picker Animation (Part 2)
We implement the picker animation from the last episode using three more preference-based techniques.
https://talk.objc.io/episodes/S01E404-picker-animation-part-2
Picker Animation (Part 1)
We build a picker with an animated underline using alignment and the matched geometry effect.
https://talk.objc.io/episodes/S01E403-picker-animation-part-1
Wobble Animation
We implement a wobble animation using a phase animator and the Animatable API.
https://talk.objc.io/episodes/S01E402-wobble-animation
Positioning Badges (Part 2)
We use anchors and preferences to position the badges on top of all icons.
https://talk.objc.io/episodes/S01E401-positioning-badges-part-2
Positioning Badges (Part 1)
We implement a badge view that scales with the content and position it using alignment.
https://talk.objc.io/episodes/S01E400-positioning-badges-part-1
Reimplementing the Default Button Style
We reimplement SwiftUI's default button style to better understand its behavior.
https://talk.objc.io/episodes/S01E399-reimplementing-the-default-button-style
Conditional Aspect Ratio Modifier (Part 2)
We add the fill content mode to our conditional aspect ratio layout and make sure it can handle nil proposals.
https://talk.objc.io/episodes/S01E398-conditional-aspect-ratio-modifier-part-2
Conditional Aspect Ratio Modifier (Part 1)
We implement a custom version of SwiftUI's aspectRatio modifier that can be enabled or disabled.
https://talk.objc.io/episodes/S01E397-conditional-aspect-ratio-modifier-part-1
Pretty Printing: Annotations
We add the ability to pass annotations, like syntax highlighting information, through the pretty printer.
https://talk.objc.io/episodes/S01E396-pretty-printing-annotations
Pretty Printing: Indentation
We continue to work on our pretty printers to indent a Swift parameter list in various ways.
https://talk.objc.io/episodes/S01E395-pretty-printing-indentation
Pretty Printing: Choices
We add a choice operator to our pretty printing library to generate the best output for a given column width.
https://talk.objc.io/episodes/S01E394-pretty-printing-choices
Pretty Printing: Data Structure
We begin implementing a pretty printing library based on an old Haskell paper.
https://talk.objc.io/episodes/S01E393-pretty-printing-data-structure