Tools of the trade (WebDev November 2018)
In this post I wanted to just provide a run-down of the various tools I use on a day to day basis, what each of them do, and why I believe they are invaluable tools for modern Web Development.
First off the rank is the first tool I go to when I start a new website from scratch, and it’s also the first tool I ever purchased to help with my web development.
Balsamiq is a desktop program used to create interactive mockups for websites, long before you have a design, when you are still sketching out functionality.
I used it extensively on the first project I worked on for OPC, which required the development of around 50+ wireframes to show the overall user journey for applying for an online skill assessment.
Balsamiq allows you to provide some limited functionality in the designs, allowing you to click through from one design to another, allowing you to present to stakeholders and show them the step by step process a user would take. Even better is that these interactive presentations can be exported into PDF files, allowing anyone to view them.
Not only does it provide drag and drop elements for all common functionality you would want to display, but the default theme provides a very hand drawn aesthetic, which ensures that the clients don’t get hung up on how something looks well before they need to.
For the one-off licence fee, I’ve more than gotten my monies worth.
You can see a fuller review of the Balsamiq software in this blog post from 2016.
Secondly is a tool I only came about using two years ago and can’t even imagine how I used to get by before.
PHPStorm is what is known as an IDE, an Integrated Development Environment. It’s a fully feature packed PHP Development tool with plugins for all the common frameworks including Drupal.
The key feature I couldn’t live without anymore is the ability to pause the live code execution on the development website.
For example, while developing the service calls to the Middleware API on a recent project, we could pause the PHP code right before it sent the request and investigate it. We could see how the arrays of data had been built and what it was expecting to send, and then line by line we could step through the code execution, seeing exactly what was returned from the API and making changes in near-real time as required.
It’s compatibility with Drupal allow for the editor to be aware of the framework for Drupal, meaning when your writing your custom module, and want to add in a form alter hook, you just start typing “my_custom_module_form_” and like an autocomplete that you won’t curse at, it will suggest the right function and pre-populate the correct arguments as well.
The xAMP utility is just the easiest way I’ve ever found for setting up a local development environment. Some people prefer Acquia Dev Desktop, which is great for its built in Drush support, but xAMP’s ability to control and customise PHP and the inclusion of PHPMyAdmin edges out Dev Desktop every time for me.
The acronym stands for Platform, Apache, MySQL, PHP, where the Platform can be Windows, Mac or Linux… the x at the start is interchangeable, for example I use WAMP, but others use MAMP or LAMP. The xAMP stack is perfect for being able to spin up a development website in a flash.
I use it mainly on Windows, and love it for it’s ability to be able to create a new localhost domain in a matter of seconds, and recently, being able to switch between PHP versions with the click of a button has helped massively with the development of code and testing it on legacy and future platforms.