In my last post, I talked a little bit about React Native. Today, I'm here for a little rant about what I don't like about RN (or the reasons I will probably not use it again). These reasons may be somewhat biased towards how HTML and CSS work on the Web, but it reflects my opinion.

Let's get right into it:

Styling is a mess in React. This is the main problem I have with React. I love how it allows to create dynamic styles (using code to modify the styles) for the different components, however, I think it should be easier to apply the styles. For example, if there is two images in a view, it is required to go to both images and create a style property with the style we want for the image. This is were in my opinion, React's styles could be better, something like CSS where you can reference multiple elements/components with a single rule-set, and specifying the affected elements much easier. I know that CSS can get messy really fast, however, if done smart and modular, it offers an easier way to style the elements, compared to RN, even though it does not allow those "dynamic styles".

One other problem was, as I mentioned in the other post, that I structured my project following a guide on how to organize a RN project. This is made sense in the beginning, because I wanted to have the app organized, for future development, but it made me waste too much time organizing files, instead of actually programming the app. The way it is organized, separates everything into different files, and for someone getting into RN, I think its a daunting task to organize it all. I understand that this allows to have kind of MVC style app, but for a first app is not good. Managing all the callbacks from the different components, gets confusing really fast.

Finally, I lost some interest in the app I was going to create. I wanted to create it using RN, to have a standalone app, with the bonus of having it be cross-platform. However, the idea required me to create a custom list-like component, with a group of priority items locked on top of the list. I managed to create half of the component, allowing the user to drag the list items, but it's missing the drop part. One of the reasons I found very difficult to create this was because the items were lagging behind the drag, due to having Developer Mode active on the app.

Conclusion

Even though I have these problems, I recognize that React has some good features, like the Hot Reloading that I discussed in the other post, which is super fast. However, this is not enough keep me using React. Maybe in the future, the styling will change, and I can take it for another spin.

Thanks for wasting your time (seriously, it was for sure a waste of time) reading my post, and if you liked this post or have any question, please hit me up on twitter @AndreBaltazar.