The Nested Closure TrapRevisiting [weak self] to avoid retain cycles with this common scenario that involves nested closures in SwiftMar 12, 2020A response icon2Mar 12, 2020A response icon2
Concurrency Visualized — Part 3: Pitfalls and ConclusionThis last part of the series covers some common challenges that you might encounter with Grand Central DispatchJan 29, 2020A response icon6Jan 29, 2020A response icon6
Concurrency Visualized — Part 2: Serial vs ConcurrentA detailed look at serial and concurrent queues in Grand Central DispatchJan 29, 2020A response icon4Jan 29, 2020A response icon4
Concurrency Visualized — Part 1: Sync vs AsyncAn in-depth comparison of synchronous and asynchronous execution in Grand Central DispatchJan 29, 2020A response icon2Jan 29, 2020A response icon2
Fireworks — A visual particles editor for SwiftSep 16, 2019A response icon2Sep 16, 2019A response icon2
My first Swift projectI mentioned in my earlier posts how personal projects helped me stay motivated while I was learning programming. In this post I will talk…Mar 27, 2019Mar 27, 2019
High performance drawing on iOS — Part 2This article covers two different ways to perform 2D drawing while leveraging the GPU hardwareJan 19, 2019A response icon7Jan 19, 2019A response icon7
High performance drawing on iOS — Part 1How I optimized 2D drawing for my game, including what worked and what didn’t workJan 17, 2019A response icon4Jan 17, 2019A response icon4
How I built my first open source libraryLast week I published my first open source library, QuickTicker. It’s a Swift library that lets you create simple ticker animations using…Nov 1, 2018Nov 1, 2018