How I setup a new Mac for iOS development
What I install and change on a new Mac to maximize my developer experience on macOS.
I purchased a new 14" MacBook Pro M1 Max. I am going to walk through how I setup my Mac for iOS app development. Some apps are for my own personal apps like iHog and Coffee_ and some are a requirement for a freelance client. I am also going to explain some settings that instantly get changed.
System Preferences
Here is a list of system preferences that I change any time I get a new mac.
Trackpad
- Tap to click - I prefer to tap instead of press on the trackpad.
- Tracking Speed - I always increase the tracking speed. I started doing this once I got my ultrawide since I use a trackpad as my main input. The default speed feels really slow now.
Dock & Menu Bar
I toggle a couple settings in the Dock & Menu Bar also
- Dock Position on screen - Left
- Automatically hide and show Dock - Turn on
- Spotlight - Turn off
- Siri - Turn off
Apps
Here are the apps that I download that make my macOS experience the best. It is separated in general categories.
General apps
- Craft for note taking
- 1Password to store and recall passwords across my devices
- Raycast as a spotlight replacement tool
- Orbit to track time
- Setapp to download more apps. It's a subscription based store that allows access to a lot of apps that are usually subscription based also, so it helps me save a little bit of money. Most if not all of these apps can be purchased without Setapp.
- Cleanshot X (downloaded on SetApp) for screenshot and screen recording
- Bartender 4 (downloaded on SetApp) to manage the menubar
Communication
- Slack for networking groups and freelance projects
- Discord for other social groups and also freelance discussions
Development
- Xcode - iOS app development needs Xcode, so this is a default one to download. I sometimes download from the App Store, but this time, I decided to download it from the Apple Developer website. I am tired of it automatically updating
- Docker desktop app - This is only require for freelance projects
- VSCode - There's always a need to edit non-swift files and my go to editor is VSCode
- Paw (from SetApp) - Tests API calls. Sometimes I use Postman, but since it's on SetApp, why not use it?
Terminal configuration
I have some dotfiles on my GitHub to help my terminal look better and work for me more.
- iTerm 2 - Terminal replacement
- Homebrew for package management
- SSH Keys for GitHub and GitLab - Some freelance is on GitLab, so I have to setup SSH keys on there and my personal projects are on GitHub. I use SSH because it's just a tad easier
- Oh My ZSH - Terminal configuration and built in aliases
- Fig.io - Terminal completion
- Dotfiles for configuration - I have my .zsh configuration files and aliases setup in a GitHub repo. Currently, there are only a few aliases and those are set for freelance specific commands. I'm slowly setting up some other aliases which will be more public.
Build tool
- Tuist - Allows me to work between computers easily without worrying about git conflicts from the
xcodeproj
file. It is an Xcode project build tool.
And that's all that I usually setup for development. Let me know if you have any comments or questions on Twitter, @maeganwilson_ and follow me there.
Enjoyed the post? Awesome, then please share it with everyone you know and consider becoming a member to get my posts directly to your email.