My original goal was not learning React Native. I was just hoping to get better at JavaScript, and React seemed like a good way to do it. Then our mobile team was shorthanded, and when I looked at one of their React Native Github repos, it looked familiar enough to jump in and try to help out.
One year later, and I would say 60 percent of my time is spent building React Native apps.
It’s definitely been a learning curve, but thanks to the way Facebook structured React and React Native, it’s possible to get started with little more than an understanding of HTML. Pretty quickly you’ll build up your JavaScript skills, and then you can go deeper into React and React Native production. It’s been extremely gratifying to see how fast I could not just pick it up, but actually make meaningful contributions to the way we build apps with React Native.
If you’re thinking of expanding your JavaScript skills, I highly recommend you learn Facebook’s React. Not only is it basically tailor-made to be easy for frontend devs to understand, it also makes it so much easier to learn React Native, allowing you to move easily between web and mobile development. Here’s how I got started, and what I’ve learned.
Wanting to learn JavaScript, and deciding to learn React JS
Frontend developer may be a weird term that’s ballooned to encompass all kinds of different skills, but I was a frontend developer in the classic sense — mostly doing HTML and CSS work. I had spent a little time on a Backbone project, but my JavaScript experience was pretty lightweight. A couple years ago, I decided I wanted to learn more JavaScript, just to buoy my own skills and be able to do more fancy UI work.
“It’s surreal, and pretty cool, to be able to call myself a mobile dev now — I always thought that would be too big of an undertaking.”
At the time, React had really bubbled to the top of JavaScript frameworks. The ecosystem had grown fast, there were a lot of Facebook React tutorials, components and other resources available. We were just starting a test run building in React Native for Android. It seemed like a logical place to start.
One of our developers, Ben Linton, helped me get started with React initially, just letting me look over his shoulder. I jumped in on the stuff I knew and understood. React uses JSX, which renders as HTML when the page is compiled. It’s not exactly like HTML, but it is close enough that I could work in it without much training. Over time, I started learning the JavaScript functionality, and began tackling whole projects, not just parts.
Getting started with React Native by finding the similarities to React
We didn’t jump on the React Native bandwagon right away. The mobile team sat on the sidelines and poked around and, once it seemed stable, decided to dig in and do it right. Today, pretty much our whole mobile team works in a React Native stack.
I only got involved with learning React Native because I was sitting in a staffing meeting and heard the mobile team was swamped. I peeked at the source code for a React Native project our team was working on in GitHub, and it looked super familiar, enough that I could make sense of it. I raised my hand and said I could help out, I just needed some room to learn the nuances.
The core of React is effectively the same, whether it’s the original web version of React Native. Someone who understands one can look at the other, and it will look completely familiar. The core functionality that attracted people to the framework is still there.
The other upside is that they both work in a very Lego block-like fashion. Both React and React Native rely on the idea of building components and stacking them up into a complete product. React Native comes with lots of ready-made components to complement the custom ones you build. And the community has added even more functionality by building open-source components that fill in a lot of the gaps the built-in set of React Native components had. Now if you need a video component or a media player, you can generally find a module that you can plugin. You may have to tweak the code a bit, but in theory, you shouldn’t have to. And as the ecosystem advances and offers more tools, the odds of finding something great that works right out of the box are increasing.
That benefits both seasoned mobile devs and rookies like me. From my perspective, it makes me a lot more effective than I could be otherwise. And from the perspective of our mobile devs like Ed and Quinn, it’s still possible to build something native when you need to. Much like React, whatever your comfort level, you can still have a positive impact on React Native projects.
The best part is that React Native examples are so close to React examples, you can get better at both by working in one. So whether I’m staffed on mobile or web projects, I’m learning broader React skills.