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, 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 Mac is any good for developers or if the M1 Pro, Max or M1 Ultra would be better. You may even be wondering if you should choose a Mac with an Intel processor. We’ll take a look at those questions below.
To develop an iOS or Mac app you will need the following:
Membership of the Apple Developer Program. It costs $99 annually (about £80 in the UK) 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 13.3,1 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 macOS 12 Monterey or later, so you also need…
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.
Can I use Flutter to develop iOS and macOS apps without a Mac?
Flutter is an open-source US development kit from Google that makes it easy to create an app that can be used across a variety of platforms. It means that developers only need to code once and then the app can be converted to iOS, Android and others. Understandably there are many wondering if this process means developers can by pass the necessity to use a Mac.
In a word, no, although you could use Flutter to create an app for multiple platforms on a Linux machine or a PC, you will still need to use a Mac to test the application and submit it to Apple for distribution on the App Store.
Flutter can be installed on macOS alongside Xcode. If you have an M1 Mac you might be concerned that Flutter isn’t yet M1 optimised, but it can be used via Rosetta. Download Flutter here.
Is the M1, Pro, Max or Ultra good for developers?
Apple introduced the first of its M1 chips back in November 2020, these new chips proved truly groundbreaking for the industry and they were only to be found in the consumer-focused Macs. By November 2021 Apple had introduced two new variants of the M1: the M1 Pro and M1 Max. Found in the 14in and 16in MacBook Pro, these new chips go even further than the M1 did, with more CPU cores, more GPU cores and more RAM.
Then in March 2022 Apple introduced the M1 Ultra in the Mac Studio. The M1 Ultra combines two M1 Max chips, so you get even more cores and it can support as much as 128GB RAM. We think that the M1 Max Mac Studio is worth considering if you were thinking of buying a 14-inch or 16-inch MacBook Pro, because you can get a lot more for your money – as long as you don’t mind being tied to a desk of course.
There a lot of positive to be said about these chips. The only real disadvantage is where the software you use may not be fully supported. In general this shouldn’t mean that you can’t use the software you rely on on these new Macs – Apple includes Rosetta which translates the old X86 code so it can run on ARM – but there may be some lag if you are having to rely on that. A lot of software developers have updated their software to run on the M1 over the past year, so chances are the software you use is supported, or the wait won’t be long. You can check the status here: Apps Ready for M1. We run through which apps work on M1 Macs in a separate article. Luckily many essential apps do already run natively on the M1 Chip, including Python, Unity and Chrome.
One piece of software that will never run on an M1-based Mac is the X86 version of Windows. This may be an issue to those developers who want to be able to run various operating systems on their Mac. 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 quite so simple as it once was following the introduction of Apple’s M1 chip.
Running Windows on M1 Macs isn’t straightforward as it was for older Macs. The only version of windows that will run on the ARM-based M1 is the ARM version of Windows, but you will have to register as a Windows Insider to download the Windows 10 on ARM Insider Preview. If you can get hold of that you can use Parallels Desktop 16 to run it on your Mac. But there are hoops to jump through if you want to run Windows on an M1 Mac that may put you off the move to M1 or beyond. For more information read: Will Windows run on Apple M1 Macs?
If you need to test for any other platform, using these Macs could prove a problem. You can theoretically run ARM-version of Windows on M1 Macs (via virtualisation solutions like Parallels Desktop), but to do so you need a preview version of Windows for Arm, which you can only get from the Windows Insider website. If you need to run any other version of Windows on your Mac then the M1 Macs aren’t for you and you would be better off sticking with an Intel-powered Mac.
Nor is it possible to
run older versions of macOS on M1 Macs. The first M1 Macs shipped with macOS Big Sur, which was the first 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.
One criticism of the M1 Macs was that they max out at 16GB RAM. However, this is no longer a limitation now that Apple has introduced the M1 Pro and M1 Max chips in the 14in and 16in MacBook Pro. These chips support 32GB or 64GB unified memory (Apple’s variety of RAM). Plus, as we said above, the M1 Ultra can support up to 128GB unified memory.
There is a lot of debate as to whether you, as a developer, will need 32GB or more RAM. 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 – although we would always recommend that you buy the most amount of RAM you can afford for the sake of future-proofing your Mac (while considering that any money you save now you could spend on a new Mac a few years down the road that will be considerably better than anything Apple makes right now). If you feel you need 32GB RAM or more you now have the choice – unfortunately the price of the additional RAM (which you won’t be able to update later) is high.
Another criticism is the fact that the M1 Macs (the MacBook Air, 13in MacBook Pro) only support one external display (although there are workarounds, read: How to connect two or more external displays to M1 Macs). If you need more than one display (in addition to your built-in display) then you may be wise to choose the 14in or 16in MacBook Pro, both of which can support three external displays. Alternatively the M1 Mac mini can support a second display via HDMI, for two displays total. While the Mac Studio can support up to five displays.
All those disadvantages aside, the M1, M1 Pro and M1 Max Macs do offer some excellent positives such as incredibly long battery life; 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.
We have already established that you will need a Mac that can run macOS 12 Monterey or later in order to use the latest version of Xcode, and here are the Mac that can run Monterey:
MacBook (2016 or newer)
MacBook Pro (2015 or newer)
MacBook Air (2015 or newer)
Mac mini (late 2014 or newer)
iMac (late 2015 or newer)
iMac Pro (all models)
Mac Pro (late 2013 or newer)
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 had the biggest screen on any Mac and its Retina 5K display was one of the best quality 5K displays you could get. In fact, if you want a 5K display it was actually better value to buy a 27in iMac than a separate 5K display. However, Apple is no longer selling the 27in iMac, so it’s not an option unless you buy one second-hand, which we don’t recommend.
But do developers really need a Mac with a large built-in screen? Not really. If you want to use a big screen there is nothing to stop you plugging one two or even up to five, external displays into your Mac. You may even want to consider Apple’s 27in Studio Display introduced in March 2022. (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 16in MacBook Pro. But would a 14in MacBook Pro, or an even cheaper 13in MacBook Pro or MacBook Air suffice?
All modern Macs feature high resolution Retina displays (well aside from the Mac mini, Mac Studio and Mac Pro which don’t have 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 another screen feature that only appears on certain Macs. 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 later MacBook Air, any MacBook Pro since 2018, a 27in iMac since late 2020, or the 24in iMac.
Some Mac screens are dimmer than others too. For example, the M1 MacBook Air has a slightly dimmer screen than the 13in MacBook Pro screen. The MacBook Air screen is slightly dimmer than the MacBook Pro – 400 nits compared to 500 nits. The 14in and 16in MacBook Pro are able to go even brighter at up to 1,000 nits sustained (full-screen) brightness, 1,600 nits peak brightness – however, you should note that they will generally only go to 500 nits, the extra brightness is only utilised by certain apps and for HDR content.
One feature that only the 14in and 16in MacBook Pro (with M1 Pro or M1 Max) offer right now is Pro Motion (which is also a feature of the 2021 iPad Pro and iPhone 13 Pro and Pro Max). Pro Motion offers refresh rates up to 120Hz. Refresh rates are adapted according to what’s on the screen at the time. There are certainly applications that will benefit from this more than others. It’s questionable how much of a benefit it will be to developers.
Whichever 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.
Speaking of factoring in the cost for a separate screen, you need to consider how many screens your Mac will support. For example, the M1 MacBook Air and Pro only support one extra display (unless you follow our instructions here: How to connect two or more external displays to M1 Macs.) The the M1 Mac mini offers support for one display up to 6K and one display up to 4K (while the 2018 model supported a 5K display, or two 4K displays). The M1 Pro 14in and 16in MacBook Pro models support either two 6K displays as well as the build-in display, and the M1 Max version supports three 6K displays. There is also support for a 4K display via the HDMI port on these models. The Mac Studio can support up to five 6K displays.
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.
How much RAM you need depends on the kind of development work you are doing. The total RAM needed will depend on the requirements of the applications you need and your development tools, you’ll also need to consider the RAM requirements if you want to run multiple containers or virtual machines on your Mac. We think you will need 16GB RAM at the minimum. If you are buying a new Mac then we’d recommend that you get as much RAM as you can afford as a build-to-order option to future proof your purchase.
The M1 Macs max out at 16GB as a build-to-order option (shipping with 8GB as standard). The M1 Pro that comes with the 14in and 16in MacBook Pro ships with 16GB as standard, but can support 32GB, and the M1 Max can support 64GB RAM. The Mac Studio with its M1 Ultra chip can go all the way to 128GB RAM.
While we refer to this as RAM it’s more accurate to call it unified memory, which is quite different to the memory in an Intel machine because it’s built on to the chip where both the CPU and GPU reside, so it’s available to both at all times and data is always available without having to be moved around. This makes everything faster and means that 8GB of traditional RAM isn’t really comparable to 8GB of Apple’s unified memory.
However, one big disadvantage of unified memory is that it’s not possible to update it, so you should get as much memory as you can afford at the point of purchase. Nor was it easy to upgrade memory in older Macs – but at least it was possible with the 27in iMac, 2018 Mac mini, 21.5in iMac, iMac Pro, and Mac Pro. 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. For more information about the different generations of Intel processors and how they compare to the M1 series read:
Which Mac processor.
Looking first at the M1 series, Apple offers the M1, the M1 Pro and the M1 Max (
so far), but within that line up are a variety of CPU cores and different types of CPU cores.
As you can see, when it comes to the processor – the CPU, rather than the GPU – there is no difference between the M1 Pro and M1 Max (excusing the entry-level Pro). Nor is there any real difference between the performance cores and efficiency cores across the different chips, there are just more of them. Each performance core runs at 3.2GHz and each efficienty core runs as 2.06GHz. Performance cores are for high performance activities, while the efficiency cores are kind of for the less processor intensive background work (like syncing backups).
Among the Intel Mac models you have the choice of Macs with 10-core, 8-core, 6-core, quad-core, or even a dual core. But Apple’s not seling many Macs with Intel processor now, and very soon it won’t have any. Of course there will be Intel Macs available from resellers and on the second hand market for years to come, so there will be options to be found if you need/want Intel. However, we would suggest that you are cautious about buying an Intel Mac now with the M1 series delivering so much power and promise for the future. Read
Should I buy a second hand Mac?
The big difference between the various M1 series Macs is the number of GPU cores. There are some questions over how important GPU cores are to developers. Unless you are planning to play games, or use apps that require powerful graphics then your GPUs are mainly going to be used to power your external displays.
You may think you need the MacBook Pro with M1 Max because you want 64GB RAM, but be aware that there will be disadvantages to having to power that many cores that are likely to result in decreased battery life. It’s unlikely that you need that many GPU cores, but if you do a Mac Studio might be a better option.
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 might need to look at your code.
We’d advise against any Mac that has a hard drive – not that you will be able to buy a Mac with a hard drive from Apple, but you might find a second hand one. You will find that Xcode builds take a long time if your Mac has a hard drive. Another one to avoid is the Fusion drive which Apple was selling until a few years ago (Fusion drives combined a hard drive and a SSD). Since August 2020 iMacs have no longer featured Fusion drives, which is a very good thing. 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 16in MacBook Pro can’t be beat. It offers 21 hours of battery life, but the M1 13in MacBook Pro isn’t far behind with 20 hours. The M1 MacBook Air isn’t far behind with 18 hours and the 14in MacBook Pro with 17 hours. These are all impressive numbers that should mean you can get through a day on your Mac laptop without having to plug in.
If battery life is the most important thing to you then you will want to consider these M1 series models becuase they provide hours more battery life than the Intel models did. For example, 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. 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.
Mac laptops were notorious for their lack of ports. In order to keep them small and thin Apple skimped on the ports. Some Mac laptops ship with just two USB C/Thunderbolt ports, one of which has to be used for charging.
But all that changed with the arrival of the 14in and 16in MacBook Pro in 2021. Finally Apple brought much requested ports back to the Mac. These include HDMI (which will allow you to plug in an extra screen), an SDXD card slot (which will be more use to photographers) and the return of MagSafe (Apple’s solution for the issue where people and pets trip over cables and pull Mac laptops to the ground). MagSafe also offers fast charging – but that requires an additional cable in some cases.
The only port that you may miss is ethernet – obviously you can use a USB C adaptor, but it would have been great if Apple had added ethernet to the charging brick, like it did with the 24in iMac.
The M1 13in MacBook Pro and Air have fewer ports than the 14in and 16in models. Both offer two Thunderbolt/USB 4 ports (the one port works with both standards).
The older, Intel, 16in MacBook Pro and 13in MacBook Pro offered four Thunderbolt 3 (USB‑C) ports. If you need the old-style USB-A port you’ll need to look at Mac desktops – such as the Mac mini, iMac or Mac Studio- 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 M1 24in iMac comes in two versions, one with and one without USB 3 (A), the 27in iMacs (now discontinued) offered two Thunderbolt 3 ports, three USB 3, and an SDXC card slot. The Mac Studio offers four Thunderbolt 4 ports, two USB‑A ports, HDMI and 10Gb Ethernet. On the front of the Mac Studio are two USB‑C ports on the Max, or four Thunderbolt ports on the Ultra, and an SDXC card slot.
Which Mac is best for programming?
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, Mac Studio or a Mac mini, read on.
We think that the Mac Studio with M1 Max offers the maximum power at the best price. Sure you will need to plug in a display, but if you already have one that won’t be a big issue, and even if you don’t a decent display doesn’t have to cost a fortune.
The M1 Max version of the Mac Studio means you get up to 64GB RAM, a mass of ports, plus enough GPU and CPU cores to keep everything smooth. At $1,999/£1,999 it light seem a lot of money, but compared to a roughly equivalent 14in MacBook Pro at $3,099/£2,999 it’s a decent saving.
Price comparison from over 24,000 stores worldwide
14in MacBook Pro
If you need more than 16GB RAM, and some developers will then the 14in MacBook Pro with an M1 Pro chip. That will allow you to kit it out with 32GB RAM. You’ll also get those extra processor and graphics cores.
Below you can see the best offer right now on the 14in MacBook Pro M1 Pro 8-Core CPU/14-Core GPU (RRP: £1,899/$1,999)
Price comparison from over 24,000 stores worldwide
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.
Price comparison from over 24,000 stores worldwide
16in MacBook Pro
The 16in MacBook Pro is practically identical to the 14in model, with the same options of M1 Pro or M1 Max chip. The big difference is that it has a bigger screen – useful if you need lots of windows open at once – and better battery life. Those two things may be really important to you. They come at a price though.
If you want 64GB RAM and 32 GPU cores then you aren’t actually limited to the 16in MacBook Pro, the M1 Max is an option for the 14in MacBook Pro, which will save you a couple of hundred dollars/pounds. However, you may be intregued to know that Twitter, Uber, and Shopify have announced that they have given their developers M1 Max machines. The reason they chose to go with the M1 Max is because they found that compilation time, specifically Android build time, was cut in half.
Price comparison from over 24,000 stores worldwide
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.
Price comparison from over 24,000 stores worldwide
Like the MacBook Pro, there are two sizes of iMac. The 24in and the 27in models. Both have high-res Retina displays. The M1 24in iMac arrived in April 2021 with a brand new design. We don’t realy think this is a machine for developers though.
The 27in iMac models were discontinued in 2022, but you may still find them on sale. They had 6- and 8-core 10th-gen Intel processor options. They were good Macs, but we would not recommend buying one now. If it’s an iMac you want you could wait to see if Apple is going to launch a new iMac Pro, or look elsewhere.
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.
How to get a cheap Mac for coding
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 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.
Use a cloud-based VM
You could look to the cloud for a development Mac. For example, AWS offers some Mac mini models powered by the AWS Nitro System. Plus customers can choose from macOS Mojave (10.14), macOS Catalina (10.15), macOS Big Sur (11), and macOS Monterey (12) as Amazon Machine Images (AMIs). https://aws.amazon.com/ec2/instance-types/mac/
Discounts and deals
We also log the best Mac deals throughout the year, so we recommend these articles: