This is common knowledge for experienced entrepreneurs, and it's why you really don't need an NDA to discuss your ideas with someone (see number two on this list of mistakes people make looking for technical cofounders). Examples of this principle are easy to come by: a social network is a great idea, but only one… Continue reading Practical applications of “execution is more important than the idea”
Author: E S
Prefer functions to protocols
Let's look at a simple concrete example. Suppose we want to test a part of our code that's time dependent: class SomethingImportant { func aTimeDependentAction() { var currentTime = Date() // ...do something with the current time } } To test this code, rather than using Date() to get the current time, we want to… Continue reading Prefer functions to protocols
Easily handle server errors by default in iOS
One of the things that sets a good app apart is that when something goes wrong, which it inevitably does, it handles the error gracefully, and, better, it makes it easy for developers to fix the issue. A reasonable first step towards this is to display an alert to the user detailing what happened, and… Continue reading Easily handle server errors by default in iOS
Why you should try Functional Programming (in Swift)
Perhaps this seems like a truism, but: functions are what add functionality to a program. Everything your program does, it does with functions. Classes, as a concept in Object Oriented Programming, are largely organizational; that is, they work to constrain and restrict functionality to a given context, to limit where that function(ality) can be used.… Continue reading Why you should try Functional Programming (in Swift)
Beware multi-sided businesses
In one episode of How I Built This about Bumble the guest (Whitney Wolfe) describes how when Tinder started, they had a bit of a chicken and the egg problem: guys would only want to use the app if there were a bunch of girls on there, and, on the other hand, girls would only… Continue reading Beware multi-sided businesses
Solving Diamond Inheritance with Functional Programming
Note: this article is based on a talk I gave at iOSDevCampDC in August, 2019. That talk, in turn, was based in large part upon the excellent PointFree video talking about similar concepts, though that video did not have the same focus on comparing OO with FP. That said, the video is an amazing one… Continue reading Solving Diamond Inheritance with Functional Programming
How to balance a shiny refactor with shipping features
Note: This post is about Swift in particular, but a lot of this applies to general software development. Functional Programming is fun and all the cool kids are doing it. MVVM has made my code clearer and more testable. Several libraries I've written make my code more flexible, while others allow me to skip to… Continue reading How to balance a shiny refactor with shipping features
The Problem of Doubt in Entrepreneurship
A lot of advice about entrepreneurship is focused on perseverance. Like: "You have to believe in yourself and your idea." "Everyone will tell you your idea is bad – just keep going." "You miss 100% of the shots you don't take." And so on. And it's true, of course, in a way – entrepreneurship is… Continue reading The Problem of Doubt in Entrepreneurship
Easy Multipart Uploads in Swift
On several occasions I've worked with server devs who build endpoints for image uploading (eg user profile pictures, image posting, etc.) that expect the data in multipart format. As someone who mostly uses a thin wrapper over URLSession for my networking, this can be... frustrating. There's no simple way to just tell URLSession that the… Continue reading Easy Multipart Uploads in Swift
Making UIKit Functional-Programming Friendly
I've become quite the functional programming advocate, but one difficulty I often face is the prevalence of Object Oriented code throughout the iOS platform, and perhaps most obviously in UIKit (I'm not going to talk about SwiftUI here – it's still too new for production in my opinion, though of course I'm looking forward to… Continue reading Making UIKit Functional-Programming Friendly