I’m still blown away when I think back to my experience attending WWDC 2018. The sheer scale and production value of the event, the overwhelming number of world class developers, and the downright fun I had attending - it was just so awesome.
When I reflect on my time in San Jose and everything that I learned and saw, and I think back to all of the awesome events and talks I attended, one of the most unlikely sessions still stands out. Session #221 - TextKit Best Practices.
Like it’s name suggests, the talk focused on the basics of TextKit - the foundational library used by AppKit and UIKit to display text. Not the flashiest subject at WWDC by any means. Accordingly, session #221 was held in a small hall off the main area of the San Jose Convention Center that felt like a hidden gem as I discovered the side hallway leading to the doors of the hall.
So, big whoop, you went to a filler talk at WWDC, what’s the big deal with knowing TextKit?
The big deal is that every app you write for iOS or macOS utilizes TextKit. Understanding the power of the libraries available to you, even the simplest and most foundational ones, enables you to do amazing things.
So what wisdom did Donna and Emily impart? Here’s what stuck out to me the most from #221
TextEdit is just a fancy wrapper on a
The macOS app TextEdit is a simple NSTextView wrapped with some simple editor functions.
TextEdit just enables things like bold/italic/bullets as buttons that format your selected text, but all of those functions are just simple actions supported by NSTextView. Some of the actions supported - like editing a table - are supported automatically. This is hugely encouraging! A mac app used by millions of people is attainable with some simple tweaking to a standard OS component!
Also cool - the TextEdit source code is available to download for free from Apple.
Writing a Text Editor is attainable!
I have always had an interest in writing productivity software - like millions of other developers. We spend our whole days on our computers and organizing our work and thoughts, it makes sense we’d want to build something to help ourselves do that.
I’ve discussed with fellow developers about the possibility of writing a text editor, specifically something for Markdown editing, and usually I get the response that writing a text editor is really hard. There are a lot of challenges to editing text, and building something like that from scratch is really hard.
That mental hurdle has stood in my way for awhile when contemplating iOS projects to work on in my free time, but session #221 bashed through it with a sledgehammer. Not only does TextKit give you most of the basics for free, but this talk enlightened how I could take those tools and build something extremely powerful. The fact that they demo’d a markdown editor in macOS was all the more impactful for me personally.
I started writing version 0.1 of OctoNote, my markdown notes app, that very day.
The Power of Understanding the Tools
More generally, the amazing thing about this talk to me is just how helpful it was for me in the work I wanted to do. I went into the session just curious about one of the foundational frameworks of Apple development, and I left with the missing piece to an app I had been carrying in my head.
It speaks to the powerful of continuous learning, especially in development. Opening yourself up to the knowledge of other developers, and devoting the time to digest what they say, is immensely powerful. The truth is we just don’t have the time to build, experiement, and play with everything first hand, but we can get so much of that information by listening to another dev’s journey.
If you’re looking to find a technical talk, I would also highly suggest listening to talks from the developers of the frameworks you use. That is the real value of attending WWDC as an iOS dev or I/O as an Android dev. Understanding the API’s you use every day has tremendous value.
Goal for 2019 - listen to and attend more technical presentations! If you have suggestions for Android or iOS talks that I need to listen, let me know @ajkueterman on Twitter.