Native apps vs. the web
The web is under threat from native apps, in the same way that it was threatened by single-vendor solutions like Flash and Silverlight in the early 2000s, said Microsoft’s Nolan Lawson. He wants to keep the web moving forward with Service Workers and delivered a very convincing argument for his case followed by a crash-course on how to implement it.
He argued that web developers can get loads of benefits from Service Workers and still maintain the native app experience! Basically, a service worker is downloaded and installed on the client and then activated. Once active, it runs as a background process that can receive and emit fetch, push, and sync events. That means web apps can continue to function offline, checking back in with the server periodically or when a network connection is available. They can also push notifications to the user even when the browser isn’t running and sync data to make sure everything stays up to date.
The spec is on the w3 site and as always, a good explanation of core concepts can be found on MDN.
Further into the future…
Ada Rose Edwards from Samsung spoke about a very exciting vision for virtual reality! She thinks the VR devices we are seeing today can be compared to clumsy and cumbersome mobile phones when was first introduced in the 1990s. VR is steadily making its way on to the web – there are even entire browsers that work inside VR headsets now – so 2017 is a good time to start thinking about how VR can improve websites, and how to bring the immersive VR experience to the web. There’s a nice example of what, developers will be able to create at gun.playcanvas.com, which makes great use of WebGL, WebVR, and finely-tuned lazy loading amongst other things.
Tools of the trade
DuckDuckGo’s bangs for quickly navigating to various docs – searching `!ng directives`, for example, leads users directly to the Angular documentation on Directives.
Browser extensions OctoLinker and npm-hub enhance GitHub repository pages help users gather more information about a project and particularly its dependencies before deciding whether to use it or not.
NPM package `trymodule` lets users play around with packages in a Node REPL before installing properly.
Libraries.io lists over 2 million open source libraries. It pulls in stats and the Readme from the library’s GitHub page and its NPM (or other package manager) page, and generates a tree of its dependencies.
The final talk of the day was from the lead Angular dev, Igor Minar, who explained the journey that took the team from Angular 1 to Angular 2, and why they made this decision. After such a huge community backlash to the announcement that Angular 2 wouldn’t be backwards-compatible with Angular 1, Igor’s talk defended the framework’s stability and longevity.
Despite a lot of very public rivalry between the Angular and Ember teams, some of the core Ember developers met up with the Angular team and helped to create the new CLI, reusing a lot of code from Ember CLI. Similarly, despite competition between Microsoft and Google, Microsoft’s TypeScript team worked closely with the Angular developers to integrate TS into the heart of Angular 2. The new framework’s unidirectional data flow concept was inspired by ReactJS among many other influences from popular frameworks like VueJS and Redux.
A five-minute presentation format on the mainstage, here are some quick roundups:
Tips for using code linters with version control
How to carry out a NoSQL injection attack on Node/Mongo with ease (including the scary tidbit of information that a single injection could drop the entire database in Mongo 2.4>)
A static website generator useful for shared hosting or other areas where a SPA isn’t possible, based on React (https://phenomic.io/)
An explanation of functional reactive programming (a concept that several speakers acknowledged still remains undefined, but it’s a popular buzz phrase at the moment). Thomas Belin used the metaphor of the speaker being a website user, and the DotJS audience being the UI, that responds to what the user does – with time being the common denominator in all web apps
All in all, there was a great range of content at DotJS this year. It was particularly interesting to hear JS experts’ opinions on the current ‘hot’ frameworks, as we’ll soon be making the framework decision for our next project at Locala – we’ll be doing mini Proof of Concept applications with at least Angular2, VueJS, and React // we’ll be better informed for making the decision now! //.
Written by Cassie Brooks (Front-end Developer)