Swift Talk 499 Split Pane Animations (Part 2) We profile the smoothness of our animations, using the Animations Hitches instrument with signposts to help us identify the right sections. talk.objc.io/episodes/S01...
Swift Talk 498 Split Pane Animations (Part 1) We build a split-pane view that can divide panes dynamically, either horizontally or vertically, with smooth animations for adding and resizing. This episode is free to watch, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 497 Building a Language Model: MLX We use Apple's MLX framework to make our neural network much faster, with shorter, cleaner code using built-in convenience functions. talk.objc.io/episodes/S01...
Swift Talk 496 Building a Language Model: Fixing Backpropagation We fix two mistakes with our reimplementation of Andrej Karpathy’s micrograd, switching from a recursive to an iterative, topologically sorted approach to backpropagation. talk.objc.io/episodes/S01...
Swift Talk 495 Building a Language Model: Gradient Descent We make the forward pass differentiable, building a graph that backpropagation walks in reverse to compute gradients. Gradient descent uses those to train the network, updating weights to reduce loss. talk.objc.io/episodes/S01...
Swift Talk 494 Computing the Loss Function We finish the neural network’s forward computation, turning raw inputs into probability distributions. Comparing those with the targets gives us a loss value: a measure of how good the predictions are. talk.objc.io/episodes/S01...
Swift Talk 493 Digrams with Neural Nets We start building a simple neural net to recognise digrams. Swift doesn’t have built-in types for things like matrices, so we create our own. talk.objc.io/episodes/S01...
Swift Talk 492 Building a Language Model: Neural Nets We explore neural nets, the foundation for modern machine learning. Our first small step is backpropagating through a computation graph, inspired by Andrej Karpathy’s Micrograd. talk.objc.io/episodes/S01...
Swift Talk 491 Building a Language Model: Tokenization We tokenize our text with byte-pair encoding, merging frequent character pairs to build a new vocabulary of tokens. talk.objc.io/episodes/S01...
Swift Talk 490 Building a Language Model: N-grams We implement a simple n-gram to better understand language models, training a complete—if slightly useless—model on a single book. This is a public episode, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 489 Rewriting Recursive Expressions We try a different approach to syntax trees. By separating recursion into a generic map function, we can write operations in a simple way—with some complexity elsewhere. This is a public episode, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 488 The FormatStyle API We look at the API’s more interesting formatting options, and how they interact with SwiftUI. This episode is free to watch, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 487 The Layout Protocol (Part 4) We add two finishing touches to our custom bar layout: layout values for relative widths, and support for system spacing. talk.objc.io/episodes/S01...
Swift Talk 486 The Layout Protocol (Part 3) We add alignment support to our custom layout. It only takes a few lines of code, but aligning without pushing views out of bounds is a little tricky. talk.objc.io/episodes/S01...
Swift Talk 485 The Layout Protocol (Part 2) We make sure that our custom layout distributes space evenly, respects minimum widths and layout priorities. talk.objc.io/episodes/S01...
Swift Talk 484 The Layout Protocol (Part 1) We revisit an old layout challenge and solve it with a custom layout. This episode is free to watch, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 483 Matched Geometry and Corner Radius We try to animate a view’s corner radius with matched geometry effect, and discover some surprising quirks with SwiftUI transitions. talk.objc.io/episodes/S01...
Swift Talk 482 Interpolating Matched Geometry Effect We build a custom matched geometry effect, control its interpolation with a progress value, and drive it with keyframes. talk.objc.io/episodes/S01...
Swift Talk 481 Matched Geometry Effect for Positioning Badges We try a new technique for badge positioning, first building it by hand, then seeing if a LLM can come up with the same solution. This episode is public, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 480 Building a Coding Agent (Part 2) We give our little agent read, write and bash tools. Now it can write a simple Swift program, and execute it. talk.objc.io/episodes/S01...
Swift Talk 479 Building a Coding Agent (Part 1) We learn how agents are implemented by building one, with an outer loop for user input, and an inner loop for tool use. This episode is public, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 478 Solving the View Model Problem (Part 3) We clean up our property wrapper, and create a macro to save us from some boilerplate code. talk.objc.io/episodes/S01...
Swift Talk 477 Solving the View Model Problem (Part 2) We create a view model protocol and property wrapper that regenerates view models when new values are passed to a view’s initializer. talk.objc.io/episodes/S01...
Swift Talk 476 Solving the View Model Problem (Part 1) We investigate, and outline a potential solution to, creating and updating view models in SwiftUI. This episode is free to watch, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 475 Settings Form Layout (Part 2) We use SwiftUI’s Grid as a simpler way of laying out our settings form. talk.objc.io/episodes/S01...
Swift Talk 474 Settings Form Layout (Part 1) We build the layout for a typical macOS settings form in SwiftUI, using sections for structure and a custom form style to lay out the elements correctly. This episode is free to watch, enjoy! 😊 talk.objc.io/episodes/S01...
Swift Talk 473 ThumbHash (Part 6) We transform the RGB image into LPQ color space, and compress chroma more than luminance to produce a good-looking thumbnail using less data. talk.objc.io/episodes/S01...
Swift Talk 472 ThumbHash (Part 5) We apply our transforms to an RGB image, separating the data into three channels before transforming each individually. talk.objc.io/episodes/S01...
Swift Talk 471 ThumbHash (Part 4) We apply our discrete cosine transform to an image, using Core Graphics to process the data, and see it working for the first time. talk.objc.io/episodes/S01...
Swift Talk 470 ThumbHash (Part 3) We extend our discrete cosine transform to work in two dimensions, so we can apply it to image data. Sorry about the audio this week! 😬 talk.objc.io/episodes/S01...