Wednesday, April 03
Gathering and Registration
09:30 - 10:30
Opening Session - Bruce Lawson / Main Hall
10:30 - 11:00
11:00 - 11:40
Keynote Speaker - Kyle Simpson - Keep Betting On JavaScript / Main Hall
Brendan Eich's famous quip, "Always bet on JavaScript", revels in JS's history of naysayers predicting that we'd eventually reach a point where JS couldn't grow to meet the demands of modern development; it turns out those have always been bad bets. It's safe to say JS is no longer trying to prove itself. It has arrived. But where is it headed, and what does that mean for us.
Break
11:40 - 12:00
12:00 - 12:40
Una Kravetz - How to Be #Extra with CSS Houdini / Main Hall
CSS Houdini is going to change the way we write CSS! It gives developers the power to tell the browser how to read and parse CSS, which is really exciting! In this talk, we’ll go through the various browser upcoming APIs and how to use them today to start experimenting with Houdini.
12:50 - 13:30
Michel Weststrate - Modern React and the case for Reactive State Management / Main Hall
React has been evolving fast in the last year. Dependency injection through Context. A class free code-base thanks to hooks. And even more impressive features in the form of Concurrent React are in the pipeline. What does this mean for the apps we write from now on? Is there still a place for state management libraries like MobX or Redux? Join this talk to find out how recent developments will impact the code-bases of tomorrow.
Lunch
13:30 - 14:30
14:30 - 15:10
Opher Vishnia - Managing animations (sanely) in (insanely) complex apps
/ Main Hall
So you’re done writing the core of your app. It got pretty hairy but you pulled through. You abstracted the business logic, broke down everything into components and mastered the flow of your app state. Good job! Go get yourself a victory cookie.
Oh wait, you can’t, because a legion of designers and motion artists are headed your way chanting something about “storyboards” and “microinteractions”.
How will that even fit in with your beautiful architecture?
Unlike state changes which can be instantaneous, animations inherently take time to complete - and that’s a big problem. In this talk we’ll tackle the challenges of adding animations to apps with complex state management. We’ll learn how to orchestrate animations across multiple components while tying it neat and tidy to the app state while working with frameworks like React, Vue and Angular.
Julien Benchetrit - DIY Components:
The Way To Go / Main Hall
15:20 - 16:00
You've been given a design which is going to require a complex dropdown menu. You would've liked to save time and use a <select> tag but it's missing some features. Do you use a component library or do you courageously build your own component? We'll look into why the DIY route, no matter how challenging, is almost always the right choice. We'll also look into how to plan and build all the crucial features (UX, keyboard handling, styling, accessibility, testing, etc) in a reusable way.
Break
16:00 - 16:20
Netta Bondy - Like A Surgeon - Dissecting a completely Functional -Reactive JavaScript app for the very first time / Main Hall
16:20 - 17:00
Today we have the ability to write fully Functional-Reactive code in JavaScript, using RxJS. However, in our day-to-day life we often use RxJS alongside other libraries and patterns that make our life easier, but also distance us from pure Functional-Reactive Programming (FRP). What would an app that has been written completely in RxJS, and in-line with the principles of FRP, look like?
In this talk we will examine such an app, and use it to understand what truly functional-reactive code in JavaScript looks like, and what are the principles that underlie it.
17:10 - 17:50
Lior Meduel & Arnon Nir - Master your lists rendering / Main Hall
At monday.com, our product is built of lists with varying degrees of complexities. While scaling our infrastructure to handle millions of users worldwide, we were forced to dive into the core of lists to find creative solutions.
We want to demonstrate how we handle complex lists of items, and what challenges we’ve tackled in terms of performance and modelling. We will cover DOM comparison algorithms, and how keys in React have a significant influence on performance. We'll explore the concept of windowing as a solution when lists become too large for the DOM to handle, and other advanced use-cases and solutions. All the examples will be backed up by performance measurement tools, methods, and results.
Break
17:50 - 18:10
Shmuela Jacobs - Reactive Powered: RxJS with Angular Forms
18:10 - 18:50
Angular’s Reactive Forms module gives us a lot of control and flexibility to easily build and define our forms. While looking at async data and form lifecycle events as streams, we can leverage the power of RxJS to react to these events. Presenting a non-trivial custom form control, Shmuela will show how she uses Observables when creating the form, reacting to value and state changes, and validating the input.