React.Amsterdam 2018

On Friday the 13th (oeh) I visited React Amsterdam. After arriving at the Amsterdam Central Station I only had to wait a few minutes for the React Amsterdam Ferry to arrive. Registering went pretty smoothly. soon the first presentations were about to start and as a mobile developer I focused on the React Native track.

Recoil

Leland Richardson, a former Airbnb employee and now Google employee, talked about Cross-Language React and how the React paradigm can be used in other fields such as native mobile development.

React’s paradigm forces the developer to create declarative (as opposed to imperative) components. This declarative approach is something Leland tried to prototype in Github (https://github.com/lelandrichardson/recoil) as part of a native mobile application. Recoil has a simple DSL, for example to insert an image all you have to type is:

h(::Image, “0”, ImageProps(
style = styles.child + styles.red + styles.transform,
source = ImageSource(uri = “https://unsplash.it/80/80?image=456")
))

Even though it is a step in the right direction I feel the approach could be similar to that of a Android library called Anko (https://github.com/Kotlin/anko). Anko uses a very straightforward DSL with a declarative (UI) declaration.
An approach similar to that of Anko could look like the code block below:

imageView {
style = styles.child + styles.red + styles.transform
source = ImageSource(uri = "https://unsplash.it/80/80?image=456")
}

Anko is already powerful on its own. It is very easily extendable and already contains all of the native components. With Recoil these native elements have to be redefined, along with all their native attributes, and fit into the framework.

React Navigation

Next up was Brent Vatne with React Navigation. After explaining the basics and common use cases he presented plans for 2.0 and its extensibility for 3rd party navigators. Some of the examples included shared elements, transitions and a bottom bar. This results in a generic way to extend the react-navigation library.

AR + VR

Nader Dabit gave a very interesting talk about VR + AR. Instead of using a go to solution such as Unity, ARKit or ARCore, Nader used Viro for cross platform React based VR and AR. In a declarative way you can easily render and move things around in the scene.

WIX

Another interesting talk was given by two employees from WIX with regards to their continuous workflow. Even though they have up to 40 developers working on the WIX application they managed to set-up a straightforward CI solution. By separating their app into logical modules and using Teamcity with an internal NPM the result is an almost fully tested app.

Smart home

The last React Native talk was by Vladimir Novick regarding controlling smart homes. He created a very nifty React Native library to control (for now) 3 different brands (Philips, Wemo and Magic Home) of lights. By using a graphql server he can very easily change the state or light/hue colors of his lamps.

All in all a very informative conference and must say: well-organised!