| Doing a hybrid app in the way that the articles describe sounds like a recipe for tremendous complexity. One line in one of the linked articles that really struck me was "Often times, it is not clear whether code should be written in native or React Native. Naturally, an engineer will often choose the platform that they are more comfortable which can lead to unideal code." Without a top down vision of the proper role for React Native vs native code, how could anyone possibly expect things to go well? Even within React Native there are a lot of existing "boundaries" where native code is used in a way that allows the general contracts adopted by React to be used without worrying much about the implementation details. The quote above suggests that Airbnb expected a cohesive and sensible approach to emerge, when clearly there were (as the articles mention) many developers who were strongly opposed to React Native from the beginning. While it's not necessarily the case, it seems that if there was debate about where "models" should live, there was really a need for a CTO to simply make that call and allow the rest of the team to coordinate around the tradeoffs associated with the decision. Without that, the battle will be fought with every pull request and other social and organizational factors (like bro culture, intimidation, etc.) will dominate over the technical merits of the decision. I love Airbnb, and use the app extensively both as a host and as a traveler. It's not clear why it ever seemed sensible to go down a "hybrid" path. The app has pictures, scrolling listings, and photo views. I'd be curious to read an article that discussed very frankly the decision to go hybrid and where the lines were drawn that turned out to be problematic. |