It’s 4:45pm on Friday the 13th. I’m at Chain React, a conference about React Native, and the speaker is discussing either React Native or tech in general. He’s talking about how us developers should treat coding as an art, comparing Leonardo Da Vinci’s masterpieces to modern software.
While I kept smiling after each slide (since I couldn’t agree more), I was creating in my mind a brief lapse of every highlight I took from this great conference.
I already wrote some quick thoughts about this experience but I would like to dive into a deeper reflection and share some interesting points.
First off: the conference
I cannot emphasize how well this conference was organized. The team of people leading the event were friendly, dedicated and wanted everyone to have a great time.
In between keynotes there was literally no downtime, which meant the audience was kept immersed without a second to even get coffee outside. The venue was great for the number of devs and the food was extremely well thought out. Vegan alternatives for breakfast, amazing lunch and to end the day, drinks and appetizers.
Registration was flawless and it seemed that there was a whole other universe on Twitter with discussions and comments from attendees (#ChainReact). Lastly, the line-up of speakers was top notch. These are not people making React Native apps. These are people that are either actively (and immensely) contributing to the community or making decisions of how the framework should evolve.
React Native and The Hybrid State
What does hybrid for mobile mean in 2018? Well, certainly not unstable or hacky.
As stated on my blog, I was losing hope for React Native but was pleasantly surprised by the number of cool things that are happening right now.
Some people believe hybrid is only a bridge between native implementation and a wrapper built to interact with it, and they are not wrong. BUT…
React Native is even more than that. You can have a mixed state between shared implementation for a view or component and then, use your favourite Swift library to add some spice.
Things like augmented reality can be achieved now with ARCore and ARKit wrappers. For the ones that cannot let go of SVGs (and with good reason), Ori Harel shows us how this is now possible in React Native and react-native-svg in his keynote presentation. And for the ones pushing for better tests in general, Detox proved it was a mature option to automate these flows.
I guess my point is that hybrid is not really hybrid anymore. React Native and their friends are pushing hard to seamlessly attach it to the native implementation of either iOS and Android, and the effect will be better performance, less code (eventually) and much richer experiences for the user.
Why isn’t React Native dead yet?
This is a question I often get asked, and one that ask myself in order to get some balance.
I would say there are still big players betting on React Native to become a solution for writing a big chunk of business logic for an app. Players are also leaving, but new ones are entering.
These believers keep these conferences nurtured and develop awesome open source libraries.
On the other hand, the community is even more important, since we as developers improve these libraries with feedback and make new ones. I would highlight how this is a very unique community since it has flavours from more experienced developers (mostly native iOS/Android people), and the passion of young energetic engineers. So, things get balanced by default.
Should we keep betting for React Native?
Well, it depends where you’re coming from.
1. Is React Native your first dev experience or attempt to build an app? If this is the case, you’re fresh into the framework and development in general. Get the fundamentals and understand how React Native works behind the scenes. By the 3rd or 4th app, start visiting Github repositories with the libraries you use the most and start contributing to discussions and questions people ask.
2. Are you coming from the web development world? The first thought here is that since React Native uses the React core library, they will be similar. OK, yes. They are, but there’s a long way to go. One practical thing to do is to constantly be thinking and finding ways to optimize your coding between web and mobile (Robert Scarano’s keynote in Chain React was an example of this). Write about it and share it with us all.
3. Are you coming from the mobile native world? React Native seems like cheating if you do iOS or Android apps, which leads to a narrow-minded opinion about the framework (just talk to the 2016 version of myself). I would say, first keep your mind open since hybrid will not be hybrid anymore in 2019. We as mobile developers better understand the native framework so our place is to contribute to formal/informal discussions about how React Native should move forward.
Finally, just recently the React Native team opened a repo for discussions and proposals for React Native. Pretty good if you’re reading this last point!
Thanks for reading and thanks to Two Tall Totems for letting me take part in this awesome conference. See you next year!
Felipe Pena is a Lead Mobile Developer who loves music, reading and spending time with his wife and daughter.
For more of his insights, you can check out Part 1, 2 and 3 of ‘The Most Difficult Project I’ve Ever Worked On’ in our Confessions of a Developer series.