Do you have a great idea for an iOS app or a Mac app? Looking for the right Mac 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 why a Mac is a great choice for developers. We also reveal the minimum Mac you need for coding - including whether a MacBook Air will be sufficient.
Whether you are a seasoned app developer looking to update your Mac to something more substantial, a developer looking to replace the Mac mini with A12Z chips recalled by Apple, 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.
You may be wondering if the M1 Macs are any good for development. We'll take a look at that question below.
If you want to skip the buying advice, you can jump straight to our recommendation of the best Mac for developers.
Why you need a Mac for iOS & 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 £80) 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 12.4 the time of writing. That includes Xcode IDE, Swift, C/C++/Objective-C compilers, Instruments analysis tool, simulators, and SDKs for the latest versions of iOS, iPadOS, watchOS, tvOS, and macOS. Note that Xcode requires Catalina 10.15.4 to run on an Intel-based Mac, or macOS Big Sur 11.0 to run on an Apple silicon Mac, so you also need…
- A Mac that can run Catalina 10.15.4 or later, or a M1 Mac (see below).
One key reason to buy a Mac for development is the simple fact that it's difficult to run macOS on anything other than a Mac. You could build a hackintosch, and some people do, but there are lots of reasons why we wouldn't recommend that as a solution.
Find out Why programmers think macOS is the best operating system here. We also have a guide to coding and programming on a Mac
In addition to all the above, one of the key benefits to developing on a Mac has always been that 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.
This was a benefit in the past, but unfortunately it is no longer the case following the introduction of Apple's first processor - the M1 Chip. The M1 is Apple's first ARM-based processor and you'll find it in the MacBook Air, and some MacBook Pro and Mac mini models in November 2020.
Currently it is not possible to run Windows on these Macs. So if you need to test for any other platform using these Macs could prove a problem. There is some hope that an ARM-version of Windows will eventually run on M1 Macs, and Parallels and VMware are committed to delivering virtual machines on the M1 Macs, but for now if you need to run Windows on your Mac then the M1 Macs aren't for you and you would be better off sticking with an Intel-powered Mac. For more information read: Will Windows run on Apple Silicon M1 Macs?
Nor is it possible to run older versions of macOS on M1 Macs. These new Macs come with macOS Big Sur, which is the only version of macOS written for the ARM-based M1 Chip. On a Mac with an Intel processor it is possible to run more than one Mac operating system on your Mac by installing the alternatives in a separate volume. So you could, for example, run macOS Catalina in one volume, and macOS Big Sur in another, or run the beta on a separate volume. If you need to run an older version of macOS the M1 Mac will not suit you.
Another potential issue is that software you rely on might not run natively on M1 Macs. This might not matter, as many apps will run adequately via Rosetta 2, but if your doesn't then you might face difficulties. Luckily many essential apps do already run natively on the M1 Chip, including Python and Chrome. We run through which apps work on M1 Macs in a separate article.
Another common criticism of the M1 Macs is that they max out at 16GB RAM. Some developers may want the option of 32GB RAM and right now the M1 Mac doesn't offer this. It should be noted though that RAM in the M1 Macs is very different to RAM in the Intel-based Macs, so it may well be that 8GB or 16GB would be more than sufficient.
However, all those disadvantages aside, the M1 Macs do offer some excellent positives such as incredibly long battery life of up to 20 hours; cool, quiet operation; and benchmark beating specs. If you don't need to run other operating systems and you don't need to use software that isn't yet native to the M1 chip the M1 Macs will not hold you back.
For more information about buying an M1 Mac read: Should I buy an M1 Mac?
How to choose the best Mac for app development
We have already established that you will need a Mac that can run Catalina 10.15.4 or later in order to use the latest version of Xcode, and here are the computers that can run Catalina:
- MacBook (Early 2015 or newer)
- MacBook Pro (Mid 2012 or newer)
- MacBook Air (Mid 2012 or newer)
- Mac mini (Late 2012 or newer)
- iMac (Late 2012 or newer)
- Mac Pro (Late 2013 or newer)
- iMac Pro
Alternatively you can use an M1 Mac running Big Sur, but keep our advice about whether to use an M1 Mac for development work in mind.
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 money.
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). Note: If you buy a M1 MacBook Air or MacBook Pro you will officially only be able to plug on one other display, unless you follow our instructions here: How to connect two or more external displays to Apple Silicon M1 Macs
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 16in MacBook Pro. But would a 13in MacBook Pro, or an even cheaper MacBook Air suffice?
Both MacBook Pro models and the MacBook Air (post 2018) offer high resolution Retina displays. 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.
True Tone is also a feature. True Tone adjusts the brightness and colour depending on the ambient lighting. This could be a benefit if you tend to program in the dark as it adjusts the colours to the lighting conditions and should help you avoid eye-strain. If that appeals then look for a 2019 or 2020 MacBook Air or any MacBook Pro since 2018.
There is one difference between the MacBook Air and MacBook Pro screen. The MacBook Air screen is slightly dimmer than the MacBook Pro - 300 nits compared to 400 nits.
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. Pre-M1 the Air and the 13in Pro could support two extra 4K displays, or one 5K display, while the 16in MacBook Pro can even support Apple's new XDR display, but you won't need that. The M1 Macs, as we mentioned above do not support as many screens as their Intel predecessors did.
Speaking of factoring in the cost for a separate screen, the Mac mini lacks a screen altogether, but the 2018 model supports a 5K display, or two 4K displays, while the M1 Mac mini offers support for one display up to 6K and one display up to 4K. 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 don't 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, your 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 - they wouldn't 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.
RAM is a bit of a puzzle right now with the M1 Macs maxing out at 16GB as a build-to-order option, and shipping with 8GB as standard. This compares to the two remaining Intel-powered 13in MacBook Pro introduced in 2020, which ship with 16GB RAM as standard and have the option to upgrade to 32GB RAM. The 16in MacBook Pro also offers 16GB as standard and the option to upgrade at point of purchase to 64GB RAM - but we don't think you will need that.
The situation with RAM is complicated because the RAM in the new M1 Macs - it works in an entirely different way to the older Intel models. Apple describes it as Unified Memory Architecture - essentially the RAM is integrated on the M1 Chip along with the GPUs and CPUs, and the memory is shared by both. As a result there are some impressive speed improvements and the RAM can alwas be allocated where it is needed the most. This could mean that users need less RAM than they did in the past. One disadvantage is that the RAM can never be updated though - because it's not just soldered into place it is built into the M1 Chip.
Not that it's an easy job to update the RAM in any MacBook. 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 which launched in December 2019 also has upgradable RAM, but at over £5,499/$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.
The first thing to consider is the type of processor. This will involve a choice between Intel or Apple Silicon. Apple has stated to introduce Silicon processors in its Macs, with the first such models being the M1 MacBook Air, M1 MacBook Pro and the M1 Mac mini introduced in November 2020.As we have already discussed there are a few pros and cons to consider when choosing between the Intel and M1 Macs, but in general when it comes to performance the M1 Macs are proving impressive.
As for the other Macs, there are a variety of Intel processor options to be found. Some Intel-powered Macs were updated in 2020, others haven't been updated since 2019, some have only had minor tweeks since 2018, and there are a few that haven't been updated since 2017 (such as the entry-level iMac). Beware that 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 pay attention to is the number of cores. The M1 Macs all offer 8-core CPUs. Among the Intel models you have the choice of Macs with 10-core, 8-core, 6-core, quad-core, or even a dual core. With the Intel models there also the choice of Core i9, Core i7, i5, or even an i3. And there are Xeon workstation options such as those offered by the iMac Pro or Mac Pro.
We can rule out 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, 6-core, or 8-core processor is more complex now that the M1 Mac are here. You might be fine with a dual-core i5 processor for coding, but if you have money to spare then it won't hurt to get a more powerful Mac - and the leap to 8-core in the new M1 Macs, which essentially replace dual-core or quad-core models for the same money, is vast. 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. You will find that Xcode builds take a long time if your Mac has a hard drive. Until recently Apple was still selling Macs that used hard drives or Fusion drives (which combined a hard drive and a SSD), but with the launch of the new iMacs in August 2020 that changed, which is a very good thing. - However, it does rule out some older, secondhand models. If you are worried that you won't have enough space you can always get an external storage device.
We would recommend that you don't choose a Mac with less than 256GB SSD. This should be easy enough as during 2020 Apple increased storage capacity in its Macs, so where a machine used to offer 128GB it now offers 256GB and 512GB models have been upgraded to 1TB with an option to increase to 8TB. We mention this mainly to warn you that older models might look like a good deal but they will potentially have half the storage compared to the current options.
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 M1 MacBook Pro can't be beat. It offers 20 hours of battery life. The M1 MacBook Air isn't far behind with 18 hours. If battery life is the most important thing to you then you will want to consider these models.
The older MacBook Air models maxed out at 12 hours versus 10 hours of battery life on the 13in MacBook Pro and 11hrs on the 16in MacBook Pro.
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. Some Mac laptops ship with two USB C/Thunderbolt ports, one of which has to be used for charging.
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.
There are som differences in terms of the ports offered. for example, the M1 MacBook Pro and Air both offer two Thunderbolt/USB 4 ports (the one port works with both standards) while the 16in MacBook Pro offers four Thunderbolt 3 (USB‑C) ports, as does the 2.0GHz 13in MacBook Pro. If you need the old-style USB-A port you'll need to look at Mac desktops or get an adaptor as no current Mac laptop offers this port.
On the desktop side, the M1 Mac mini offers two Thunderbolt/USB 4 ports, like the other M1 Macs, but it adds legacy USB-A ports, an HDMI port and Gigabit Ethernet. The 21.5in and 27in iMacs both offers two Thunderbolt 3 ports, three USB 3, and an SDXC card slot.
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.
13in MacBook Pro
The 13in MacBook Pro is still a good option though. We like the 2.0GHz model that launched in May 2020 and ships with 16GB RAM as standard as we think that will be a bonus for developers. However, the M1 MacBook Pro is also a great option - as long as you won't be affected by the issues we discuss earlier.
Below you can see the best offer right now on the 2020 M1 MacBook Pro (RRP: £1,299)
At £999 the entry-level MacBook Air is the cheapest Mac laptop you can buy.
Since 2018 the MacBook Air has had some pretty impressive specs that make it an appealing machine for development and coding. As of November 2020 the M1 MacBook Air is beating some much more expensive Macs when it comes to benchmark scores, so this is a much more powerful machine than you might suspect.
If you were thinking of getting a MacBook Air for casual app development we'd recommend the MacBook Air as an option. Upgrade the RAM to 16GB though.
If you needed something for more extensive coding then it might not have the uumph though. You could expect faster compile times from the MacBook Pro mentioned above. One of the biggest differences between the MacBook Pro and M1 MacBook Air is that the Air lacks a fan, which could mean that it slows down in order to avoid overheating during more intensive activity, so keep that in mind.
Below you can see the best offer right now on the 2020 M1 MacBook Air (RRP: £999)
The Mac mini gained an M1 Chip in November 2020, although Apple does still sell a model from 2018.
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).
With the Mac mini you can get an impressive and powerful machine for a fraction of the price of the iMac. For example, for £699 you can get a Mac mini with 8-core CPU, 8-core, 256GB SSD, 8GB RAM (update that to 16GB for another £200). The graphics are integrated, so they may not be quite as good as those on the iMac, which has discrete graphics, but they are proving to be very impressive.
Below you can see the best offer right now on the 2020 M1 Mac mini (RRP: £699)
Like the MacBook Pro, there are two sizes of iMac. The 21.5in and the 27in models. Both have high-res Retina displays. In August 2020 the 27in iMac models were updated with newer processors, there are now 6- and 8-core 10th-gen processor options, the 21.5in iMac didn't get new processors, these are still 8th gen (and in the case of the entry-level model 7th gen). However the 21.5in iMac did, at least, get its standard hard drives swapped out for SSDs (at last).
This does mean that the 21.5in iMac hasn't really been updated for nearly two years though, so it's harder to recommend it. However, the 27in model costs considerably more, starting at £1,799/$1,799, so it's really going to depend on your budget. You do get a lot for your money though - and iMacs are generally better value in terms of bang for buck than Mac laptops.
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.
Because Apple hasn't updated the 21.5in iMac in so long we think that an update will arrive in the first half of 2021. When it does not only will it (probably) have a Silicon processor, it may also have a completely new look. Read about the new iMac here.
Below you can see the best offer right now on the 2019 3.6GHz iMac (RRP: £1,299)
16in MacBook Pro
There are two sizes of MacBook Pro - 13in and 16in - and both sizes have a Retina display. The 16in model arrived in November 2019 and replaced the 15in model, but other than screen size the specs didn't really change. The reason we don't recommend the 16in right now is that these are old specs for such an expensive Mac.
The 16in MacBook Pro, like the 13in MacBook Pro offers the Touch Bar, which 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 16in model will give you more screen estate than the other Mac laptops, which will be useful if you need more than one window open at once. Read our 16in MacBook Pro review.
Below you can see the best offer right now on the 2019 16in MacBook Pro (RRP: £2,399)
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.
What's the best value Mac for coding?
The Mac mini, MacBook Air and MacBook Pro with M1 Chip are all contenders, but as we mentioned above, there are a number of reasons why it may still be too early to switch to an M1 Mac for development - if you need a Mac that will have you covered for Windows, Android and older MacOS development anyway.
But if you need to develop for the M1 Mac, and future Macs with Apple Silicon, as well as iOS, then an M1 Mac will be a great purchase.
If you can wait though we'd recommend waiting until Apple launches a new iMac or 16in MacBook Pro with the M1 - or whatever the successor to the M1 is. Here you are likely to get options for more than 16GB RAM and other improvements that may help future proof your Mac.
If you can't wait and you aren't ready to jump over to M1 then we'd recommend the 2.0GHz 13in MacBook Pro as a good Intel-based development Mac. The 27in iMac from 2020 could also be worth consideration.
The 21.5in iMac and the 16in MacBook Pro haven't seen a significant update to their specs since 2019, so we'd hold off updating to one of them for now - unless you really don't want to say good bye to Intel just yet.
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 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:
Want to know even more about programming on a Mac? Read: