Hello, World!

Published: January 9, 2024

Hello there. I’m Natan.

I’ve been doing iOS applications since 2009, when I learned how to program in Objective-C. Along the years, I’ve discovered other programming languages, found new passions surrounding app development, and grew my toolbox. A little bit of web development here, server side development and deployment there, but also a very important domain: developer experience and tooling.

In 2019, one of my managers noticed how I was passionate about doing some meta programming work: writing scripts to clean up our Git remote, improving CI times and reliability, cleaning up and organizing the Xcode workspace and the tens of projects it had. He proposed me to be part of a new team at that company: the infrastructure team.

I immediately accepted, and a new world opened up for me. Being able to write new tools, empower my colleagues, help defining patterns and workflows, they were all a fresh restart I wanted after years of parsing JSON and drawing them on screen. I discovered new tools (Tuist is by far the one I learned the most from), explored new areas, and deepened my knowledge in a world I thought I had known enough. I found it fascinating.

Swift All the Things?

Swift is definitely not the silver bullet programming language. This is not what this website will preach. It has many downsides. In the web development realm, JavaScript tooling is still to be beaten, even with all its issues. This site itself is built with SvelteKit, and it’s pure joy.

Learning new programming languages is definitely something one should strive for. Another tool in your belt, different ways of thinking, building and shipping products. You’ll get to know more patterns and architectures. Finding what language, framework or stack is the right one for a job will make you a better engineer. Weighing pros and cons and comparing options is what developers do, all the time.

Then Why Swift?

Having said that, in the last few years the Swift ecosystem grew significantly in areas that are not necessarily related to app development, or not directly related. The Swift Package Manager has become more flexible and powerful; the introduction of async/await has changed the way we work with asynchronous (and even distributed) operations; the Swift Server Work Group has pushed the limits of what can be done with Swift on the server (and serverless as well). And this list could go on and on.

For a team made of people with different backgrounds, having to maintain and interact with tools built with different languages can be a challenge. John can know Python, Rachel might be an expert in JS and npm, and Ethan loves Ruby. But hey, in a team that deals with iOS or Mac, there is one language and set of tools they will definitely be familiar with Swift, Foundation and SPM.

Hello, SwiftToolkit.dev

With this in mind, I decided to build a place to share this type of content. You’ll find here blog posts and tutorials about areas less explored in the Swift community (when compared to the regular iOS content): tooling, Server Side Swift, CI, developer experience. Eventually, some UIKit and SwiftUI might show up as well, but they will not be the main focus.

I hope you enjoy and learn with my journey here. Don’t forget to like, subscribe to the channel and activate the notifications follow SwiftToolkit.dev on Mastodon or X, or subscribe to the RSS feed.

Ready. Set. Go! 🚀

Pure human brain content, no Generative AI added
Swift, Xcode, the Swift Package Manager, iOS, macOS, watchOS and Mac are trademarks of Apple Inc., registered in the U.S. and other countries.

© Swift Toolkit, 2024