Blog post & code samples: https://go.urish.org/injector-trees
Dependency Injection is at the heart of Angular. We don't even think about it too much — we ask for a dependency, we get it. However, once our app grows and we have multiple NgModules, lazy loading and use third party components, things start to get more complex. In this session, you will learn about ElementInjector and ModuleInjector, how they work together, and the two-pass dependency resolution process. Did we mention it is going to be fun? 💉🌲
About Uri Shaked
Uri Shaked is a Google Developer Expert for Web Technologies. He loves combining his passion for the web with his love for hardware electronics and robotics in challenging and amusing IoT projects, which he shares with the world in his blog, as well as travelling around the world and speaking in conferences and meetup. Among his interests are reverse engineering, hardware hacking, neuroscience, playing music and Salsa dancing.
About Kapunahele Wong
Kapunahele helps out on the Angular docs. She likes explaining things and playing with electronics, especially broken ones. She also likes cooking, eating, and dancing the Native Hawaiian hula. She is a based in Richmond, Virginia
How do you debug so easily in VS Code? How can I debug remotely in the cloud or locally in a docker container? What are those key combinations to edit code so quickly? What extensions are the ones I shouldn't code without? Get ready to hit the ground running in this fast-paced, demo-heavy talk that takes you through some of the best and most effective tips and tricks in VS Code. Learn how to setup your environment and customize it the way you like it. We'll also learn how to use Live Share so we can pair program on the same app! You'll walk out with several tips on how to be more efficient with one of the hottest tools on the Web today!
About John Papa
John Papa is a dedicated a father and husband, a Web Developer, and an alumnus of the Google Developer Expert, Microsoft RD and MVP programs. His passions are coding and teaching modern web technologies and enjoying everything Disney with his family. John is a co-host of the Adventures in Angular and Views on Vue podcasts, author of the Angular Style Guide, and many popular Pluralsight courses.
There are tons of resources out there on *how* to upgrade from AngularJS to Angular, but no one ever talks about how to approach such a monumental task - and if you even should. How do you figure out where to start, which path to take, and whether it's even worth it for you or your company to spend the time and money? Should you do a top-down, bottom-up, upgrade shell - or just rage-flip your desk over and rewrite everything in Perl? Should you rewrite your architecture first, or your build process? And how do you show the business side of things that spending hundreds of hours on technical debt is actually worth it - even if you're not adding any functionality?
In this talk, you will learn the WHY and the HOW of each building block of the upgrade process for your application. I find that when teaching (rather than simply presenting information), if you can convey the thought process behind WHY you did something the way you did, as well as the payoff for making that decision, you get a greater understanding, acceptance and application of the student learning.
This is the meta-level talk I wish I had seen a couple of years ago: a toolbox I could use to identify the gaps in our app's architecture and tooling, but also how to balance it against our budget and time constraints. Instead, I just had to throw stuff at the wall and see if it stuck - and try not to get fired along the way. The talk will include a game plan cheat sheet you can work through on your own and show your boss or your teammates.
About Sam Julien
Sam Julien is a Google Developer Expert for Angular, teacher, and full-stack developer. He’s also a Content Engineer for Auth0, the founder of the comprehensive video course UpgradingAngularJS.com, and the co-organiser of Angular Portland. When he’s not coding, you’ll find Sam outside hiking and camping like a good Oregonian.
Many apps can install ngUpgrade and begin rewriting components, but it's not so easy when those components make up a library that is used by several teams to power their production apps. Instead of rewriting everything at once, this talk shares how we first created a common interface with custom elements, and then upgraded one component at a time to Angular Elements.
About Erin Coughlan
Erin is Frontend Engineer working on the Google Analytics Suite where she's built a set of common components shared by 13 teams. Erin's core mission is to help others build stunning apps and meet their business needs by contributing best practices, common infrastructure, and components such as the Angular Material table.
NgRx is a Redux-inspired framework for Angular applications. It manages state and side effects, helping you build applications that are easier to test, strongly typed and more performant; however, these benefits can add complexity. Luckily, there are a set of hard rules and principles that will guide you through these tradeoffs.
About Michael Ryan
Mike is a software engineer at Synapse building user interfaces for industrial Internet of Things applications. He is a Google Developer Expert and a core team member of NgRx, an open source organization building high quality reactive libraries for Angular.
Ivy opens up a whole new world of options for developing Angular applications. Some of these new options include dropping dependency on Zone.js, or developing without dependency injection. Or how about building custom templates or higher order components? See these examples and more in Angular Ivy by Example.
About Jason Aden
Jason is a software engineer at Google, and for the last two years has been a core member of the Angular team. He's spent his time on the Angular team working on standardizing packaging, RxJS improvements, and Router maintenance and upgrade. In his free time Jason enjoys spending time with his wife and four children, CrossFit, and outdoor activities such as hiking and fishing.
You don't need a PhD in Maths, you don't need years of experience, you just need imagination and the willingness to try.
About Asim Hussain
Asim is a developer, trainer, author and speaker with over 16 years experience working for organisations such as the European Space Agency, Google and now Microsoft, where he is a Senior Cloud Developer Advocate.
Traditionally, we've built web apps with little more than a few files scattered around the disk. Then came development servers, and transpilers, and assemblers, and everything was a mess of plugins. This talk walks you through what a build system is, how it helps you organize your software development flow, and what properties to look for in a good build system.
About Martin Probst
Martin is a software engineer at Google, working on TypeScript at Google. He holds a MSc in Software Engineering from HPI in Potsdam, Germany. Before joining the Angular team at Google, he worked at a database startup in the Netherlands, at EMC, at SAP, and as a freelancer. In his free time, he likes to cook and sail, not necessarily at the same time.
It's been two years since NgUpgrade was first introduced, and there are thousands of companies upgrading from AngularJS to Angular, developing new patterns and best practices. Elana has spent the last six months digging deeply into the experience of migration from AngularJS to Angular, talking with developers and companies from all over the community. She will share her insights about the challenges and success that come with the various tools and strategies.
She will cover two new tools recently released, ngMigration Assistant and ngMigration Forum. These tools are designed to improve the migration process and guide Angular developers to a better migration experience. Check out this article to learn more about these awesome new tools.
About Elana Olson
Elana worked on the Angular team at Google to create tools and documentation to support developers migrating from AngularJS to Angular. She is currently studying software engineering at San Jose State University and is pursuing a career in software development and developer advocacy. As a California native, Elana loves exploring the various landscapes through outdoor activities and going on adventures.
Cypress.io has emerged as a strong competitor to Protractor and WebDriver. It has a unique set of features that make it a great choice for end to end testing with Angular. In this session, we will see how to write tests against our Angular apps, and leverage the power of Cypress.io.
About Joe Eames
Joe is a Viking (at heart). By day he is a mild-mannered author for Pluralsight.com. By night he is a mild-mannered organizer of ng-conf. He is a Google Developer Expert in Angular, gives lots of talks & workshops, and loves all things web.
There is no doubt that 2018 is the #YearOfPWA. It’s the year when Progressive Web Apps will get the really broad adoption and recognition by all the involved parties: browser vendors (finally, all the major ones), developers, users. Angular developers are lucky to have some really nice options to automate their PWA’s main functionality exposed by Service Worker API. The first option is 100% native to the Angular and created by the Angular team: Angular Service Worker. The second one is a framework-agnostic library called Workbox.
Both approaches are robust, convenient and unique! Let’s go through the main features of PWA implemented using NGSW vs Workbox and the resulting application lifecycle management. After the session, everyone will give their own answer on what’s easier to start with, which library is simpler to use, which resulting PWA is more convenient to maintain.
About Maxim Salnikov
Maxim Salnikov is Oslo-based Web Full-Stack Engineer, a Google Developer Expert in Web Technologies & IoT, and a Microsoft MVP in Development Technologies. He architects complex web applications since the end of the last century and has extensive experience with all aspects of web platform focusing on the apps managing real-time data from IoT devices and Progressive Web Apps.
Maxim is a founder and active contributor to two conferences: Mobile Era and ngVikings - Nordics’ main conferences for mobile and Angular developers respectively. Also, he leads Norway’s largest meetups dedicated to web front-end and mobile: Angular Oslo, Mobile Meetup, Oslo PWA.
Maxim is passionate about sharing his web platform experience and knowledge with the community. He travels extensively for visiting developers events and speaking/training at conferences and meetups around the world.
Change detection is the key area affecting an application’s performance. It’s where most of the optimization efforts like using OnPush strategy are put. But using optimization strategies without solid understanding of the change detection process is tricky and can cause inconsistent behavior. Also insufficient knowledge often leads to a painful experience when debugging Change Detection errors, like ExpressionChangedAfterItHasBeenChecked. In this talk, I'll use simple concise examples to present the change detection mechanism under the hood. We’ll also take a look at how an existing implementation has been improved in Ivy. By the end of the talk, you’ll have enough knowledge to choose the right optimization technique and even come up with new techniques yourself. What you’ll learn from the talk will also help you debug change detection errors much faster and fix them in a proper way.
About Max Koretskyi
The life of an Angular pull request
The Pull Request is the unit of change and the outcome of the work that goes into Angular. We start with the outcome and look at the processes and milestones that help us achieve that outcome.
About Manu Murthy
Manu leads technical program management for Angular at Google. Manu keeps the big picture in focus and works with cross-functional teams to plan, execute and usher programs through the entire lifecycle.
Did you hear that!? It’s the sound of a blazing-fast Angular Universal application, rocketing it’s way straight to a users' device! Angular Universal promises a solution to all the super hard problems - improved first render performance, search crawler support, and server-client state-transfer… but what does it really look like in the real world?
Let's explore what is actually involved in getting Angular Universal up and running, as we go through some of the lessons learned from moving a big Angular application to the server. Come to unlock the secrets of the universe, as we explore how to launch our Angular apps to Infinity and beyond!
About Craig Spence
Craig is a Tech Lead at Trade Me in New Zealand. He loves building cool things that help teams build cool things! He also loves punk rock, Disney's Frozen, and his cat Cosy.
Is an observable executed synchronously? You might think you know it, most people don't. In this talk, I'll introduce you to the world of schedulers, its secrets and advantages. I will show you how to use them in basic cases, as well as advanced scenarios.
After this session you will master smooth animations, solving complex timing errors and controlling execution context like an expert. And all this with schedulers.
About Michael Hladky
Michael is located in Austria Vienna. He is a certified GoogleDeveloperExpert, trainer developer and consultant in the field of Angular and Ionic. As an active community member, he is the organizer of Angular Vienna and founder and leading head of Angular Austria, a non-profit association to support Angular.
Design systems and pattern libraries help designers and developers to get a common understanding of user interfaces. But even with such tools in place, there's a ton of processes and handovers involved. Each one causing possible friction and information loss. Especially over time. This might lead to new features feeling outdated on release, and screens and mock-ups getting too old too fast.
With our recent move to Angular and Sketch, we were able to automate 70% of our UI development. Helping our developers to focus on the real problems, and reducing the UI review efforts tremendously. Join us and see how we produce a single source of truth for developers and designers, and how we are able to consume this source in our tool of choice.
About Stefan Baumgartner
"Stefan Baumgartner leads the Web experience and Design Ops team at Dynatrace. He writes for Manning, Smashing Magazine and A List Apart and made the Kessel run in less than 12 parsecs.
In his spare time, he organizes ScriptConf and DevOne in Linz, and co-hosts the German language Working Draft podcast. Stefan enjoys Italian food, Belgian beer and British vinyl records.".
About Katrin Freihofner
Katrin works as a DesignOps Engineer. She has experience in both roles - as a UX designer and as a web developer, constantly focusing on cross-team collaboration. Additionally, she is organising the #DevOne developers and ops conference in Linz. She loves being outdoors, traveling the globe and mountain biking.
Nowadays, we build large enterprise applications with Angular. But how to best structure such projects to ensure long-term maintainability and reusability?
This session provides multiple answers to this question. We explore how to split large projects into individually reusable npm packages and how to deploy them through an internal and public registry. As an alternative, we discuss the Monorepo approach that is used successfully by big companies like Google and Facebook and which compensates for some of the disadvantages of npm packages in internal projects.
The use of micro apps is also discussed and implementation options, advantages and disadvantages are investigated. By the end the audience will know the options for architecting enterprise apps.
About Manfred Steyer
Trainer and Consultant with a focus on Angular. Google Developer Expert (GDE) who writes for O'Reilly, the Java Magazine and windows.developer. He also regularly speaks at conferences.
Want to have a glimpse into what the CLI and DevKit have in store in the future? Join Filipe to look at the latest and upcoming features. Go through the concrete situations where Bazel is helpful for small, medium and large projects, and see how you can convert your CLI project to using Bazel today (experimental, many caveats apply!).
About Filipe Silva
Filipe is an Angular Tools core member and a lover of homemade pizza, craft beers and games. He gets very excited about long debugging sessions and using science in cooking. You can usually find him around the Angular tooling issue trackers or petting a nearby dog.
One of the most challenging requirements when building enterprise web applications for financial services is capturing large amounts of information through user input, this information is normally typed in large forms that contain a dozen to hundreds of fields with complex validation logic and multiple dependencies on field's completion. This talk will explain the design behind a framework that fixes it elegantly, using reactive forms, dynamic component loader and GraphQL.
About Juan Stoppa
Juan is a software engineer at Wealth Dynamix where he builds Angular applications in the financial services space. He has spent the last four years architecting the front end and building the next generation of configurable dashboards for the product. Before Wealth Dynamix, he spent four years at Barclays as a Microsoft Dynamics CRM consultant where he led the implementation of AngularJS in their internal CRM system. Outside of work, he loves spending time with his family, playing football and learning other technologies.
Are you experienced with Angular, but you also need to do some backend work? Why don't you choose a framework that has the same terminology and is also offers typescript support? How can these two frameworks integrate with each other, and run on the same server?
About Bo Vandersteene
Bo is a software engineer currently living in Belgium. She likes writing code and solving complex problems. She is passionate about front-end, testing and the latest trends in Computer Science. When not doing geek things, Bo spend some time with her husband and two kids, or fighting fires (she is also a volunteer firefighter).
The main use-case for using dynamic components is when we can decide only in run-time which component is loaded. They’re also the only solution when we want to embed Angular components in non-Angular ones. In many cases, replacing in-template components with dynamic ones is beneficial to performance and code quality. In this talk, we’ll learn how to create and use dynamic components, and discuss several types of usages.
About Shmuela Jacobs
Shmuela Jacobs, Google Developer Expert for Web Technologies, is a consultant, trainer, developer, and community activist. She is the founder of ngGirls and Angular Nights meetup group. During her academic studies (M.Sc. in Information Management Engineering and B.Sc. in Physics) Shmuela had combined her passions of coding and teaching as a software developer, teaching assistant, science museum guide, and researcher. Today she continues to enjoy these activities developing with Angular, sharing her knowledge and experience in meetups and conferences. Shmuela lives in sunny Tel Aviv with her husband, their newly born son, their deaf dog and one-eyed cat.
This talk walks you through how to create dynamic components and custom templates using the view container API and using the NgComponentOutlet or NgTemplateOutlet directives. It demonstrates how to create dynamic components using the brand new feature, Angular Elements. The talk explains the relationship between structural directives, ng-template, the HTML template element and template reference variables and explains terminologies such as host view, embedded view, view container. It also covers using the platform agnostic Renderer service for DOM access.
About Ashnita Bali
About Marcin Ryzycki
Marcin is a lead front-end developer at Black Swan, a big-data company. Enjoying web development since the end of the last century, he had a chance to work with back-end, DevOps and more recently, with front-end technologies. He loves the concept of browser as a development platform and has a huge crush on Angular. When not by the desk, he enjoys a good read and a fast ride on the bike.
Google Apps Script provides a layer of abstraction for interacting with Google APIs, from Gmail to Google Sheets and Calendar. Angular provides a complete client-side solution for web applications. In this talk, I'll show you how together, with Apps Script and Angular, you can build powerful web apps to automate tasks in minutes.
About Grant Timmerman
Grant Timmerman is an engineer at Google working on G Suite APIs. He loves Node, open source, and plays the alto saxophone in his spare time.
Most Angular applications need to customize their display, features and behaviour depending on multiple and complex criteria serving different use cases like white-labeling, A/B testing or progressive deployment.
In this talk, I will show you how to architect your Angular apps by providing loosely coupled and interchangeable components that will allow you or even your applications’ end-users to customize the application experience dynamically by simple configuration (and without any switch/case).
About Younes Jaaidi
5 years ago and after 6 years of experience in web development and web security, Younes decided to create Wishtack. In addition to developing the Wishtack app, he animates trainings around France and Europe and helps Wishtack’s clients (including startups and big institutions like banks or research centres) through coaching. During his coachings & trainings, he uses his cross-dev-and-security skills to cover subjects like Angular, Node, Python, eXtreme Programming, ReST APIs, Architecture and Security...
In his free time, he animates Wishtack’s technical blog https://blog.wishtack.com, creates and shares some open-source projects on GitHub, he participates in open-source projects and meetups and online talks like Angular Air.
About Igor Minar
Igor is a software engineer at Google. He is a lead on the Angular project, practitioner of test driven development, open source enthusiast, hacker. In his free time, Igor enjoys spending time with his wife and two kids, doing outdoor activities (including but not limited to sports, gardening and building retaining walls).
Web, Mobile & Desktop are the 3 standard platforms we develop for today especially in the Enterprise world. Each platform has its own unique features and needs. When faced with requirements where we need to develop one application for all 3, it can be a nightmare to get it right. How do you share code effectively? How do we solve a white labelling requirement? In this talk, I will show you based on a real-world Enterprise Healthcare application on how Angular can be the glue for such a monumental task where we will end up with a Mobile Solution, A Web Responsive Solution as well as a Desktop solution with electron while using 100% the same code base.
About Sani Yusuf
Sani is the founder of HAIBRID, a London based startup that uses Ionic to create innovative mobile solutions. Sani also co-manages the Ionic UK community in UK and has done some Ionic stuff spanning 3 continents. He has also done some cool stuff with companies like Sworkit, Microsoft, Huddlebuy & Anritsu and actively contributes to the Ionic open source community.
In this talk, we show the correct way to construct Angular components by deconstructing a number of existing components. Through examples that categorise as "the good", "the bad" and "the ugly", we will look at common pitfalls and how you can avoid them. This way we will end up with simple, testable and highly reusable components. Join us on this adventure!
About Ana Cidre
Ana Cidre is a developer advocate and engineer at Ultimate Angular. However, she is not your usual software developer, as she has a degree in Fine Arts and a Master in International Business Economics and Management. She has been named Women Techmaker Lead by Google, is the founder of “GalsTech”, a local group for women in tech in Galicia (Spain), and an organiser of the GDG Vigo chapter.
About Sherry List
For the past 15 years, Sherry has worked with a variety of web technologies and is currently focused on Angular. She lives in beautiful Copenhagen, where she works as a front-end lead developer at Nordea bank. Apart from her everyday job, she is a co-organizer of the ngVikings conference, as well as some Meetups groups, such as ngCopenhagen and GDG Copenhagen. She loves animals and supports various non-profit animal protection organizations.
The theory of Angular Ivy
This talk will provide an understanding of the core principles Ivy is built around. Look at the instruction architecture, component factories and injection, and the locality principle. You will leave the talk with the basics you need to get started with Ivy.
About Alex Rickabaugh
Alex Rickabaugh is a software engineer at Google, and for the last three years has been a core member of the Angular team. Throughout his time on Angular, Alex has worked on the Service Worker implementation for Progressive Web Apps, server-side rendering support, and a rewrite of the HTTP API. Currently he works on the Angular Compiler, getting it ready for the next generation architecture, Angular Ivy.
Geolocation and Augmented Reality (WebXR) are tools we can use to create engaging experiences in mobile web but great user experiences require your apps to be fast. Angular makes it easy to write reusable components that integrate such experiences in a seamless way. Join me as I explore the capabilities of Geolocation and WebXR APIs and how they can enrich your applications while writing reusable and performant Angular components.
About Aysegul Yonet
Aysegul is a Senior Angular Engineer, focussing on Angular, Data Visualization and WebXR. She is a Developer Expert at Google for Web Technologies/Angular and an active conference speaker. She previously worked as Senior Software Engineer at Nrwl.io and Autodesk Play, a 3D and VR authoring tool and A360 Viewer and A360 Drive. She enjoys teaching at a variety of non-profit organizations aiming to increase diversity in the software industry..
With the new rendering engine (Ivy) we’ve finally been able to work on a full revamp of i18n (internationalization) for Angular. Translations are now handled at runtime which brings a lot of benefits: one bundle for all languages, service for code translations…
In this talk, we will review the design choices, the changes and the benefits of this new approach.
About Olivier Combe
Olivier is a member of the Angular Core team and works on i18n. He is a passionate front-end engineer who loves interacting with the community by doing open source projects (ocLazyLoad, ngx-translate…), giving talks or just chatting on Twitter and Slack.