Do you have a great idea for an iOS app or a Mac app? Looking for the right machine to code it on? You’ve come to the right place! In this article we will look at why a Mac is necessary for iOS development and the minimum Mac you need for coding.
Whether you are a seasoned app developer looking to update your Mac to something more substantial, or just trying your hand at creating an app for the first time and hoping to find a low cost Mac that’s good enough for the purpose, we will help you find the best Mac for your needs.
If you want to skip the buying advice, you can jump straight to our recommendation of the best Mac for coding.
Why you need a Mac for iOS (and MacOS) development
To develop an iOS or Mac app you will need the following:
- Membership of the Apple Developer Program. It costs $99 annually (about £70) and gives you access to beta software, advanced app capabilities, extensive beta testing tools, and app analytics (more information here.) To just test and deploy applications you only need an Apple ID, but you will need to be a member of the Developer Program if you want to sell your apps on the App Store.
- Even if you developed your app using something other than a Mac, you will need a Mac to compile the final product that is uploaded to the App Store.
- Xcode is the primary tool for macOS and iOS development and it is only available on the Mac. It is a free download from the Mac App Store and the current version is 11 the time of writing. That includes Swift 5, SwiftUI and SDKs for the latest versions of iOS, watchOS, tvOS, and macOS - and for developing for the upcoming versions, iOS 13 and macOS Catalina. Note that Xcode requires macOS High Sierra 10.13.6 to run, so you also need…
- Xcode 10 requires a Mac that can run macOS Mojave 10.14.3 or later (see below).
In addition to all the above, there are some benefits to developing on a Mac even if you aren’t building for one of Apple’s platforms, the key one being: You can run all the major operating systems on a Mac - Windows, Linux, etc - so you could use your Mac to program for any OS. Want to make a version of your app for Android too? No problem.
As we will discuss below, it’s difficult to run macOS on anything other than a Mac and there are lots of reasons why we wouldn’t recommend that as a solution. You could build a hackintosch, and some people do, but we'll save that for another article.
Want to know even more about programming on a Mac? Read:
- How to make apps with Apple Swift 5
- How to use Swift playgrounds
- How to learn Swift: books, courses, guides
- How to learn Python coding on a Mac
Take a look at Udemy's online Swift courses, too.
How to choose the best Mac for programming
We have already established that you will need a Mac that can run macOS Mojave 10.14.3 or later in order to use the latest version of Xcode, and here are the computers that fit the bill:
- MacBook (Early 2015 or newer)
- MacBook Pro (Mid 2012 or newer)
- MacBook Air (Mid 2012 or newer)
- Mac mini (Mid 2012 or newer)
- iMac (Late 2012 or newer)
- Mac Pro (Late 2013 or newer, or mid 2010 and mid 2012 models with a Metal-capable GPU)
- iMac Pro
So which of these Macs would be best?
If you were to consider every Mac included above that would be a huge range of Mac laptops and desktops. Some are better suited to app development than others. You might find a Mac that looks like a bargain, but another Mac could offer much more for only a little extra.
To find the best Mac for developing you should take the following into consideration:
- Will this Mac provide the best coding environment?
- Is this Mac future proof?
- Does this Mac cost more than you want to spend?
We’ll look in details at the following requirements below: screen, portability, RAM, CPU, storage, battery life, ports and peripherals.
One of the most useful things for a coder is a big screen. As a developer you will probably have several programs and windows open at once: a web browser, a text editor, and the Xcode IDE (Integrated Development Environment) to name a few.
You will benefit from a large screen or things will feel uncomfortably cramped (even more so if you are using Unity3d for game development, for example).
The 27in iMac has the biggest screen on any Mac and its Retina 5K display is one of the best quality 5K displays you can get. In fact, if you want a 5K display it’s actually better value to buy a 27in iMac than a separate 5K display.
But do developers really need a 27in iMac? Not really. If you want to use a big screen there is nothing to stop you plugging one (or two) external displays into any Mac. (See our screen recommendations here).
A separate screen is a good option if you are looking for a portable Mac. That way you have the benefit of being able to code wherever and whenever inspiration hits, and benefit from a bigger screen when you are at your desk.
What about when you aren’t at your desk though? Based on the theory that you need as much screen as you can get you might want to consider a 15in MacBook Pro. But would a 13in MacBook Pro, or an even cheaper MacBook Air suffice? And would a 12in MacBook be out of the question?
As for the difference between a 15in and a 13in MacBook Pro - the 13in models will probably suffice. We used to advise against getting a MacBook Air, but then Apple updated the range in October 2018 and the newer model is in a different league to the old-style Air. We look at the pros and cons all these Mac laptops below.
When it comes to the screen size on a laptop, choosing a Mac laptop with a Retina display make a big difference. A Retina display isn’t just beautiful to look at, it is capable of scaled resolutions - so you can crank up the resolution using scaling and see a lot more code in Xcode.
All Mac laptops now have a Retina display, including the 2018 MacBook Air (older models of the MacBook Air do not have a Retina display).
In July 2019 Apple added True Tone to the MacBook Air display, which is also a feature of the MacBook Pro. This could could be a benefit if you tend to program in the dark as it adjusts the colours to the lighting conditions.
As for a 12in MacBook - which has been discontinued by Apple, but you may still be able to buy one - it’s an option if your main priority is finding something small and light, but the 13in MacBook Air and the 13in MacBook Pro aren’t much bigger or heavier and have a lot more going for them. So we’d stick with the MacBook Pro or the Air.
Which ever MacBook you choose, we suggest you factor in the cost of a separate screen for when you are at your desk, because as a programmer you are going to benefit from as much screen space as you can get your eyes on. Both the Air and the Pro can support two extra 4K displays, or one 5K display, which could be handy.
Speaking of factoring in the cost for a separate screen, the 2018 Mac mini lacks a screen altogether, but it supports a 5K display, or two 4K displays, so that could be worthy of consideration.
The next consideration is the specs of the Mac. Coding an app isn’t going to be as big a power drain on your Mac as playing a graphic intensive game (unless you happen to be developing a graphic intensive game) but you will find yourself tearing out less of your hair while waiting for Xcode to compile your code if you have a reasonably specced machine.
What are the best specs for a Mac that’s going to be used for programming? We’ll look at RAM, CPU and storage below.
When it comes to programming, memory is key. Xcode uses a lot of memory and if you use any other apps, such as Photoshop, you’re machine will soon be struggling if you have insufficient RAM.
You will need 8GB RAM at the minimum - so that rules out any older generations of Macs that shipped with 4GB RAM - it's unlikley that they would support the newest version of Xcode anyway. However, if you are buying a new Mac then we’d recommend that you choose 16GB RAM as a build-to-order option to future proof your purchase.
If you are wondering whether you can upgrade the RAM later on - or maybe add more RAM to a second hand Mac - the answer is probably no. With the exception of the 27in iMac, no Macs have user-upgradable memory. The RAM inside the 2018 Mac mini, 21.5in iMac, and iMac Pro can be updated, but only by an Apple registered professional. The Mac Pro when it launches will also have upgradable RAM, but at over $5,999 it's likely overkill for your purposes.
Macs are famously hard to upgrade. In some cases it can be done, but doing so is almost never easy, and usually highly risky, and will void your warranty. Read about how to upgrade your RAM here if you are feeling confident.
The processor inside the Mac is an important factor to consider if you are choosing between different generations of Macs. While you don’t need the fastest processor available for programming, you do want to make sure that you are getting the best processor for your money, especially if you are considering an older, secondhand or refurbished Mac.
Don’t assume that all the Macs currently being sold by Apple have the same generation of processor inside them. Some Macs were updated in 2019, others in 2018, but there are a few that haven't been updated since 2017. A processor from an older generation may have an impressive looking GHz, but a newer processor with fewer GHz could actually be faster.
The other thing to consider is the type of processor. Do you need an 8-core, 6-core, quad-core, Core i7, Core i9, or will a dual core, i5 suffice, or even an i3 like you will find in the entry-level 2018 Mac mini? Or should you be looking at an Xeon workstation such as is offered by the iMac Pro or Mac Pro.
We can rule our the latter immediately - it’s safe to say you don’t need anything as powerful as an iMac Pro or Mac Pro for programming (unless you are programming something incredibly graphics intensive).
Choosing between a dual-core, a quad-core or 6-core processor (or deciding whether to upgrade to an i7 chip or even i9 chip) is less obvious. You probably will be just fine with a dual-core i5 processor for coding, or even the i3 in the entry-level MacBook Air, but if you have money to spare then it won’t hurt to get a more powerful Mac. Read about the different Mac processors here.
You shouldn’t need a lot of storage on the basis that your code shouldn’t take up a lot of space - if it does you need to look at your code.
We’d advise against any Mac that has a hard drive - so that rules out the entry-level iMac and Mac mini and some older, secondhand models. You will find that Xcode builds take a long time if your Mac has a hard drive. Instead opt for a Mac with an SSD - if you are worried that you won’t have enough space you can always get an external storage device.
We'd advise that you ignore any Macs that ship with 128GB SSDs and opt for 256GB or 512GB if you can afford it.
When Apple updated the Mac mini in 2018 it was a pleasant surprise as for the first time the mini Mac was a powerful machine. One benefit in terms of storage is the build-to-order 2TB SSD, not that we think you'd need that for app dev.
Battery life is something to consider if you are looking to buy a Mac laptop for programming. Programmers complain that Xcode eats a lot of battery, so expect to be using the charger a lot.
If the maximum battery life is important to you, the MacBook Air offers 12 hours versus 10 hours of battery life on the MacBook Pro. But don't buy the older 2015-2017 MacBook Air without the Retina display if you see one on sale (it's been discontinued by Apple) - in that case the better display on the Pro is well worth the loss of those two hours of battery life.
Ports and peripherals
One more consideration that may or may not matter to you is the ports on offer. Mac laptops are notorious for their lack of ports. In order to keep them small and thin Apple has skimped on the ports to the extent that the now discontinued MacBook only had one USB C port which had to be used for charging too, perhaps one of the reasons for its demise.
If you want to plug your Mac laptop into a external screen and external storage, and if you would rather plug in a separate mouse and keyboard when you are sat at your desk, then make sure you have adequate ports.
The great news is that most Macs offer Thunderbolt 3 - which combines USB-C adaptor for the best of both worlds. The 13in MacBook Pro offers two Thunderbolt 3 ports, the 15in MacBook Pro offers four Thunderbolt 3 ports, the MacBook Air offers two Thunderbolt 3 ports.
On the desktop side, the 21.5in and 27in iMacs both offers two Thunderbolt 3 ports, three USB 3, and an SDXC card slot, while the 2018 Mac mini offers four Thunderbolt 3 ports, along with HDMI and USB 3.
If you need the old-style USB-A port you'll need to look at Mac desktops as no current Mac laptop offers this port.
In this section we will look at each Mac available now and discuss its merits as a coding machine. If you are trying to decide between MacBook Air and a MacBook Pro, or an iMac and a Mac mini, read on.
There are two sizes of MacBook Pro - 13in and 15in - and both sizes have a Retina display. Prior to July 2019 the Touch Bar was a feature of only the 15in and two of the 13in models, with an older non-Touch Bar MacBook Pro available. That entry-level MacBook Pro has now been updated and has gained the Touch Bar along with better specs.
The Touch Bar tends to be a bit like marmite, with people either loving or hating it. It's probable that the apps you develop with will utilise this handy way of accessing controls, and hopefully it will be a bonus to you.
The 15in model will give you more screen estate, which will be useful if you need more than one window open at once. It also ships with 16GB RAM as standard.
The 13in MacBook Pro is still a good option though, you can get 16GB RAM as a build-to-order option, and it offers you a lot more power for your money than the slightly cheaper MacBook Air.
Apple updated the MacBook Air in October 2018 giving it a bit of a redesign so it's now even slimmer and lighter than before, which could appeal if you will be carting it around. Apple then updated the MacBook Air in July 2019, although the update was just to add True Tone to the display rather than to improve the specs.
The other change in July 2019 was the price, which dropped by £100/$100. Starting at £1,099/$1,099 this is the cheapest Mac laptop you can buy - although not as cheap as it once was. The best thing about the new-style MacBook Air is that it's no longer crippled by its older processor and the lack of Retina display. And now it maxes out at 16GB RAM (rather than the 8GB max it had before).
The 2018/2019 MacBook Air actually has some pretty impressive specs now that make it an appealing machine for development and coding. Perhaps the graphics card lets it down slightly - but you could always attach an eGPU if a faster GPU was a requirement now, or in the future.
If you were thinking of getting a MacBook Air for casual app development we'd recommend it as an option. Mac out the RAM to 16GB and get the 256GB SSD version at least.
If you needed something for more extensive coding then it might not have the uumph though. You could expect faster complie times from the MacBook Pro mentioned above.
There is one particular benefit of the MacBook Air is the battery life - 12 hours, which is more than any other Mac.
It's been discontinued by Apple, but just in case you've found a deal, or one second hand, we'll mention it quickly.
Coding isn’t a particularly demanding task, but you will probably still find the MacBook to be a little underpowered, although more recent models are much more powerful than the earlier Retina MacBook models.
You may find that the MacBook struggles under load. Where the MacBook Pro has fans that will kick in if you are doing something particularly intensive, the MacBook has no fans, so it will slow down in order to avoid overheating.
Like the MacBook Pro, there are two sizes of iMac. The 21.5in and the 27in models. Both have high-res Retina displays. In March 2019 most of Apple's iMacs were updated with newer processors, there are now quad-, 6- and 8-core processor options (with the exception of the entry-level model, which only has a dual-core and hasn't been updated since 2017 - and we would advise against buying because it has a mechanical hard drive). The biggest difference is really the price.
Take the 3.0GHz 6-core 21.5in iMac compared to the 3.0GHz 6-core 27in iMac - is a 27in screen worth an extra £300/$300 to you?
If you think 21.5in will be enough (and you can always plug in an extra screen if you need it) the £1,249/$1,299 model will probably be ok, but you would be advised to upgrade the RAM to 16GB and swap the hard drive for an SSD. With those upgrades you are looking at spending £1,519/$1,599.
Like the MacBook Air the Mac mini hadn't been updated in a number of years - until October 2018 when both machines got some much needed attention.
Now the Mac mini is an attractive package and we expect many developers will be wondering whether to get one. It's not as cheap as it was, but it's still the cheapest Mac going (although you will have to factor in the cost of a monitor and keyboard and mouse - but you probably have them anyway).
Actually, thanks to the 2018 update to the Mac mini you can now get an impressive and powerful machine for a fraction of the price of the iMac.
For example, for £1,099 you can get a Mac mini with 3GHz 6-core i5, 256GB SSD, 8GB RAM (update that to 16GB for another £180). As we said earlier the graphics aren't quite as good as those on the iMac, which has discrete graphics, but you can always plug in an eGPU later on.
Mac Pro and iMac Pro
Frankly the iMac Pro and the Mac Pro would be overkill for the majority of coders so we won’t discuss them here.
You probably only need one if the software you are developing needs to run on an iMac Pro.
You might have been hoping you could keep costs down by finding a low cost PC on which to program your app. While some developers have found ways of running macOS on a PC, be it via a VM, or because they have built a Hackintosh, we wouldn’t recommend going to such lengths, but you can read about how to install macOS on a PC here.
Two main reasons: first, Apple doesn’t allow macOS to run on anything other than a Mac, so essentially, if you run macOS on something else you are breaking a legal agreement with Apple. You might think you could get away with that, but remember you are going to be asking them to approve your app, don’t give them any reason to say no!
Our second reason not to attempt to run Xcode on something other than a Mac is you are likely to experience issues and you will never know if it is your code or the dodgy installation you are using. If your app matters that much to you then use the right equipment.
There is one other option, you could code on an iPad, but we think you’d probably end up regretting it.
If you think that iPad coding is for you, our colleagues on Techworld have this article: Best iPad apps for programming.
What’s the best value Mac for coding
We used to think the best value Mac for developers wass the 13in MacBook Pro which costs £1,249/$1,299, although we’d recommend adding 16GB RAM at point of sale for £1,429/$1,499 if you can afford it.
However, since the launch of the Mac mini and MacBook Air in 2018 those machines are certainly worthy contenders, and since both of those options are cheaper than the MacBook Pro, then we'd have to recommend them over it if your decision boils down to value for money.
And given the choice between the two, we'd probably go with the Air for portability.
Sometime as much as you would love to own the best and most powerful Mac, the budget just won’t stretch above £1,000/$1,000. Maybe that is more than you are willing (or able) to pay.
Luckily there are a few other options:
If you are a student, check out Apple’s education store to get a discount on your new Mac.
Apple sells Macs that have been returned to it. These could be ex-display Macs from Apple Stores, or they might be Macs that were returned due to a fault that has since been fixed, or it might be old stock that the company is selling after a new model has launched. You can pick up some good deals here.
If you really can’t afford an adequately specced Mac for programming your app on you could rent one. Have a look at Hardsoft Computers or Rent It to see what’s for offer, or take a look at macincloud and get access to Mac servers from $20 a month.
Discounts and deals
We also log the best Mac deals throughout the year, so we recommend these articles:
Best Mac for developers
So in conclusion, the 13in MacBook Air would be a good option for anyone looking for a Mac to build an iOS or Mac app on. We’d recommend the 256GB version, adding 16GB RAM at point of sale which would bring the price to £1,579. Buy a MacBook Pro from Apple here.
Alternatively the MacBook Pro is a great choice for coding - especially if you are looking for something a bit more powerful. The 13in MacBook Pro with Touch Bar comes with 256GB SSD, add the 16GB RAM at point of sale to bring the price to £1,929. (You could of course choose an older MacBook PRo without Touch Bar but just be aware that those models are older).
However, since coders will benefit from a big screen, we recommend that you also purchase a screen to plug into your MacBook Pro when you are at a desk. This will increase the cost by a few hundred more, so you could be looking at over £2,000/$2,000, in which case you might as well buy a 3.0GHz 6-core 27in iMac: adding 16GB RAM will bring its price to £1,929/$1,999. Buy an iMac from Apple here.