Would you like start developing online web applications? Having a perfect web development environment from the beginning is a dream every developer got i think. With a local web development environment you will as a developer be able to work remotely or locally on your projects. This means that you can work on projects, even if you got no internet. In this article i will be talking about what you will need o set up a local web development environment.
The picking list
Setting up a local development environment is very easy and in most cases, you can do it absolutely free. Only if you need special versions of IDE’s or specific tools, it will cost you something. Below i have added a lost of the tools i you most of the time, when setting up a new local development environment.
- A laptop or Workstation with an Operating System (up to you)
- A set of browsers
- Google Chrome
- Firefox for Developers
- An IDE ( short for Integrated Development Environment ) or any text editor you might prefer.
- You you plan CI / CD of the application, you would need a hosting provider as well.
- GIT Repository for version control of your source code. Very useful for teams or if you want great structure of releases and bug tracking. You can also in combination with Azure DevOps combine your pull requests with automated builds, running tests and deploying your application to remote servers.
So.. Let’s have a quick look at each of my mentioned points above.
The computer and OS
When it comes to choosing the right computer I highly recommend developing on a computer with a fast HDD / SSD. Also you should get a lot of RAM if you are going to containerize your applications with Docker or Kubernetes.
The difference between a ASP.NET and PHP solution is that the PHP solution doesn’t need to be compiled. If you plan not to be developing Microsoft based web applications, you won’t need a heavy configuration for your computer. Bot operating systems offer a command line interface allowing you to fire commands while developing your applications.
The only thing you can’t do on a Windows computer is releasing MAC, iPad and iPhone apps. The reason is that Apple only allows publishing of these apps through a Macbook. If you want to, there is software available allowing you to host a virtual Windows machine on your Macbook. It’s not possible the other way around, since Apple doesn’t allow installations of OS X on other devices than their native products.
Below is a short comparison on usage of the different browsers I use the most.
- Chrome covers 61% usage share.
- Safari, covers 17% of the internet traffic.
- Firefox and IE both covers almost 5.6%.
- The remaining traffic is covered by Edge, UC Browser, Opera Mini, Opera and Android browsers.
If you are planning to develop a fully responsive website, browser compatibility is a factor that needs to be tested. You will need to install all the major browsers on your computer. When developing your application, you would need to do some proper unit testing in each of them.
You will also need to install mobile device emulator plug-ins in the browsers for testing cross device compatibility of your web application.
Choosing a perfect IDE
When it comes to choosing an IDE for your development environment, there are multiple options you can choose among. I started using some paid tools that i got for free using my educational licenses.
You don’t need to use these paid tools as a new programmer. It’s an important thing finding the right tool since the sole purpose of your work is coding text. It’s totally up to you if you want to choose an IDE or any lightweight text editor like Notepad++ or Sublime. It all depends on the complexity in your application and features you need in your daily work.
- If you are using HTML/CSS, PHP or any other lightweight programming languages and your application is very simple. I would recommend you to go for a standard text editor that supports color-coding. Notepad++ is the perfect tool for the job and is used by many web developers worldwide.
- If your application is simple and your budget doesn’t have a constraint, go for Adobe Dreamweaver, It’s one of the best IDE to develop responsive web applications.
- If your application is complex, multi-layered and you are using Laravel, Angular or any advanced JS framework, an IDE that supports command line interface, like Visual Studio Code, PHPStorm or Atom is the perfect tool for the job since it will make your job easier by Intellisense, autocomplete features etc..
Choosing a hosting provider
If you plan to run the application more than on your local development machine, you got three options as i see it.
- The traditional dedicated hosting services, where a webserver located either at your office or at a data center is reserved for your personal use. This is the most expensive way of hosting your application!
- Second option is to rent a virtual private server at a company like Digital Ocean, Google Cloud or Amazon. This is also a paid service, but you can get the hosting for a nice price since you share the server resources with a lot of other developers.
- The last option is to use managed hosting – this is the most traditional way of getting hosting. Here you only sign up for a plan and then upload your files to the service.
If you work in a company offering enterprise tools or provides hosting services, I would definitely choose this. The reason is that you would get access to an inhouse team who would be able to support you when performing maintenance and troubleshooting.
If you work as a freelancer my advice is to choose Cloud Based hosting like a VPS (Virtual Private Server). Here you would need to setup you own server, but at the same time you got all the power at your fingertips.
GIT – Version Control of your APP
If you are working with a team or developing a complex application, it is very important to make use of a repository. Apart from pushing and pulling your source code, you would have a backup of your code hosted on fast servers. This way you can keep track of changes and quickly pull, edit and push changes on the go.
There is a lot of options out there, you can either choose a cloud solution provided by GitHub, Microsoft or BitBucket or choose to go with a local hosted SVN solution. If you want you can get the premium (paid) version of the GIT providers, which allows for private repositories etc. Using these tools allows you to share your code with team collaborators, which is a great way of getting your code reviewed using pull requests before you merge the changes to the branch.
All the things i mentioned above is things I make use of in every single local development environment at setup. If you are developing a website with heavy load, you can make integration for advanced things such as a CDN (short for Content Delivery Network). Job runners, ElasticSearch with Kibana for stats on how your application is running. Make use of encryption services to secure data transfer between your application and the clients.
When combining all the things i mentioned above you achieve a great set of tools making a solid foundation for your local environment. If you are a beginner, my advice is to only use the basic tools – they will for sure allow you to learn alle the basics and develop a great basic web application.