Designing a smart tagging system from scratch
by Peter Friese
Xcode tips & tricks, Swift, SwiftUI, Firebase, computing and internet history, and - of course - some fun stuff.
Read and trusted by engineers from:
Hey everyone!
I hope you’re having a great start to the year.
Over the holidays, I’ve not only been indulging in some holiday treats, but I’ve also been working on a couple of things that I am excited to share with you.
One of them is a PDF version of The Swift Programming Language (TSPL) book, which I created based on Apple’s official source. It’s a great way to read the official guide offline or on your tablet.
I’ve also been thinking about the next season for my livestreaming show Building a Second Brain App. For this upcoming season, I’m going to build a smart tagging system. And - as you might have guessed - I’m going to use AI for that. The topics in this issue of the newsletter are a hint for what to expect (spoiler: agentic coding using Antigravity, Gemini CLI, and a bunch of skills).
On the Firebase YouTube channel, we’re going to continue doing livestreams as well - in addition to the beloved After Hours show, we’ll start a new series called “Code, Commit, Deploy, Repeat”, which will be focused on live coding of a Firebase app.
This year is also going to be exciting in terms of conferences. There are a bunch of new conferences, particularly in the US. Check out the overview I added to this issue to get an idea of what’s coming up. Some conferences have open CfPs, so if you’re interested in speaking, now is the time to apply!
Enjoy the issue, and let me know if you have any questions or comments! Just hit reply to this email.
Peter
by Peter Friese
The Swift Programming Language (TSPL) book is the authoritative reference for Swift, offering a guided tour, a comprehensive guide, and a formal reference of the language. Apple distributes it as an online version. There is also an ebook version on Apple Books, but it hasn’t been updated since Swift 5.7.
People have been asking for a PDF version of the book many times, and I finally decided to give it a try. I forked Apple’s official repository and added the necessary infrastructure to generate a high-quality PDF version of the book using my Typst template EightByTen.
EightByTen is a template I’ve been developing for creating beautiful, Tufte-style technical textbooks. It’s been a great way to stress-test the layout and typography, and I feel confident using it for a book about SwiftUI that I’ve started working on.
If you decide to check it out and find any issues or errors in the PDF generation, please feel free to submit them using the GitHub issue tracker!
This latest addition to the collection of sites that make hard-to-grasp concepts accessible to everyone is a great overview of Swift concurrency concepts.
You should defintely check it out, and even if you don’t bookmark it, you should add the skill it provides to your favourite coding agent (side note: I love how the SKILL.md file is just a third of the length of the English version for humans)
(*) hopefully this helps to prevent this newsletter issue from being flagged by any corp content filter system…
I’ve used Guille Gonzalez’s swift-markdown-ui library for rendering Markdown in SwiftUI in many projects. It’s a great library and I highly recommend it.
Guille has now released a new library called Textual that builds on the experience of building swift-markdown-ui.
I can’t wait to try it out in my next project!
Oh, and since swift-markdown-ui is now in maintenance mode, I should probably also upgrade my existing projects to use Textual 😅!
Really good read on how to think about using LLMs at work (although most of this also applies to your personal life as well).
[…] human judgement remains firmly in the loop: even if or as an LLM is generating an artifact that we will use (writing, test cases, documentation, code, etc.), their output is the responsibility of the human using them.
“The dog ate my homework” never was a good excuse, and “I used LLMs” isn’t any better. If you use AI to do your work, you are responsible for the results. And - as I said, this applies to your personal life as well, as a Dutch couple recently had to learn the hard way.
Antoine not only distilled his own experience with Swift Concurrency into a skill that you can use with your favourite coding agent, but also included a wealth of knowledge and experience from Matt Massicotte.
Thanks to the focused nature of Skills, we can expect many more skills for all sorts of topics to appear in the future.
by Joe Njenga
The latest preview release of Gemini CLI now supports Skills. Since this is a preview feature on Gemini CLI, you need to install the preview version of Gemini CLI to use it.
You can do this by running npm install -g @gemini-cli/cli@preview.
Once you have installed the preview version of Gemini CLI, you can enable the experimental skills feature in your Gemini CLI settings. Once active, you can simply drop your Claude Code skill folders into ~/.gemini/skills/ and they’ll be ready to use.
Joe walks through the entire experience of setting this up, using some existing skills, and even creating your own skill from scratch.
by Oskar Groth
This is a rare glimpse into the interview process at Apple. What I love about the assignment is that it seems deceptively simple at first glance, but once you try to meet all the requirements, it quickly turns from a 5 line solution to a proper contribution to a library like swift-algorithms.
by Fangjunyu
Did you know that Swift projects on GitHub can be opened directly with Xcode? Unfortunately, this only works if there is an Xcode project file in the root folder of the repository.
by Marco Haber
In my daily work, I find myself switching between multiple branches all the time. In the past, I used to check out the repository into separate directories and switch between them. This worked, but it was a bit of a hassle.
Git worktrees are the official way to achieve the same result, while keeping a connection between the different directories. If you haven’t tried them yet, I recommend giving them a try.
by Peter Friese
Here is your updated list of conferences for iOS, Swift, and AI. If you don’t like waiting for the next newsletter issue, head to iOS Conferences (courtesy of Adam Rush) for a list of upcoming and past iOS and Swift conferences.