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:

  1. 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 mamber of the Developer Program if you want to sell your apps on the App Store.
  2. 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.
  3. 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 10.1 at the time of writing. That includes Swift 4.2.1 and SDKs for the latest versions of iOS, watchOS, tvOS, and macOS. Note that Xcode requires macOS High Sierra 10.13.6 to run, so you also need…
  4. Xcode 10 requires a Mac that can run macOS Sierra 10.13.6 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:

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 High Sierra 10.13.6 in order to use the latest version of Xcode, and here are the computers that fit the bill:

  • MacBook (Late 2009 or newer)
  • MacBook Pro (Mid 2010 or newer)
  • MacBook Air (Late 2010 or newer)
  • Mac mini (Mid 2010 or newer)
  • iMac (Late 2009 or newer)
  • Mac Pro (Mid 2010 or newer)
  • iMac Pro

Of course you may be keen to use Mojave, in which case, here's a list of appropriate Macs.

  • iMac models from 2012 or later
  • iMac Pro (from 2017)
  • MacBook models from 2015 or later
  • MacBook Pro models from 2012 or later
  • MacBook Air models from 2012 or later
  • Mac mini models from 2012 or later
  • Mac Pro models from late 2013 (plus mid-2010 and mid-2012 models with recommended Metal-capable GPU)

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:

  1. Will this Mac provide the best coding environment?
  2. Is this Mac future proof?
  3. 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.

Screen

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. 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 - but older models of the MacBook Air do not have a Retina display.

As for a 12in MacBook, it’s a good 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 - and in the case of the Air, acutually costs less. 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.

Specs

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.

RAM

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 ship with 4GB RAM. In fact, 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, although surprisingly the 2018 MacBook Mini RAM be updated later on - but only by an Apple registered professional. 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.

CPU

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 or earlier. 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 a 6-core, quad-core, Core i7, or will a dual core, i5 suffice, or even an i3 like you will find in the 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) 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.

Storage

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

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 - 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 MacBook has only one USB C port which has to be used for charging too.

If you want to plug your MacBook 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. The MacBook only offers one USB-C without Thunderbolt support.

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.

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 and a Mac mini, or a MacBook, read on.

MacBook Pro

There are two sizes of MacBook Pro - 13in and 15in - and both sizes have a Retina display. The 15in comes with a Touch Bar whether you like it or not while there is a cheaper version of the 13in MacBook Pro that doesn't have the Touch Bar.

While you might not see the benefit of opting for the Touch Bar, be aware that Apple has restricted the fastest processors to the Touch Bar models, so if you're expecting to do processor-intensive work you might have to suck it up and splash the cash for the more expensive upgrade.

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. Apple also used to sell an older, non-Touch Bar 15in MacBook Pro until 2018, but that model is no longer available.

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 similarly priced MacBook, and the slightly cheaper MacBook Air.

Buy the MacBook Pro from Apple

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. It's also still the cheapest Mac laptop you can buy - although not as cheap as it was. The best thing about the new 2018 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 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.

Buy the MacBook Air from Apple

MacBook, Air 2018

MacBook

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.

If you were to consider buying a MacBook we recommend updating the RAM at point of sale to 16GB.

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.

Buy the MacBook from Apple

iMac

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.

Buy the iMac from Apple

Mac mini

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. The iMac processors are a generation older right now (we expect Apple to update iMacs in the first half of 2019 though).

Buy the Mac mini from Apple

Mac mini 2018

Mac Pro and iMac Pro

Frankly the iMac Pro and even 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.

Buy the Mac Pro or iMac Pro from Apple

Hackintosh

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.

iPad

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 £1000/$1000. Maybe that is more than you are willing (or able) to pay.

Luckily there are a few other options:

Student discount

If you are a student check out Apple’s education store to get a discount on your new Mac.

Refurbished store

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.

Rent

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.

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.