I had an opportunity to attended React Native EU 2017 conference last month. This 2 days long event took place in my hometown Wrocław, Poland. It was a very interesting experience for me because I’m a frontend developer. I don’t have any working experience with React Native and the only mobile project I worked on was built using Apache Cordova. Anyway, I found many of the talks very attractive and I wanted to highlight some of them in this post.
When “Good Enough” Just Isn’t Good Enough – Jani Eväkallio
He started with the history of art and by finding similarities to programming switched to mobile and web development. He talked about how to design your app by putting the user first. Shipping your product is just the beginning, then you need to iterate and improve constantly.
Going Over Speed The Speed Limit – Tal Kol
All mobile apps at Wix were migrated to React Native. It took them 2 years to accomplish this complex task. Tal made it very clear that there are some apps that will always perform and look better as native apps. You can always build a prototype in both technologies and do Pepsi Challenge to compare. The asynchronicity of React Native was a conscious decision and an important feature, but it leads to technical difficulties when dealing with page transitions or scrolling. Fortunately, there are ways to overcome those limitations.
Composable Native APIs – Andre Staltz
React is declarative by design, but React Native in many cases doesn’t follow this pattern. It comes from the fact that they wrap mobile APIs which often were created using imperative style. Andre presented how this can be changed using bottom-up design making those libraries reusable and composable.
Integrating React Native into an existing native codebase – Eloy Durán
Eloy presented how they created a hybrid app at Artsy. React Native was integrated as an external CocoaPods package into a preexisting native app in a way where the base application knows nothing about RN. It helped to de-silo people and lead to faster on-boarding.
Building a Product with React Native – Martin Konicek
Shipping code at Facebook is pretty advanced but also at the same time very interesting. Lesson learned: when you rewrite feature, try to keep design unchanged to verify if the technology doesn’t impact negatively. Martin who develops frameworks on a daily basis talked about his experience where he had to port a feature from HTML to RN.
Scaling Mobile Development with React Native – Aaron Greenwald
Wix has over 40 React Native developers working on one big app. Aaron shared how to scale your process to work effectively. They have independent teams called companies which are grouped around business features. Every company is responsible to ship their product to all supported platforms. There are also guilds which connect together people sharing the same role. Work time is split between companies and companies 80/20 rule. Each team decides if that would be one day a week, every 5th week or something else. They also have a development core team which owns all open source projects.
Offline first applications in React Native done well – Adrien Thiery
Adrien showed a few patterns that can be used to make sure that we have always something to show to the users when the application goes offline. He also listed some good tools like redux-offline or redux-persist which can be used to achieve this goal.
You can watch all talks on the Callstack’s blog: