ngVikings 2019 takeaways

angular typescript conference community javascript rxjs

ngVikings conference is considered as one of the most technical, community friendly and interesting Angular events in Nordics. Initially founded in Copenhagen, this year it was there again. Apart from the awesome organization of the event, apart from lots of environment care and even donations to plant trees for each ngVikings conference, there are plenty of good talks and presentations. Usually, conferences are considered more like networking events, and that's true. But ngVikings conference is a bit more than that.

There are some key takeaways which could help you to define which video to watch first on YouTube. All conference talks were recorded and pushed to YouTube for free.

First conference day (not exactly the very first, because there was a workshops day before) was started from the keynotes by John Papa, Minko Gechev and Kristiyan Kostadinov. Usually, you expect to have keynotes session as something long, bit boring and playing just kind of starter role.

Key Notes

But at ngVikings John Papa started keynotes with pure technical talk about how to move your node functions or endpoints right to Azure with minimal efforts, having it all in a single repository. Actually, mono repository idea becomes more and more popular at the moment.

Minko Gechev, nice as always, told mostly about new Angular features, everyone sighed once again that Ivy is still passing 97% of tests and was not finally released. But you can try it for sure. Angular team reviews all issues posted about Ivy problems. It also contains all important Angular plans for its future, and review of what we will see in Agnular 8 - differential loading, routing changes, builders, bazel and other things. The talk was given just 2–3 days before Angular 8 was officially released. The most inspiring thing was his memory about the very fist angular contribution by himself. It is the most simple pull request to GitHub one could ever imagine - just adding missing brace '}' to the docs of Angular! Just think about it, the big journey always gets started from a small step.

Video reveals more details for you: Day 1 Keynote, What's new in Angular by Minko Gechev

Kristiyan Kostadinov proceeded with updates about new features of Angular CDK, such as drag'n'drop and virtual scrolling. The virtual scrolling is pretty cool feature of Angular CDK, because it eliminates loops performance issue. By having that, your ngFor would be faster and take less memory and less DOM actions than ever before. Video: Day 1 Keynote, Angular Material by Kristiyan Kostadinov

Later these ideas were reviewed in details during a great live coding session Unleash the power of the Angular CDK by Nir Kaufman. He showed how to use and customize virtual scrolling and drag and drop components. The killer feature of talk was how to implement drag and drop components in the same context between different windows! So you can implement something like photoshop with different windows opened at the same time, working in parallel, sharing the same context! A feature called cdkPortal - take a look to video for details!

And The last piece of Key Notes were conducted by Shmuela Jacobs Microsoft and Chris Noring, one of ngVikings contributors. They shortly talked about deployment to azure. What's new with it? The new thing - with her new open source project you can do it with 2 simple commands from your terminal, kind of Azure CLI for angular projects. You can forget now about complicated and not understandable Visual Studio Online builds and Releases. Video: Day 1 Keynote, Some exciting Angular news by Shmuela Jacobs & Chris Noring

Talks

Jeff Whelpley and his young daughter Madelyn talked together on the stage about 5 steps in kids programming education. Usually, when we talk about kids education of programming we remember just Scratch. But there is plenty of other cool stuff including nice algorithm board games, Scratch of course and Angular Blockly, which looks and behaves like scratch, but makes a huge step further - you can get javascript out of it pretty easily! Nice, isn't it? Check out the amazing presentation of their work here: Create Your Own Hacker Nebula with Angular Blockly


Max Koretski talked about the nature of change detection and how zone.js is used. Frequently people think that zone is part of change detection, which is not completely true. But turning it off will prevent change detection from working. Interesting talk with plenty of presentation coding. Check out the video Can you imagine a future without zones?


Uri Shaked and Dominic Elm prepared amazing well-rehearsed performance (cannot even use a word like a presentation for this action on a stage) about what is machine learning step by step. They have an idea - what would be if a computer could predict what function you want to implement by reading the function signature. They created and educated the neural network model, sourced it from github open source projects and explained it in very tiny detail, keeping talk like a good theatre performance. What's in the end? The neural network tends to have a sense of humor :) see the video on YouTube to enjoy the ending  -  It's Alive! Machine Learning Writes Your Code! 🧠🔮


Tree shakable components - heeeere comes Ivy! Lars Nielsen talked about modules, rendering, components, and tree shaking things. While watching this video, focus on the idea, which Lars tried to bring through the whole talk - how to live in Angular without Modules. Angular Revisited: Tree-shakable Components and Optional NgModules


In parallel with myself, Kamil Mysliwiec was talking about Nest.JS and Angular together. I'm really interested to see this talk. Kamil talks about Nest.JS, what was the main inspiration for it, what benefits it gives, especially when we would like to use full stack development ideas and the same TypeScript language for both UI and backend. Leveraging Angular in Node.js with Nest video has answers.


Later in the evening, we had Vitalii Bobrov from EPAM talked about NgRx and web assembly Running in Parallel: NgRx with WebAssembly, Web Workers and Worklets and even later Deborah Kurata  -  about Collect, Combine and Cache RxJS Streams for User-Friendly Results


The hero of Day 2 keynotes was Matt Podwysocki, who talked about the whole history of RxJs, the first-hand story which is pretty cool and demonstrated some issues with subscriptions by throwing candies into the audience, how it evolved and what could it be. Day 2 Keynote, An async journey by Matt Podwysocki.


Mike Hartington talked about the history of Ionic, their values and things they potentially wanna achieve - better and easier reusable cross-platform code, easier routing. Ionic actually uses Angular router at the moment, which makes the life of cross-platform developers easier. By the way, Ionic is used a lot, check out video Cross Platform with Angular and Ionic 4


Manfred Steyer described principal things in architecture design of monorepo Angular app, useful for those who think about project restructuring or who are at the beginning of a new project and would like to have it done better! Strategic Domain-Driven Design


Nice presentation and a lot of life coding were done by Michael Hladky  -  Operate heavily dynamic UI's with RxJS. The talk gives you a lot of understanding about RxJs, how it operates, and how to even reproduce CQRS pattern on UI. I've seen that guy preparing to the call in a speakers room, listening to some cool British rock music, take a look at the video!


Maarten Tibau showed the under-the-hood side of typescript decorators. Angular people use decorators every day, but only a few of us really understands what is that and what we can achieve by writing own decorators. Really useful and straightforward talk Discover the power of decorators in TypeScript.


Finally, my talk was about Bad Practices and how not to do in Angular. We reviewed things which are very common and talked about how they could be bad for an application and what is a better way to proceed. The big thing here was related to the handling of subscriptions - would we use takeWhile or takeUntil? Or maybe it's better to have async pipes in a template? Other parts were about ANY usage, loops performance and other angular common stuff. Video of presentation: Bad Practices, what NOT to do in Angular


Instead of a conclusion, I'd like to highlight that the conference had 54 speakers and I was not able to cover everyone, so please check out other videos, everyone showed something beautiful, useful and unique, something that contributed to the community and to people minds and hearts! Join https://ngvikings.org/ next time!