Macbook For Developers
- Apple will likely will release an M-series 16-inch MacBook Pro that will leap ahead of this one in performance. By then most developers will likely have optimized their apps for the ARM.
- The Apple MacBook Pro MF839LL/A is another top laptop for programming. The 2.7 GHz Intel Core i5 processor delivers superior performance, and it offers a turbo speed up to 3.1 GHz. It has a 3MB shared L3 cache and has no trouble computing millions of instructions. It comes with 8GB of DDR3L RAM, which is important for multitasking.
- Whether you build websites, develop apps, or create tools for businesses, Mac is a brilliant tool for developers. Its Unix-based OS, the hardware reliability, and the quality of the display on MacBooks and iMacs are just a few reasons for the developers’ loyalty. List of 10 Best Mac Developer Tools.
- 1 day ago Apple today seeded the first betas of new iOS and iPadOS 14.6 updates to developers for testing purposes, with the new software available just ahead of when Apple plans to release iOS 14.5.
The fast, easy way to sign in to apps and websites. Sign in with Apple makes it easy for users to sign in to your apps and websites using their Apple ID. Instead of filling out forms, verifying email addresses, and choosing new passwords, they can use Sign in with Apple to set up an account and start using your app right away.
I have to set up a MacBook Pro fairly often - when starting a new job and when buying a new personal computer. I created this article back in 2015 when I got my first Mac and have been updating it ever since with whatever I need as my job evolves. I'm primarily a full-stack web developer, so most of my needs will revolve around JavaScript/Node.js.
Getting Started
The setup assistant will launch once you turn the computer on. Enter your language, time zone, Apple ID, and so on. The first thing you should do is update macOS to get the latest security updates and patches.
Homebrew
Install the Homebrew package manager. This will allow you to install almost any app from the command line.
Macbook Setup For Developers
Make sure everything is up to date.
Install Apps
Here are some the programs I always install.
Don't install Node.js through Homebrew. Use nvm (below).
Program | Purpose |
---|---|
Visual Studio Code | text editor |
Google Chrome | web browser |
Firefox | web browser |
Rectangle | window resizing |
iTerm2 | terminal |
Docker | development |
VLC Media Player | media player |
Slack | communication |
Spotify | music |
Postgres | database |
Postico | database UI |
Postman | API tool |
Shell
Catalina comes with zsh as the default shell. Install Oh My Zsh for sensible defaults.
Node.js
Use Node Version Manager (nvm) to install Node.js. This allows you to easily switch between Node versions, which is essential.
Install
Install the latest version.
Restart terminal and run the final command.
Confirm that you are using the latest version of Node and npm.
Update
For later, here's how to update nvm.
Change version
Here's how to switch to another version and use it.
And to set the default:
Git
The first thing you should do with Git is set your global configuration.
Input your config and create some aliases.
With the above aliases, I can run git s
instead of git status
, for example. The less I have to type, the happier I am.
SSH
Simplify the process of SSHing into other boxes. Create an SSH config file.
Add the following contents, changing the variables for any hosts that you connect to. Using the below will be the same as running ssh -i ~/.ssh/key.pem user@example.com
.
Now just run the alias to connect.
Generate SSH key
You can generate an SSH key to distribute.
Add key.
Settings
I don't like a lot of the Apple defaults so here are the things I always change.
To get the Home folder in the finder, press CMD + SHIFT + H
and drag the home folder to the sidebar.
General
- Set Dark mode
- Make Google Chrome default browser
Dock
- Automatically hide and show Dock
- Show indicators for open applications
Keyboard
- Key Repeat -> Fast
- Delay Until Repeat -> Short
- Disable 'Correct spelling automatically'
- Disable 'Capitalize words automatically'
- Disable 'Add period with double-space'
- Disable 'Use smart quotes and dashes'
Security and Privacy
- Allow apps downloaded from App Store and identified developers
- Turn FileVault On (makes sure SSD is securely encrypted)
- Turn Firewall On (extra security measure)
Sharing
- Change computer name
- Make sure all file sharing is disabled
Users & Groups
- Add 'Rectangle' to Login items
Defaults
A few more commands to change some defaults.
Application Settings
Chrome
- Turn off 'Warn before quitting'
- Install uBlock Origin
- Install React DevTools
- Install Redux DevTools
- Install JSONView
- Install DevTools Theme - New Moon
Settings
- Set theme to 'Dark'
- Go to
chrome://flags
and set Developer Tools Experiments to 'Enabled' - Go to Experiments and select 'Allow custom UI themes'
Visual Studio Code
- Press
CMD + SHIFT + P
and click 'Install code command in PATH'. - Install Prettier
- Install New Moon Theme
- Install GitLens
- Install Highlight Matching Tag
- Install ESLint
- Install Prettier
Keyboard Shortcuts
- Copy Line Down -
CMD + SHIFT + E
- Delete Line -
CMD + SHIFT + D
- Reload Window - Remove Development Mode from When
- Format Document -
CMD + SHIFT + L
- Copy Line Down -
Rectangle
- Full Screen:
CMD + SHIFT + '
(prevents messing with other commands) - Left Half:
CMD + OPTION + LEFT
- Right Half:
CMD + OPTION + RIGHT
iTerm2
- Set tab to open in same location
Conclusion
That sums it up for my current preferences on setting up a MacBook Pro. I hope it helped speed up your process or gave you ideas for the next time you're setting one up.
How fast does your MacBook need to be to comfortably code iOS apps with Xcode? Is a MacBook Pro from 2-3 years ago good enough to learn Swift programming? Let’s find out!
Here’s what we’ll get into:
- The minimum/recommended system requirements for Xcode 11
- Why you need – or don’t need – a fancy $3.000 MacBook Pro
- Which second-hand Macs can run Xcode OK, and how you can find out
I’ve answered a lot of “Is my MacBook good enough for iOS development and/or Xcode?”-type questions on Quora. A few of the most popular models include:
- The 3rd- and 4th-gen MacBook Pro, with 2.4+ GHz Intel Core i5, i7, i9 CPUs
- The 2nd-gen MacBook Air, with the 1.4+ GHz Intel Core i5 CPUs
- The 4th-generation iMac, with the 2.7+ GHz Intel Core i5 and i7 CPUs
These models aren’t the latest, that’s for sure. Are they good enough to code iOS apps? And what about learning how to code? We’ll find out in this tutorial.
My Almost-Unbreakable 2013 MacBook Air
Which Macbook Pro For Developers
Since 2009 I’ve coded more than 50 apps for iOS, Android and the mobile web. Most of those apps, including all apps I’ve created between 2013 and 2018, were built on a 13″ MacBook Air with 8 GB of RAM and a 1.3 GHz Intel i5 CPU.
My first MacBook was the gorgeous, then-new MacBook White unibody (2009), which I traded in for a faster but heavier MacBook Pro (2011), which I traded in for that nimble workhorse, the mighty MacBook Air (2013). In 2018 I upgraded to a tricked out 13″ MacBook Pro, with much better specs.
Frankly, that MacBook Air from 2013 felt more sturdy and capable than my current MacBook Pro. After 5 years of daily intenstive use, the MacBook Air’s battery is only through 50% of its max. cycle count. It’s still going strong after 7 hours on battery power.
In 2014, my trusty MacBook Air broke down on a beach in Thailand, 3 hours before a client deadline, with the next Apple Store 500 kilometer away. It turned out OK, of course. Guess what? My current MacBook Pro from 2018, its keyboard doesn’t even work OK, I’ve had sound recording glitches, and occasionally the T2 causes a kernel panic. Like many of us, I wish we had 2013-2015 MacBook Air’s and Pro’s with today’s specs. Oh, well…
Learn how to build iOS apps
Get started with iOS 14 and Swift 5
Sign up for my iOS development course, and learn how to build great iOS 14 apps with Swift 5 and Xcode 12.
That 100 Mhz i486 PC I Learned to Code With
When I was about 11 years old I taught myself to code in BASIC, on a 100 Mhz i486 PC that was given to me by friends. It had a luxurious 16 MB of RAM, initially only ran MS-DOS, and later ran Windows 3.1 and ’95.
A next upgrade came as a 400 Mhz AMD desktop, given again by friends, on which I ran a local EasyPHP webserver that I used to learn web development with PHP, MySQL and HTML/CSS. I coded a mod for Wolfenstein 3D on that machine, too.
We had no broadband internet at home back then, so I would download and print out coding tutorials at school. At the one library computer that had internet access, and I completed the tutorials at home. The source codes of turn-based web games, JavaScript tidbits and HTML page snippets were carried around on a 3.5″ floppy disk.
Later, when I started coding professionally around age 17, I finally bought my first laptop. My own! I still remember how happy I was. I got my first gig as a freelance coder: creating a PHP script that would aggregate RSS feeds, for which I earned about a hundred bucks. Those were the days!
Xcode, iOS, Swift and The MacBook Pro
The world is different today. Xcode simply doesn’t run on an i486 PC, and you can’t save your app’s source code on a 1.44 MB floppy disk anymore. Your Mac probably doesn’t have a CD drive, and you store your Swift code in a cloud-based Git repository somewhere.
Make no mistake: owning a MacBook is a luxury. Not because learning to code was harder 15 years ago, and not because computers were slower back then. It’s because kids these days learn Python programming on a $25 Raspberry Pi.
I recently had a conversation with a young aspiring coder, who complained he had no access to “decent” coding tutorials and mentoring, despite owning a MacBook Pro and having access to the internet. Among other things, I wrote the following:
You’re competing with a world of people that are smarter than you, and have better resources. You’re also competing against coders that have had it worse than you. They didn’t win despite adversity, but because of it. Do you give up? NO! You work harder. It’s the only thing you can do: work harder than the next person. When their conviction is wavering, you dig in your heels, you keep going, you persevere, and you’ll win.
Winning in this sense isn’t like winning a race, of course. You’re not competing with anyone else; you’re only really up against yourself. If you want to learn how to code, don’t dawdle over choosing a $3.000 or a $2.900 laptop. If anything, it’ll keep you from developing the grit you need to learn coding.
Great ideas can change the world, but only if they’re accompanied by deliberate action. Likewise, simply complaining about adversity isn’t going to create opportunities for growth – unless you take action. I leapfrogged my way from one hand-me-down computer to the next. I’m not saying you should too, but I do want to underscore how it helped me develop character.
If you want to learn how to code, welcome adversity. Be excellent because of it, or despite it, and never give up. Start coding today! Don’t wait until you’ve got all your ducks in a row.
Which MacBook is Fast Enough for Xcode 11?
The recommended system specs to run Xcode 11 are:
- A Mac with macOS Catalina (10.15.2) for Xcode 11.5 or macOS Mojave (10.14.4) for Xcode 11.0 (see alternatives for PC here)
- At least an Intel i5- or i7-equivalent CPU, so about 2.0 GHz should be enough
- At least 8 GB of RAM, but 16 GB lets you run more apps at the same time
- At least 256 GB disk storage, although 512 GB is more comfortable
- You’ll need about 8 GB of disk space, but Xcode’s intermediate files can take up to 10-30 GB of extra disk space
Looking for a second-hand Mac? The following models should be fast enough for Xcode, but YMMV!
- 4th-generation MacBook Pro (2016)
- 3rd-generation Mac Mini (2014)
- 2nd-generation MacBook Air (2017)
- 5th-generation iMac (2015)
When you’re looking for a Mac or MacBook to purchase, make sure it runs the latest version of macOS. Xcode versions you can run are tied to macOS versions your hardware runs, and iOS versions you can build for are tied to Xcode versions. See how that works? This is especially true for SwiftUI, which is iOS 13.0 and up only. Make sure you can run the latest!
Pro tip: You can often find the latest macOS version a device model supports on their Wikipedia page (see above links, scroll down to Supported macOS releases). You can then cross-reference that with Xcode’s minimum OS requirements (see here, scroll to min macOS to run), and see which iOS versions you’ll be able to run.
Further Reading
Awesome! We’ve discussed what you need to run Xcode on your Mac. You might not need as much as you think you do. Likewise, it’s smart to invest in a future-proof development machine.
Whatever you do, don’t ever think you need an expensive computer to learn how to code. Maybe the one thing you really want to invest in is frustration tolerance. You can make do, without the luxury of a MacBook Pro. A hand-me-down i486 is enough. Or… is it?
Want to learn more? Check out these resources:
Learn how to build iOS apps
Get started with iOS 14 and Swift 5
Sign up for my iOS development course, and learn how to build great iOS 14 apps with Swift 5 and Xcode 12.