A few of us at MojoTech recently attended the 2016 React Europe conference in Paris, France. It was a great opportunity to hear from and interact with developers all around the world who are building things with React. Let me share with you some of my favorite highlights from the conference.
TL;DR? Here's our React Europe YouTube playlist for you.
React/Redux Workshop with Dan Abramov and Andrew Clark
The creators of Redux hosted a two-day workshop before the conference. They had us build redux from scratch in order to see how its API works, and they also covered some best practices for building apps with React and Redux. Best of all, Dan surprised us at the conference with a free video series covering most of the content of the workshop, as well as some of the stuff we didn't get to! Check it out at egghead.io/redux-2.
Christopher Chedeau is very involved with open source work at Facebook, with projects like React, React Native, mention-bot, and others. He talks about the typical process of open sourcing a library by stripping dependencies, making a website, and writing a blog post. But how do you get users to notice and use your project?
Engage with the community on GitHub, StackOverflow, Discord, etc.
The platform doesn't matter, just pick a couple!
Ask your users, What did you struggle with?
People often don't express criticisms, so ask them directly!
Also ask, What cool stuff are you building?
Make the community feel active and promote their projects by writing a community-roundup post!
We learn that successfully open sourcing a project takes more work than just implementing it — promoting it and growing the community is just as valuable.
While this talk wasn't about React in particular, it was one of my favorites at the conference. At a high-level Cheng Lou discusses the costs and benefits of abstraction, and this can be applied to all aspects of software development. Creating an abstraction incurs some kind of cost, but gives you more power. In terms of frameworks and libraries, a framework gives you a lot of power to cover many different use cases (at a cost), while libraries can focus on select use cases.
This talk takes a look at the cost of abstraction with popular tools like React, Angular, Ember, Grunt, Gulp, Webpack, and others.
Max and Nik announced an awesome new tool for developing React components, called Carte Blanche. According to the docs, it's "an isolated development space with integrated fuzz testing for your components. See them individually, explore them in different states and quickly and confidently develop them."
With just a few lines of code, Carte Blanche hooks into your build system so there is no need to write and maintain custom component variations (as you would with something like Storybook). You can also quickly randomize component prop values to help find edge cases.
This talk changes the perspective of developing UIs by introducing a visual programming environment in the browser using open source tools like React, Flow, Redux, ImmutableJS, Nuclide, react-dnd, react-art, and others. This experimental tool from Facebook allows you to prototype UI components by chaining together different transformations (similar to Yahoo! Pipes, RIP).
In his example, he builds a real-time bar chart by fetching data from an API, extracting useful information, mapping it to x/y values, and rendering it to a chart, without writing more than a few lines of code!
Ken Wheeler briefly showed off Victory, a cross-platform charting library for React and React-Native. I had originally heard of Victory at another development conference in Boston, and we have actually used the library for some of our projects at MojoTech. The library is great for composing charts declaratively, and their interactive docs make it easy to get started.
Preethi shows us how she switched jobs to become a Software Engineer in a short period of time, through passion, dedication, and support. It takes passion to make this transition, and this can come from an interest in building stuff, solving hard problems, expressing creativity, etc. It's also important to persevere through the hurdles that are bound to come up, and to have some kind of support system to help you along the way.
She explains how experienced software engineers can offer a lot to newcomers, through mentoring, creating "Beginner Friendly" issues, or just talking about their experiences day-to-day.