I have been building software projects for almost 20 years. Initially I was writing specs for the systems to be build and then testing that “I got what I ordered”. I then moved on to building my own websites (in PHP!), before tackling very large systems both in infrastructure and servicing 1000s of requests per second. One of the main focuses in all of these projects, once you got beyond the early prototypes, were reuse. Reuse of code, reuse of modules, reuse of services.
The premise was that by reusing parts of your project in multiple places you would eliminate bugs, reduce maintenance, improve efficiency and reduce overall development time. While all this in theory is true, the real world is always a different beast. In my experience though, the requirements were often slightly different, the features needed weren’t exactly the same, the input data varied or something else just didn’t align. It was never as simple as write once, reuse to infinity. A lot of the time we either ended up with bloated modules that catered to everything or we came up with a too complex architecture, only for the sake of reuse.
Reuse is still a challenge, but if you can get the right balance between common and unique code, it can really be worth it. When my good mate Duncan suggested we do a course on how to share code between Angular and Ionic, I was on board! In case you aren’t familiar with Ionic, it is a framework to create native mobile applications with JavaScript, HTML and CSS, in an architecture pattern familiar to Angular developers.
And here it finally is. We recorded the course back in August while at NDC Sydney, and it is full of great tips, architecture hints and guidance on getting your web code onto your native apps. We build a complete app both for web and mobile, and explain along the way what you should and shouldn’t share between the two platforms, how to share code using an npm package, how to deploy it and much more.
Go watch the trailer right now, and enjoy the full course at your leisure.