Monday, November 19, 2018

Theory and Design

In order to achieve the portability I needed to be able to deploy across multiple platforms I required a simple yet powerful language to host the application. Javascript was the perfect solution. Thanks to the Internet and the evolution of social media, Javascript has evolved into a development platform in it's own right.

I also wanted to keep the technology stack as close to Open Source as I could, and utilize free tooling, libraries, drivers, and all other associated bits. This included the development environment as well. I was getting tired of paying annual fees for the ability to use tools that often were a one off and then sat in my toolbox collecting dust.

So lets get started ...

Javascript is an Interpreted language so it needs a run time compiler that transforms the Javascript into machine language. I wanted to be able to develop on both my Windows machine and my Mac, so I needed a cross platform compiler.

Node was an obvious choice to host the application during the development cycle. The Node Version Manager and Node Package Manager are great tools for managing the development environment.

I also wanted a cross platform code editor so I could work in a familiar environment on either machine. Visual Studio Code was my choice. After a little research I discovered that it was written in Javascript and hosted in Electron. Perfect, my code editor was built on the same platform as I was intending to use for my efforts. This gave me a degree of confidence that I had chosen the right platform.

Visual Studio Code plays nicely with GIT, so GIT was my obvious choice for Source Control.

In order to run my projects on mobile devices I had two choices. Native development or Hybrid (HTML) development. I had worked on several hybrid mobile apps in the past and from a cross-platform point of view, it was the only choice. Cordova provides a nice clean modular approach to providing the interface between mobile hardware and Javascript as well as build scripts for each environment. There are numerous similar platforms available. I chose Cordova because I had worked with it in the past and it has a great track record.

Electron provides the same cross-platform functionality for operating system or desktop deployments. It provides a bridge from Javascript to desktop as well as the necessary build scripts.

The last piece of the puzzle. I needed a Javascript framework that provides all the basic functionality and tools to build a world class application. There are lots to chose from and I did a lot of comparison shopping before I settled on Aurelia. The Technical Benefits page on the Aurelia website gives a great overview of why I chose Aurelia. I really don't want to get in a debate over the merits of one platform vs another. I have worked in many platforms and my personal preference is Aurelia. Let's just leave it at that. I'm sure you could use any platform of your liking, but this blog will be focusing on Aurelia.

Next Steps ... Installing Software

No comments:

Post a Comment