I sometimes get asked about my favorite Mac apps, esp. when people see me running something unusual in-class. This list changes from year to year, but these are the apps that I have used heavily in the past year. I use a mix of OSS and commercial software; I strongly feel that it’s worth paying for something if you use it all of the time, and there’s some excellent low-cost commercial packages for the Mac.
- Microsoft Office 365. MS Office is ubiquitous, and the Mac version is 100% compatible with the Windows version.
- MacTeX: Mac TeX distribution, used for working with LaTeX – the standard in academic publishing.
- I use the built-in Notes app for taking notes. I used to use Bear, but I like to take notes on my iPad, and Bear’s handwriting support is too limited.
- OmniGraffle: vector-drawing software that I use to create graphics, illustrations etc. for slides in class or research papers. There are other, easier-to-use solutions out there, but this produces highly precise drawings.
- Pixelmator: a fairly lightweight but capable graphics editor, and much cheaper than Photoshop. They also have a
Proversion, but that’s way above my needs.
- Things: Project and time management. A very efficient way of tracking TODO items, and it syncs between Mac and iOS apps.
- Parallels: Virtualization solution for Mac, for those times when you absolutely need to run Windows (and don’t want to Boot Camp). I often use this to demonstrate code in Windows or Linux on my Mac. Parallels offers a free version on the Mac App store that just runs Linux VMs.
- Android Studio: I alternate between this and IntelliJ for writing Android apps. I prefer IntelliJ as a single-stop environment for Java and JVM languages, but Android Studio is the “official” app.
- IntelliJ: JetBrains Java/JVM IDE. Like CLion, this is also free-for-academic use. Fanstistic Java IDE, and with plugins, I also use it for Python, Kotlin development.
- CLion: JetBrains C++ IDE. Feature-rich, and lets me debug nasty code in an IDE (which I prefer over gdb). Commercial, with a free-for-academic use license.
- Dash: API documentation browser for Mac. Paid, but worth it for browsing API docs when coding (see Zealdocs for a similar but free app for Windows and Linux).
- Git: I use Git locally on documents, and store projects on Github and the UW GitLab. Most of the time, I use command-line.
- Visual Studio Code: used for coding in Java, C++, and writing documents in LaTeX, Markdown, HTML/CSS. Slower than Sublime Text, but faster than Atom, with the best plugin support of any modern editor I’ve found.
- Sublime Text: Fast and highly efficient editor. Plugin support isn’t quite as good as Visual Studio Code, but it handles large files much better.
- Alfred: Spotlight replacement. I like it for macros and binding hotkeys to frequent actions (e.g. keyword ACM
to search the ACM website for an article, or Cmd-Alt-L to lock my machine).
- Forklift: dual-pane file manager, includes bulk-rename, file-sync and works over sftp. Used when I want a graphical interface for browsing remote servers.
- Arq: Efficient backup utility that performs incremental backups in the background to a cloud service, as often as once per hour. Functionally, it’s like having a better version of Time Machine that works with remote storage. Cross-platform, commercial and well worth the money.
- Homebrew: Package manager for installing OSS/software. My first choice when installing anything (e.g. compilers, editors, libraries). It’s extremely stable, and almost-everything non-commercial is available through it.
- Magnet: Snap windows to custom layouts (e.g. docked left, right, top, bottom) using keyboard shortcuts or drag-drop. There’s lots of Mac apps that do this, but Magnet is cheap, polished and works well.
- 1Password: Secure, multiplatform password and note encryption. Encrypt your passwords. ‘nuff said.