4 min read
The Most Difficult Thing I've Ever Done - Starting a Company
Years ago I wrote that finishing a book was the hardest thing I'd ever done. Starting a company has taken the title, and it's hard in a different way.
43 posts, newest first.
4 min read
Years ago I wrote that finishing a book was the hardest thing I'd ever done. Starting a company has taken the title, and it's hard in a different way.
8 min read
Does separating code into extra extensions and/or modules have a meaningful impact on compile times?
9 min read
While toying around with an app idea I came across the need to develop my own algorithm and therefore return to Data Structures and Algorithms techniques I learned in college. Here is the problem, my process, and my solution.
1 min read
While updating my app for the iOS 13 SDK, I came across a change in JSONEncoder that broke some of the logic in my code. It now supports encoding top-level values.
1 min read
What is the value of result after doing: let result = false && true || true
2 min read
Be warned: there may be a bug in the fancier version of Key Value Observering. I discovered it while implementing a progress callback in my Decree web request library.
4 min read
A couple very common programming patterns, especially in the Apple world, are Singleton and Shared Instance. People often confuse the two and there's also controversy around them. Let's clear these things up.
8 min read
I walk through how I solved the question: How do I display a text field directly above the keyboard to prompt the user for some text?
2 min read
Decree allows you to make HTTP requests in a clear and type-safe way by declaring web services and endpoints. It supports all Apple platforms as well as Linux. It is the culmination of a technique I've developed over many projects. Some of those projects even include both a frontend and backend implemented in Swift that get to share a single source of endpoint declarations.
3 min read
I recently came across a video showing an “Amazing Crabs Shell Exchange” and realized that it was a perfect example from nature of how seemingly complex (or “amazing”) behavior can emerge from simple governing desires. This is directly applicable to programming. Lets explore how.
11 min read
A look at the interesting technical challenges I ran into while developing this app.
15 min read
A list of core skills that are necessary in almost every app. If you can do all of these things reliably, you are well on your way to being a great hire as an iOS developer
18 min read
There are many ways you could choose to host a Swift website or web service, but here I share what has worked well for me.
18 min read
There are many ways you could choose to host a Swift website or web service, but here I share what has worked well for me.
11 min read
A list of skills, beyond just the ability to get the job done, every Swift developer should know before they get paid to develop.
7 min read
The hardest part of developing Server-Side Swift is the incomplete nature of Foundation including some pretty critical basic functionality. After I thought up this technique, the problems I ran into changed from mountains to mole hills.
4 min read
I have been extremely busy so I haven't made the time to write any blog posts. In this post I give a brief overview of what I have been up to and what are my short-term plans for the future.
14 min read
An in-depth discussion of my experience writing a technical book about learning Swift.
1 min read
An practical example of how curried functions in Swift can be useful for implementing a logger
8 min read
My attempt to implement a KVO replacement purely in Swift
5 min read
A list of key concepts to know when getting started with Swift and links to resources to stay current with its development.
3 min read
A list with concrete examples of when and when not to use Implicitly Unwrapped Optionals in Swift.
9 min read
Concrete examples for some cool and practical new features in Swift that will improve the daily lives of iOS and OS X programmers.
1 min read
Basic value types like String and Int can be secretly converted to Objective-C types like NSString and NSNumber. This has some interesting effects and implications.
2 min read
A more declarative and testable way to display alerts in iOS.
2 min read
Testing asynchronous code in Objective-C can be a real pain unless you make one simple change to the way you program it in the first place.
6 min read
A list with descriptions of the main podcasts that have made me a better developer and keep me informed.
2 min read
The way that I handle my to-do list so that I stay on task with minimal effort.
1 min read
While developing a Rails backend using Devise for user management, I ran into trouble determining a user's status. This is how I solved that problem.
2 min read
I hate being constantly distracted by incoming emails. To solve this problem I decided to drastically reduce the amount of emails I receive. This is how I did that.
3 min read
Being and independent developer can be extremely stressful. It is important that you learn to accept, appreciate, and channel to turn it into something positive.
1 min read
A series of posts about how to be a better independent developer
3 min read
No person is an island. It is virtually impossible to be successful in anything that you do without having a good support structure around you.
4 min read
A look at how pushing through discomfort is exactly where I want to be.
2 min read
A system to make version control change sets more understandable at a glance.
2 min read
A way to make all path changes on a CAShapeLayer be animated automatically.
3 min read
My theory on how user experience's and code architecture's interests can converge. Good UX can encourage good code reuse and code reuse can encourage effective UX.
1 min read
A library to allow binding a UITableView directly to a to-many property. The library automatically handles insertions and deletions as long as you make sure the to-many property emits KVO notifications.
5 min read
Speech is still a relatively new interface. Technology is finally starting to catch up to the dreams that we've had since the invention of the computer itself: dreams of having natural conversations…
3 min read
An extension to NSObject that adds the allows binding the properties of two different objects together, allowing for much more declarative and understandable code.
3 min read
How I came to the decision to finally take the plunge and go independent.
4 min read
Discusses a high level way that we can integrate UX designers better into Agile software practices.