Hello there
I turn thinking into simplicity, architecture into adaptability, and quality into time. I write about iOS, software engineering, tools, and the long work of building better systems.
Recent Posts
-
Refactoring the Neo4J Cache Layer
Last week was almost entirely firefighting. We use Neo4J as our graph query backend, and to speed things up we had been caching a large volume of relationship data in Redis. The problem: the cache kept growing, and so did the AWS bill.
-
How I Improved CoreText Rendering to 60 FPS
Recently, I started building a video player that uses CoreText to render subtitles. However, when scrolling through the UI, the frame rate dropped to an unacceptable 15 FPS. To fix this, I created a demo that wraps a native text view with CoreText rendering, eventually optimizing the performance to a smooth 60 FPS.
-
Swift Concurrency - From GCD to Structured Concurrency
I remember when I first graduated and started iOS game development, I used NSThread directly for multithreading. When GCD (Grand Central Dispatch) was introduced, it was very convenient to use, and I used it almost exclusively. occasionally, when tasks had dependencies, I would use NSOperation.
-
ios serious 01
I hadn’t noticed loadViewIfNeeded before. Usually I just access vc.view to force the view to load. loadViewIfNeeded is definitely clearer and more explicit—it avoids accidental side-effects when you only want to load the view conditionally.
-
My Ideal CI/CD Workflow for Solo macOS Development
You can view the full GitHub Workflows file here.
-
Using Nano Banana Pro to create an app icon
This is the App icon generated using the prompt above.