Today, I'm pleased to introduce you to Daryl Cober, a member of the Aurelia community who has been building out "Smoke House Project", a skeleton framework for desktop/web/mobile deployment using Aurelia, including a node Web API and a MongoDB. I'll let him share more about what he's working on and his journey to get there. Take it away Daryl!
Hello all you fellow Aurelia junkies!
Rob invited me to share a few thoughts about my experience working with Aurelia.
I am a seasoned software developer / contractor / consultant (some call me an old goat) with over 30 years of experience under my belt. I literally have "been there, done that, got the t-shirt". You can find me at https://www.linkedin.com/in/coberconsulting
Many years ago I realized the need for a simple yet powerful framework for building Single Page Applications (SPAs). Most of my work had evolved into building what we were calling "internet or web enabled applications". Since the User Interface (UI) was almost always running in a browser, SPAs were the obvious choice.
I tried to build my own framework, with limited success, then I had the opportunity to work on a team using Durandal (Aurelia's predecessor). I was immediately impressed with its ease of use, etc. I was so excited, finally a framework I could use as a base to build up a decent library for my various projects.
I literally just started on a new project using Durandal and along comes Aurelia (still in alpha). I did not hesitate for a moment. I installed the Command Line Interface (CLI) and have been using it ever since. I was hooked!
I had a couple of new projects in the wings and decided I would do a real framework evaluation before I jumped in feet first. Needless to say, I chose Aurelia and have no regrets. (As a footnote - I will mention that I have worked on several projects using Angular and I still feel the same way about Aurelia as I did when I made my decision to choose it as my "go to framework".)
The Smoke House Project
A lot of my clients were asking for applications that could run on the desktop as well as a mobile device. I had worked on various teams building hybrid apps for IOS and Android devices using Cordova ( https://cordova.apache.org/ ) and also knew about Electron ( https://electronjs.org/ ) so naturally I started experimenting to see if I could put together a single code base that would build for any desktop / mobile install.
The biggest challenge was to organize a project structure that would conform with the individual framework requirements so that I could keep the modifications to a minimum. After that I simply had to modify some of the build scripts so that each framework had access to the appropriate files and voila...a simple, single code base that I could build for virtually any type of installation.
The next step was to build a "starter" project to act as a base for developing future applications. I wanted to assemble a collection of default libraries to support running the application in multiple environments. These included libraries to support multi-lingual labeling, touch support, scrolling, authentication and a bunch of other housekeeping functions. I tried to adopt a "Keep it Simple" mantra and also wanted to keep the bundled application as small as possible. I avoided all the "bloat" libraries such as JQuery and Bootstrap, although you could certainly include them if you wanted them.
I decided to post my efforts as an open source project on GitHub. You can find it at https://github.com/SmokeHouseProject I have just completed my first major project using this framework and am preparing to start a new project. It has been a while since I posted this project and I have learned some lessons along the way, so I am currently in the process of updating the framework with my latest code base. I have decided to blog about this process so you can follow along if you are interested. You can find my blog at http://darylcober.blogspot.com/
Please feel free to download the project and play. I have tried to document my modifications in the readme files in each directory. Hopefully it helps!
You can reach me anytime at darylcober at darylcober dot com. I welcome all feedback and also would love to have some contributors to my project.