Hi, my name is Simon, and I'm here to talk about how I created a custom React Native DevTools plugin framework you can install from NPM and use in your day-to-day work to load the custom plugins, like, for example, Tasked and Query DevTools, so you can use those inside of React Native DevTools. I don't want to basically advertise the tool. I want to show you how I created it, what was needed to make it work. So before we start, let me describe why we need things like this.
So back in the days, there was Flipper, which was basically a different DevTool you could use to, well, work with your React Native applications. Flipper was great because it allowed us to build custom plugins and load them inside of Flipper, so then we could, for example, have Redux DevTools available to be used in day-to-day work. The problem is that Flipper was not great when it comes to stability, and there were some problems with, for example, connection being lost silently between Flipper and the device.
So probably because of that, Flipper was announced as deprecated. So from some time now, we cannot use Flipper anymore because, first of all, it's deprecated, and second, the code necessary to communicate between the device and Flipper is gone from React Native. So effectively, Flipper is dead now. We have React Native DevTools, which are great, which are stable, which offer, well, super experience for developers, but we cannot use any plugins. There is no support for them yet. The work on them is ongoing, but basically we are not there yet.
So we need some temporary solution we can use for this time where there's no official support. And if we don't have any plugins, then we can say we are back at Dark Ages because we need to console log everything, ending up with a huge amount of logs, and then we need to inspect them, go one by one, looking for any problems. And you must admit it's not the best developer experience. So that's exactly why I created Rosanoid, so the custom React Native DevTools plugin framework you can use to create plugins and to load plugins into the aforementioned DevTools.
Comments