Posts from 2018
Silencing Specific Build Warnings
In one of the online communities I participate in, another developer recently asked the question:
When Recruiting Goes Horribly Wrong
I had an experience with a company and a recruiter recently that I wanted to share with you as a sort of “cautionary tale” about When Recruiting Goes Horribly Wrong.
Building a Cross-Platform Framework
I love to browse through Github and see the sorts of frameworks people build. Pretty frequently I come across repositories that make a good effort to provide a cross-platform experience by offering iOS, watchOS, and tvOS versions. Sometimes there’ll even be the odd macOS version too!
Conditional Compilation, Part 2: Including and Excluding Source Files
In the previous post, we saw how the
SWIFT_ACTIVE_COMPILATION_CONDITIONS
build setting can inject values in to our .swift files that we can use to conditionalize code depending on our active SDK and/or architecture.Conditional Compilation, Part 1: Precise Feature Flags
When developing an app or a library, it’s pretty common that at least once in the course of development, you’ll need to conditionalize compilation of your code. Maybe you’ll be accounting for a bug in the operating system where things that don’t work quite the same on your device as they do on the simulator. Or perhaps you’ll want to simply exclude code from your simulator builds because the simulator simply doesn’t have that functionality (like invoking the camera).
The Laws of Core Data
In my conversations with developers, I’ve heard a pretty common theme from them that “Core Data is hard” or “Core Data is buggy” or “I could never get it to work right and gave up on it”.
Rands on Public Speaking
You should take a few minutes and read this article by Rands on “the worst seven minutes”.
Deriving a New Formula
Way back in the day, I was fairly obsessed with triangles. I really enjoyed my trigonometry class in high school. In addition to being interesting, it was the impetus for me learning to code. I got a little tired of doing all the myriad of
sin()
andcos()
andtan()
functions to solve the triangles needed by my homework, so I decided to write an app for my TI-83+ graphing calculator to do it all for me. The app would ask you for the three things you knew about the triangle (almost any combination of sides or angles) and give you back all the rest of the information (including perimeter and area). I still have that source code.You should give that presentation
I love presenting. I love getting up on stage and teaching developers how to be better developers. I love seeing the light explode in their eyes as concepts click in to place and new ideas and connections are formed. There are few things as exciting to me as this sensation. A lot of my personal motivation for being a good coder is to be continually finding new material that I can teach.
A Better MVC, Part 5: An Evolution
About five months ago, I wrote about improving MVC and fixing the “massive view controller” problem.
Presentation Nerves
I was talking with a fellow attendee at a recent conference who was surprised to learn about the nerves I get prior to presenting. They thought it must be completely natural for me to get up and present. When I mentioned that wasn’t the case, they encouraged me to write a post about it. I thought that was a great idea, so here we are!
Yet Another New Blogging Engine
A few days ago I got an email from the folks at DreamHost (my hosting provider) saying their security scans had detected some malicious code that had found its way in to my server.
If iPads were meant for kids
I bought my kids (6 & 8) their own iPads last fall. I’m nice, and I’m fortunate to be able to afford it. However, I’ve come to realize that despite my attempts to spoil my kids, these iPads (and all iOS devices in general) are not meant for kids.
Apple Networking Feedback
Recently Quinn, an engineer on the Developer Technical Support team at Apple, posted a request for feedback on Apple’s networking APIs. Here are his questions and my answers:
Sometimes I hate being a programmer
There are two things that make me hate being a programmer.
Swift Protocols Wishlist
If I were Supreme Swift Potentate, there are a few things I’d change about how Swift deals with protocols, and how this gets manifest in the standard library.
The 2018c Timezone Database Update
I subscribe to a couple of mildly interesting and low-volume email lists. One such list is the
tz-announce
list hosted by ICANN. It’s the list for people who care way too much about timezones.Simplifying Swift framework development
I’ve developed a handy trick when writing frameworks in Swift that makes the overall process a little bit nicer, and it’s just adding a single file to your framework.
Reading your own entitlements
When you’re writing an iOS or macOS app, you typically don’t need to dynamically know what your own entitlements are. However, there are a couple of rare circumstances when it could be Nice To Have.