Last updated: 16 days ago
Since 2015, React Native has been promoted as an option to build mobile applications when the objective is writing the code once and deploying it to any platform seamlessly. This talk is a compilation of experiences in real projects with real clients, a wealth of code on different repos, long nights, discussions, fights, trials and errors, successful attempts, spikes and ideas that I want to share with other people. After this learning process, I felt the responsibility to share this knowledge since it is not a straightforward path to follow and the risks are plenty. In a few words, it is therapy (full of experience) to alleviate some pains upon developing React Native mobile applications on different scenarios. Furthermore, this talk intends to show real scenarios where React Native by itself is not enough. Where instead, you would have to bridge it with native code. This bridge regards security both on data and on application side while still taking into consideration user experience and dealing with complex features and strange/sudden requirements. Additionally, it provides several criteria to choose the right option wisely (React Native solo, React Native + native code or native code solo) from the very beginning of the project and strategies to pivot in case the decision was not the correct at the start. For an iOS developer this talk is pretty useful since there are situations where developing for iOS is not enough due to different reasons. Then, Android appears in the scene. Architecturing and developing a mobile app with React Native looks easy, but what happens when there are no JS libraries to accomplish a specific/sudden/crazy/security requirement? How can you explain to the client that after six months of smooth work, all code needs to be thrown away and the project should start over again?