Although Around25's knowledge sharing center (read slack thread) picked up quite a few resources in the past two months, for the present edition of #thismonth I chose to focus solely on React Native.
After becoming big fans of React these past years and used it extensively inside the company for both commercial and internal projects, we tried our hand at React Native too. And never looked back. This explains why we're having an internship on React Native coming up this summer.
I built multiple apps using React Native and I can tell you: if you do it right, it's
The last one is an e-commerce app for one of the big players in Middle East. It hits around 40k users daily and on top of constantly trying to overcome the usual e-commerce UX issues, we have to make sure our app looks and feels native. No jaggy animations, no slow rendering or poor performance. Because it can happen. Which doesn't mean it can't be avoided. You just have to keep being mindful about component design and architectural decisions. I mean, just like with any other piece of software.
In terms of the possibilities React Native offers and to get your appetite rolling, here's a Twitter thread:
React Native Community: What did you build with React Native in the last month? Show us some videos of your apps in the replies! 👷♀️👷♂️🏗— React Native (@reactnative) April 26, 2019
I'm trying to keep a natural flow for this issue. So it is starting with React, then Redux, and then goes to some React Native case studies (if you're a complete beginner, take a look at my colleague Alex's intro article here).
Let's jump in.
This couldn't be a proper listicle about React without Dan Abramov's touch.
In a previous issue, I was mentioning Sid's series on writing good component API and I was saying that it should be a must read in any team working with React. I still support that. I really recommend picking it up and distributing it across your team. Or if you're by yourself, still go ahead and read it. I promise your component-writing-brain will thank you afterwards.
Now, back to Abramov's guide. You could get to the majority of the conclusions there via trial & error and good reasoning, but he's there to spare us the effort. And as always, the article is as straightforward as it gets.
As you start using React in fully-fledged projects, having Redux or some other sort of state management system is imminent. It's always kind of a struggle to wrap your head around it.
I've come across many articles that had attempts at explaining Redux, but this one is by far one of the easiest to grasp. My advice is to go through it even if you are comfortable with implementing the Redux architecture and then bookmark it for whenever you need to explain Redux to someone.
The trade-off principle is something I internalized fairly quickly during my college years. You get something, you lose something. When something increases, something else decreases. It all adds up to 100. You got the point.
Same thing with React Native. It's a really powerful framework. Start a React Native project and you enter a mobile development environment that's significantly faster than usual. You write once, for both iOS and Android.
But it definitely has its drawbacks. Some of them are tackled in the article above (case study no.1) in a manner that divides problems into actual problems and not really problems.
Case study no.2
Some real hands-on experience from someone who started with RN from scratch. The learning curve isn't as steep as you might think. But as always, there will be some bumps and bruises along the way.
See you next month!
And if you're in Cluj-Napoca this summer, willing to learn React Native and give up on music festivals, I'd be happy to meet you at our internship. More info here.