Tools of the Trade
iOS Developer’s everyday macOS apps
Every so often I see an article recommending useful apps for Mac. 9to5Mac just posted one that inspired to finally put my list in writing. I also presented at a Learn Swift LA meetup recently and was asked about the apps I used on screen.
The following list contains only apps I own or have a subscription for. Free alternatives are mentioned if I found any.
One cannot write about Mac apps without mentioning the ones made by Apple. Most of those mentioned below are preinstalled with macOS and the rest are free from the Mac AppStore. Free is definitely the best place to start.
Most of these apps are probably obvious for everyone, especially for developers but I thought I’d run through them for beginner to talk about how useful these free tools can be.
This is the foundation for all iOS, macOS, watchOS and tvOS developers. You either love it or hate it, but you cannot be indifferent to Xcode.
Xcode is the app you would use to write code probably in Swift or Objective-C, build your screens and submit your app to Apple. It is ever evolving, ever indexing and ever crashing.
My personal recommendation is to download it from the Apple Developers Portal. A free Developer Account is required to access to downloads page where you can get the latest beta of Xcode, and scrolling to the bottom will reveal “See more downloads” which will open a page where the release versions can also be downloaded directly.
This way multiple versions can be installed in parallel. The Mac AppStore version will be replaced automatically when updated, and from my experience with a corporate network, the update can get often stuck.
Terminal (cocoapods, git, fastlane)
This is app is mandatory whether you’re a mobile app developer or any other kind of developer. git, CocoaPods, fastlane and other tools require some basic knowledge with the command line so you better get comfortable typing and forget about using the mouse.
- Head over to Preferences > Profiles. A selection of colorful themes will help make this app a little less dark. Make sure you set the one you prefer as Default so new windows will use it.
- If you enjoy the San Francisco Mono font in Xcode, you can download it and use it in Terminal as well. (Correction: it seems to be built in so no need to download anything)
This is more of a shortcut than an app but an important tool nonetheless.
shift+command+4 is your best friend when you want to take a quick screenshot of a portion of the screen. The screenshot files will appear on the desktop for easy access.
Pro tip: Hit space bar to change the crosshair into a camera icon to activate window capture. This mode will allow you to capture a screenshot of the simulator with the bezels.
Use this amazingly simple and free app to crop, resize, and annotate the screenshots. Editing images doesn’t require any photoshop skills and mastering the Preview app will prove itself more than enough for basic editing.
- Instant Alpha tool can make transparent images.
- Adjust Color tool can convert any image to black & white.
- Go to File > New from Clipboard (⌘+N) to create a new file from a copied image.
The screenshot tool and Preview were used to create (almost) all the images in this article.
Safari (or any other browser)
It might be obvious but Safari is one of the most important tools for developers. Apple Documentation, Stack Overflow, Tech Blogs, Twitter, and Google are all required items in the arsenal of any developer.
It might not seem obvious but passing over text onto a test device isn’t always straight forward. Either a complex password, a large block of text or a long URL, typing is not always an option. Signing in to your iCloud or email account on a test device is not a great solution.
This is where the Notes app becomes handy — AirDrop a note with that data into the device and forget about using your personal iPhone for testing.
This is how I managed to get long URLs containing a lot of random characters onto a test device which made debugging a fun task.
Notable mentions: Evernote, OneNote, Bear. Anything you recommend?
iWork: Pages, Numbers, Keynote
Not long ago Apple reduced the price of this collection of apps to $0. Did we already mention that free is awesome?
These apps are just much faster and easier compared to Microsoft Office. I own a license to Office for Mac (before it was a subscription) and I haven’t used it in years.
iOS/macOS designers (that I worked with) tend to use Macs, a fact that makes it easy to exchange documents without worrying about compatibility. iCloud has built-in support for syncing and editing files across devices, including on iOS. Another advantage is they also have web apps!
If compatibility is an issue, there’s always Google Docs.
This under appreciate app is one of my favorites.
Power users like to use Spotlight Search to launch apps but I find to be a pretty hammer for such a small nail. Spotlight searches the entire Mac, and takes a couple of seconds to show results. The app we’re looking for might not even be the first one on the list.
It’s a lot faster for me to:
- Hit F4 to open the Launchpad.
- Immediately type a letter or two of an app’s name.
- (optional) Select the app with the keyboard if it’s not the first one.
- Hit Enter.
Opening it from the Dock and clicking on an app is great way to avoid using the keyboard at together.
Let’s get down to business. There are a lot of good free apps out there but as developers we know that if we’re not paying — we’re the product. That’s why I I’d mostly rather pay than give away my privacy.
Great apps take time to build and cost money so be prepared to spend some to increase your productivity. Remember — other developers need to make a living too. Be picky about what you’re paying for, but don’t be cheap about pro tools if you’re a professional.
Not exactly a tool for developers but this app is just as important as Xcode. Sketch is currently a standard in the industry so expect getting Sketch files from your designers. Sketch is made exclusively for Mac.
Regardless of your design team, learning how to use Sketch should be a requirement for any front end developer. Get the UI Design Resources for Sketch, which Apple provides for free, to sketch your app ideas, build wireframes or make your own app icons and buttons.
Pro tip: Sketch can export images as PDF vector files as well so there’s no need to generate 1x, 2x, 3x files anymore.
Not required but nice to have. If you use source control (and you should), then having a visual tool is much nicer than the command line. In my opinion, GitKraken has the best UI of the various tools I tried out, and it integrates with Github, Gitlab and Bitbucket.
WWDC is the biggest event of the year for iOS/macOS developers. This is when we learn about the next versions of iOS and macOS, learn about new APIs and best practices and get to see the faces behind the scenes.
The official WWDC site is well designed but a bit hard to navigate and searching for videos is not great. That’s where the unofficial app fills the gap and supports filtering by event, platform and topic.
While on topic, it’s worth mentioning ASCIIwwdc which allows searching through transcripts of all the sessions.
Slack doesn’t exactly fit in the Tech section but it’s such an integral part of a developer’s workflow that it felt as it belongs here.
Communication is a key value for a team’s success and Slack is a great tool to achieve that. Workspaces represent organizations or groups, channels have topics and threads are conversations that continue out from the main thread (unintentional pun). Anyone can create their own workspace for free.
There are many workspaces anyone can join where you can find some of the most known voices in the Swift community — such as swift-lang (link is down), SwiftCoders, Vapor, Perfect, RxSwift, GitKraken, and many more.
If Slack ain’t yo thing and if you enjoy pain, Google Hangouts is still out.
If Preview isn’t powerful enough for your image editing needs, then Pixelmator is going to fulfill them. It isn’t Photoshop but it’s pretty close, and if you ever manage to reach its limits, you can always get Pixelmator Pro. Both are exclusive for Mac.
In the age of subscriptions, one has to appreciate the pay-once keep-forever business model that’s rarely seen in the wild anymore.
File comparison might not seem important but resolving merge conflicts is a hard skill to master. Kaleidoscope definitely helps ease that task.
Comparison is not restricted to text only. Kaleidoscope can compare images and folders and will integrate with your favorite source control tool.
For $70, it’s more useful for developers working in a team, who deal with a lot of conflicts. It’s worth keeping an eye out for a discount using AppShopper or a similar service. It usually go down to 50% around Black Friday.
Testing Push Notifications can be challenging. Luckily Knuff makes it easy to send custom notifications to an app.
The APNS certificate has to be installed and match the current environment of the device — Production for AppStore and TestFlight apps, or Sandbox for debugging apps running from Xcode.
Just a quick warning — Knuff does not do any kind of validation and will silently fail if the wrong certificate (or none) is selected, if the wrong token is provided, or if the payload JSON is invalid.
Getting a device token in Xcode from a debug app is easy. It doesn’t have to be much more difficult for productions apps:
- Print the device token to the console in
- Plug the iPhone/iPad, launch the Console app and select the device.
- Search for your app name to filter the log.
- Find the device token in the log.
This app is for anyone who had to test or debug an API. Paw is an HTTP client which allows defining and making API calls easily. The requests and response can be examined using a complex yet intuitive UI.
There are a lot of features to explore and there’s definitely a small learning curve to overcome but the reward is worth it. Luckily for me, our API team prepared and shared their Paw file so developers can test the API with ease.
If you can’t pay just yet, Postman’s basic plan is free and is also a well known app for testing APIs.
Charles Proxy is mandatory for inspecting and debugging network traffic between your devices and the internet. It supports debugging the iPhone simulator directly, giving an deep insight into what networks calls are made when using an app.
With this data we can see if API calls succeed or fail, if they’re called in the right order and that the correct information is being sent or returned from the server.
Not all apps get to be used daily but keeping them in mind or on your mac will be useful when the needs arises.
Same goes for the following apps. They’re not pro apps but will greatly improve your day to day work on a mac.
Clipboard management apps are amazing utilities in the toolbag of any developer. Do yourself a favor and get one immediately. There’s nothing more annoying than losing a bit of code because we hit ⌘+C instead of ⌘+V.
Paste supports multiple pasteboard, pinning clippings, and will sync your history to iCloud for safe keeping.
Paste is my personal favorite but there are a few other known clipboard managers you might want to consider:
Superusers often pride themselves using a lot of keyboard shortcuts, especially in macOS and Xcode where there’s a shortcut available for almost any little task. The greatest achievement is avoiding the mouse entirely while still being productive.
Sometimes there’s something liberating of not needing to use the keyboard for a simple task, just being able to do it with one simple click.
iOS users will feel right at home with PopClip’s UI which appears immediately when selecting text. A small popover will hover above the cursor with the available action for the selected text.
PopClips greatest value is its vast library of extensions. My favorites are Search in Maps app, Search with camelcamelcamel, Google Translate, Track with Deliveries, Run in Terminal, and there are many many more. Don’t forget to check them out.
Ever wondered what your inbox would look like if it worked like the Messages app?
Unibox groups emails by sender, making it easy to follow a conversation with somebody or see the entire history of emails from a contact. It treats the inbox like a messaging app but it’s possible the view a thread in case multiple people are involved in a conversation.
There’s also an iOS app but I haven’t found it as useful as the Mac version.
By default Unibox will always show all emails, including from Archive. Inbox Zero fans can switch to the Received group to ignore archived email.
To make this permanent, go to Preferences > Advanced, and check Hide Unibox group.
If you’re still managing your password on a sticky note, or maybe in the notes, it’s time to upgrade and now!
1Password supports saving almost any kind of information on top of websites logins — Bank Accounts, SSNs, Drivers Licenses, Passports, Software Licenses, Reward Programs, and the list goes on.
Safari Keychain is built in to macOS, it syncs with iOS, it’s simple to use, it’s as secure as your device, and it’s free. It does have its limits though — it works to Apple device only. I prefer it on a day to day basis but it can only store website logins and credit cards.
I find the combination of Safari Keychain and 1Password to strike a good balance.
If paying is an issue, Dashlane’s basic plan is free. I’ve used it since beta and really enjoyed the UI and made the switch to 1Password years later.
Price: $4.99 (Currently on sale for $0.99)
You would think window manager would be built in to macOS, and yet Apple left a gap filled by more than a few apps. Magnet is pretty useful if you like dragging a window to the edge and have it snap and resize.
Divvy is a lot more expensive, at $13.99, but if you want total control over resizing windows then it’s worth checking it out.
I just found out about Spectacle. A free open source alternative.
Price: $6.99, $4.99
Dragging and dropping anything between apps is sometimes a cumbersome task. Magnet might make it easier by snapping 2 windows visibly on screen but instead use Yoink or Dropshelf.
When dragging to the edge of the screen, a drawer will open to drop anything into it. Then it’s easier to switch to another app and drag the content from that drawer without performing any wild mouse acrobatics.
Ever wondered what’s taking up all the space on your hard drive? Clicking About This Mac > Storage might give you a rough idea but it won’t tell you what in the system takes up half of your space and how to get rid of it.
Daisy Disk will scan you files and present a beautiful pie chart, that’ll drill down with every click to expose a more detailed view of each folder.
Xcode is the right at the top, eating up over 128GB of space. Busted!
When you’re addicted to gadgets, the anxiety of knowing a package should arrive soon is hard to contain. Deliveries will help replace this anxiety with excitement, when you package delivered notification pops up on screen.
Easily track all your Apple gear from one place and get a live view where each package is located on a map.
It’s also available for iOS.
Install a Deliveries extension to PopClip to quickly add new a new tracking number.
Mactracker is made for all the different kinds of Apple fans. The casual fans can view basic info on every Apple device ever made, and the hardcore ones can compare between different models and view detailed spec and history.
Definitely worth having it installed just in case. There’s also an iOS app.
Use Theine to quickly suspend the screensaver and prevent your mac from falling asleep. This is useful when presenting or when downloading updates over night.
Caffeine was actually the original but has been neglected and doesn’t work well with the latest version of macOS.
There are many other great apps for macOS that didn’t get into this list because they’re not a part of my daily workflow.
It’s also important to mention apps often go on sale. Services like AppShopper can send emails when apps on your wishlist drops their price.
Which ones do you recommend?