Audrey Downey - Designer full-stack developer
back to blogDevlog

React Native: First Impressions

#devlog#react-native
React Native: First Impressions

As I casually browsed through YouTubeā€™s vast landscape of coding tutorials and tech discussions, React Native made a recurring appearance. Devs from various corners of the internet spoke about it, each sharing a sentiment that hovered somewhere between intrigue and reservation. What struck me as unusual was the absence of extreme opinions ā€“ no overwhelming cheers, nor resounding jeers. It was an enigma, acknowledged by many, yet truly understood by only a few.

ā€œEasy to work with,ā€ they said. But the air carried a peculiar weight ā€“ a subtle lack of genuine enjoyment echoed in the narratives. It was a paradox, and it piqued my interest.

Itā€™s with these ideas that I delved headfirst into exploring React Native, in the pursuit of completing part 10 of the Full-Stack Open Course Iā€™m currently studying. Hereā€™s a summary of my initial impressions:

Hereā€™s what the Project looks like so far:

As Iā€™m writing this article, Iā€™ve not yet completed the part, but hereā€™s what Iā€™ve made so far:

Rate Repository App

Itā€™s pretty simple; it queries repositories from an external API and features them in a list. Thereā€™s also a secure JWT token authentication function.

My Impressions

React Native is still new to me, and Iā€™ll need to put a lot more time working with it to really feel like I get a good grasp of it, but here are my first impressions:

šŸ’™ Here are some of the things Iā€™ve liked so far:

  1. Itā€™s built on top of React: Making it intuitive and easy to understand for developers coming from a React background.
  2. Great Tools & Libraries: A lot of popular react libraries and tools are also available for the React Native ecosystem. In my case, some of those for me are: Tailwind, Jest & Lucide Icons.
  3. Great API with great documentation: Finding the information I needed was very smooth and definitely contributed positively to the dev experience.

āŒ Here are some of the things Iā€™ve not liked as much:

  1. Problems with making Tailwind work: I spent a lot of time trying to make Tailwind work with the application without success. For a while, I almost made it work, but the Tailwind code wasnā€™t getting properly compiled, and I couldnā€™t use the tailwind.config.js variables, despite following the instructions.

  2. Debugging can be really tricky: Error messages given by the compiler are ambiguous; itā€™s often been really difficult to figure out where the problems were happening. Maybe thatā€™s because I got so used to using Typescript over the past year? At the beginning of the project, I also didnā€™t manage to set up the React Native Debugger to work with my remote development environment (I wanted to develop using my physical iOS phone rather than an emulator).

    While those problems could maybe have been solved given a bit more time, itā€™s undeniable thereā€™s a level of extra complexity compared to web development.

  3. Flexbox Gap does not work: I know thatā€™s small, but it really annoyed me a lot while styling.

Conclusion

React Native seems to me like a great tool, and I think the fact that itā€™s built on top of React makes it much easier to learn for anyone who knows React. Nonetheless, I definitely personally donā€™t find it as enjoyable as developing for the web. My next personal project is probably not going to be a React Native App, but Iā€™d be okay working with it again in the future.

Three phones with nature