The Blog

Swift Kickstart Update


« Messing with Macros

Next »

A little over ten years ago I was in the audience at WWDC when Swift was announced.

In many ways it wasn't a surprise. A lot of us had figured that a new language was coming and many of us had some ideas of what it would look like.

But as I sat there I got more and more excited by the new language and decided I wanted to write a book about it.

I knew it was risky. The language would change a lot in its early years. But it was one of those moments that I saw something and knew I wanted to be involved.

I'd done the same with Java and yet I'd decided that C# wasn't for me. There was something about the early Java community that I really liked and wanted to be a part of. I still have many friends from those days.

I'd done the same with the iPhone and was the editor of one of the first books to be published for iPhone development and co-taught one of the first public classes on it. On the other hand I didn't jump at Palm before the iPhone or Android after.

I really liked the worlds of Jini and Java-Spaces but never really did anything with them.

I may have missed out on AI/ML and the Vision Pro but neither speaks to me.

Swift appealed to me from the start.

Before the presentation was over I'd texted my designer and asked her to design a book cover for a book I would call "A Swift Kickstart".

I wrote the book using playgrounds - which were new - and also developed training on the same topic.

Over the next few years the language changed in dramatic and painful ways.

I still didn't regret my move.

I honed my examples to make them cleaner and clearer and a few years in decided that the topic had changed enough, I needed to rethink the material and write a second edition.

That was in March of 2016.

Since then I've updated the book as Swift updated but mainly, if the code still compiled, I left it alone.

I've just updated it for Swift 6. There were some small changes and some code that needed to be rethought. Although the code works for Swift 6, I don't cover concurrency in this book.

First, I don't consider it to be an introductory topic. Second, I have a whole other book on the subject (which I also need to update).

I've also decided that this will be the last update for this book.

The parts of the language covered in this book should be stable. The parts not covered in this book are, again, not appropriate for an intro book.

I haven't looked at the book in three years so I had fresh-ish eyes. I was mostly pleased with the book. It it designed to introduce experienced programmers to Swift and I think it still does a good job of that.

If it didn't, I'd stop selling it. I've pulled many books from sale when I didn't think they brought enough value to readers.

Saying that this is the last update makes me a little sad. I don't get called on to teach intro Swift that much and the examples in this book include a favorite sequence that refers to Kim, Maggie, Annabelle, and me.

A few months after I released the second edition, Kim, my wife, was killed by a truck driver reaching over for his cell phone.

The first time I taught the Swift intro class after that I paused when I reviewed the material. I always revise a course each time I teach it.

Do I leave her name in or do I take it out?

I left her name in and it takes my breath away every time I get to that section when I teach the material.

That's good. I should think of her and memories of her should take my breath away.

Annabelle was our dog. After Kim was gone, Annabelle would make sure I got up in the morning and got off the couch hourly to pay attention to her. She died since my last update to this book and I've kept her name in as well.

Maggie is my eldest daughter and she's still around and is amazing. She was in high school when Swift was born and in college when I released the second edition of the book. She's now a high school teacher and my favorite person on earth.

Anyway, I wanted to tell you that I've updated A Swift Kickstart. If you own it, you can update it for free. If you don't own it - or know someone who doesn't own it but would benefit from it, I'd appreciate you buying it at Gumroad where I am offering it for 50% off.

This edition requires Swift 6 which means you have to be running the Xcode 16 betas.

Blog Index and Subscription Information