Don’t be fooled by the 13-inch MacBook Pro. It is not worth paying an extra $200 for the word Pro. Instead you should get the quad-core i5 MacBook Air with 16GB of memory for $1299.
You can get a Mac mini with similar specs for $1000, but most people prefer the portability of a laptop so that’s what I cover here. If your budget is under $1000 you should buy a used Mac. Get one with a quad-core i5 processor, at least 8GB of memory and a solid state drive.
How I picked
The most important metrics for a personal development machine are the number of years you can upgrade to the latest Xcode and the build time for incremental builds. If your employer is paying, you can convince them that any extra performance is worth it, but when you’re paying you realize it’s not. Spending twice the money will probably make the difference between getting 8 years or 9 years out of a computer.
Other important factors to consider are the project size and number of storyboard scenes the computer can handle and the time it takes to launch a simulator. A computer with short build times will do well at all of these.
The MacBook Air has the newest generation of keyboard which is a big improvement over the keyboards of the last four years. If you are buying a used MacBook make sure you try out the keyboard to see if you like it before you buy.
Selecting the 8GB model would be fine for now, but upgrading memory is not an option in any of the MacBooks that work with Xcode 12. At some time in the next 8 years you will need 16GB of memory, so get it now.
I work full time as an iOS developer and have used nine consecutive versions of Xcode. I run Xcode on my personal late 2012 MacBook Pro Retina which has a dual-core i5 processor with 8GB of memory. I also run Xcode on my work MacBook Pro which has an 8-core i9 processor with 32GB of memory. After 8 years my personal Mac still works great, but it does feel a bit under-powered compared to the work computer. The price and performance of my personal Mac was right in the middle of Apple’s product line when I bought it. The MacBook Air I recommend today falls in the same place.
I’m only considering an upgrade now because I won’t be able to update to macOS Big Sur. My computer doesn’t get the update because Intel stopped supporting firmware updates for 2012 processors. Today’s MacBook Air has the 10th generation i5 processor, while MacBook Pro is still on the 8th Generation. The 8th generation of processors is a year older, so it’s likely to be dropped a year before the 10th generation. Another strike against MacBook Pro.
Should you get more memory or a better processor?
I analyzed community sourced incremental build times to answer that question. This data was gathered by building the same project on many different computers. My analysis showed that incremental build time does not improve on computers with more than 4 cores or on computers with more than 16GB of memory.
The standard 256GB drive should also be enough. The latest version of macOS plus Xcode and the iOS Simulator only take up 36GB.
When should you upgrade?
Improvements in computers come very slowly so there’s few reasons to upgrade as long as you can run the latest version of macOS. Once you can’t do that you know that you only have about 18 months until that computer can no longer submit apps to the App Store. Only then is it time to look for an upgrade.
It’s unlikely that we will see a better development computer come to the market any time soon. For that reason I think it’s a great time to get the $1299 MacBook Air.
November 2020 Update: You can now buy a MacBook Air with M1 chip and 16 GB unified memory for $1199. This is an even better deal than before. Just make sure to check that the 3rd-party software you use is compatible with the new chip.