About a 5 minute read.
As an iOS developer, primarily using a Mac, who dabbles in web and backend work, here are some of the tools I use. The majority of these tools are either free, or have a free level. (The exceptions are the Serif and Adobe products. The Serif products are a better value for the money if they will meet your needs.)
This one is a no-brainer. And Xcode 10+ is more stable than previous versions. I haven’t had to terminate the SourceKit task much if any, since upgrading. It’s been getting incrementally better with each minor release as well.
Cocoapods is still the de facto dependency manager for Xcode projects. As I write this, v 1.6.1 is out and version 1.7 is in beta with long awaited support for multiple language versions. Some developers don’t like Cocoapods because it forces you into a workspace and rewrites project files, but at this time, it’s really an essential tool for serious development.
git is another no-brainer. It’s free. It’s widely used. It beats the pants off centralized version control systems. Even Microsoft is using it so much that they bought github.com. I work with some developers who are old-school .NET devs and they haven’t read the writing on the wall and keep pushing Team Foundation Version Control, despite Microsoft’s recommendation to use git unless absolutely necessary to use centralized.
Speaking of Microsoft, their VS Code editor is also in my toolbox. I’m using it right now to write now, as in writing this post. I tried Atom for awhile, but had some speed and performance issues with it. VS Code, like Atom, is built on Electron, but seems to perform better for me. There are a couple of features from Atom that I wish VS Code had, but overall, VS Code wins the day for me. In an interesting turn, since Microsoft bought Github, and Github created Atom, Microsoft now owns both. It will be interesting to see if they eventually kill of Atom. VS Code seems to be more popular so Atom may die a natural death.
After tiring of the endless treadmill of trying to secure Wordpress sites from hackers and optimize it for speed, I’ve started moving some of my personal sites to static HTML, and my tool of choice is Jekyll. It’s the most popular and mature in a growing field. And when used with VS Code and git, along with freemium hosting such as Netlify, it’s just a matter of commiting and pushing to publish new content.
Rails (RoR) is a mature and stable framework that sits on top of Ruby and enables the quick creation of data driven web sites and backend APIs. Some would argue it’s more of a platform than a tool, but since it includes code generation, I think it also qualifies as a tool. It makes use of convention over configuration to allow rapid building of sites/APIs and has a large and mature set of plug-ins that make typical requirements easy, like Devise for authentication and account management, and CanCanCan for authorization. There are many web themes, including Bootstrap 4 based, and since it’s fully open-source, you’ll find a lot of resources you can use to make your site great, with minimum effort. When it’s time to publish, it’s hard to beat Heroku for ease.
I know that RoR is not the latest, sexiest tool that all the cool kids™ are using, but it’s tried and true. Angular was the thing for awhile, till Node.js came along. Maybe Node will have staying power, and maybe it will get overtaken by some other framework. Meanwhile Rails keeps trucking along.
Postman is a great tool to help when developing or testing an API. It’s like Fiddler, but on steroids. It’s a standalone tool rather than a browser plugin. I love that I’m able to create whole suites of API tests, point them to different environments and use the results of one call, such as a login, to grab the bearer token and pass that in the header of other calls, all automatically, once I get it set up. Currently, I prefer Postman over its rival, Insomnia due ot the fact that Postman will sync between devices on the free level of the product, and Insomnia charges for that. However, Insomnia is open source.
Gitlab is my go to remote git repository. Even with the recent pricing changes to Github, Gitlab offers more for free. I use Github as well, such as hosting open source projects that I create, but that’s only because Cocoapods doesn’t support Gitlab.
- Trello for project management of personal projects. I’ve extensively used JIRA for work projects but Trello is much simpler, so it works well for individual or small team use.
- Gimp for quick image manipulation.
- Serif’s Affinity Designer and Photo for additional photo processing and making icons and graphics.
- Photoshop – I still have an old copy of Photoshop and Darkroom from Adobe, though I refuse to upgrade to the subscription model.
- Icon Set Creator – quickly make all the icon sizes needed for an app.
- LibreOffice is a nice, free alternative to Microsoft products. I generally use Pages/Numbers for my own use, but if I have to send editable documents to others, LibreOffice is able to save in the required formats.
- FileZilla for S/FTP
- I used to use GitHub Desktop, and Sourcetree for GUI use of git, but mostly I use built-in tools in my IDE/Editor or the command line now.
- For communicating with other devs on my team, I prefer Slack and use either the web site, or mobile app. I’m not a fan of the Electron based desktop app.
What’s in your toolbox? Did I miss something? Leave your feedback below.