Really Nerdy React Native Rampage Now
In this article, I will completely rant out about React-Native. I basically do this for myself as note-keeping; instead of losing track, I will keep all stuff ordered and neat in this article. I will provide links to interesting material so that you can learn it with me!
Hi, I'm Wijnand, and I am a nomadic entrepreneur that is studying and working on the move. I have a startup called Travel Life Movement, and recently I went completely nuts about React and React native.
Do you want to know why? Let me explain.
I. Getting started
My observations about coding web(apps) in 2017
Let me convince you: React is the future!
Some really nice articles here and there have convinced me to go all in on React Native and React. Some more articles if you still need to be convinced.
If you like to read.... Just see my recommendations on Medium!
I'm sure in a few years, react will standardize one codebase for web, Android, iOS, WP.... Everything. And that's why I'm all in on React right now!
In June, I was studying and working with React Native about 10 hours or more. I´m decreasing this number to about 8 hours per day now to maintain the right work-life balance, but the point is that I was very excited.. You may ask why. Well, I have an amazing plan to build an application for travelers. It's gonna be all you need, the Google, Facebook, and WhatsApp for travelers. I will not go into the details, but I'm super excited about it. I'm obsessed. Oh, and did I say I was excited? Well, I am.
Obviously, MacOS is the best OS for developing with React Native because you can test both iOS and Android apps at the same time. It's not possible to do this on Linux or Windows. Unfortunately, I'm already committed to Windows, but there's a big change that I'm buying a Mac laptop. If you have any second-hand Macbook lying around and you're located in Germany, let me know. You can trade it for my HP Windows laptop.
For React Native, I've tried WebStorm, Sublime, and VSCode. It seems to be a trade-off between functionality and speed. I think VSCode is the best because you can install lots of plugins that make it really functional, but if you want to keep it simple and fast, that's also fine. WebStorm gets a little slow sometimes, even on my i7 8GB RAM Laptop.
I'm going to try Prettier, Linting, Reactotron, Webpack, and lots of other tools. There are so many things that can make your coding experience better. I will give short descriptions of all my experiences here!
III. Useful Components, Libraries, and Examples
Sites to explore.
JS Coach is a good way to explore popular RN stuff. Of course, Google also works, and you'll often end up at Github, but keep this one in mind, might be useful!
Follow me on GitHub - I star all nice repo's I find.
Egghead is a great website to get started with modern coding in general, and also has awesome courses about React Native! I totally recommend this website. Beware that some courses are for the more experienced developers, as they are sometimes a little bit fast to take it all up!
Handlebars has a nice course and it's free!
IV. Decisions, Decisions, Decisions...
After some exploring, I share my findings here:
All I say in this video is basically that Wix's nav is better than Facebook's recommendation because it is built on top of actual native navigation components.
The next day, I figured out that I shouldn't be so perfectionistic and just went for React Native Navigation because it was already in my boilerplate! Also, I tried Wix's navigation, but I couldn't figure it out. They didn't have a very good documentation for setting up Android, and it takes more steps than the official Navigation to set it up correctly. Let's just go for simplicity...
By the way... This article is really good at explaining the official Navigation for RN :) this one
Higher order components pack for general purpose components
I still have to explore all of them. I'm using Native Base in my prototype app right now, and I quite like it!
Native Base has been around for longer, and RN Elements looks like an American Copy of it, but it might be better, I don't know yet. I'll try them both!
The general purpose components can be used widely in my apps! Here I play around a little with Native Base.
Check this playlist for some info and playing around with Native Base!
React Native for The Web!?
I think this is the future, but it can go both ways... Write everything in React Native and automatically compile it into a website too. Or write everything for the web, creating a progressive web app that works on Android and iOS too, giving access to native sensors and components. Currently, my personal opinion is going for the first option, because I think the progressive web apps don't work that well yet on iOS, and the disadvantage number two is that you can't find your PWA's in the app stores yet. But it may all change! Who knows. There's just one certainty: React.
Some really interesting projects:
Ignite is very useful as a boilerplate. I'm using that now.
Of course, there are much more boilerplates to choose from... Just go for one, it doesn't matter. Whatever feels good.
Modals and pop-ups
V. Other resources
HighScalability contains very interesting articles about the scalability of big apps.
I'm going to get into PWA's, React, Node JS, NoSQL, Ansible and Ghost CMS! I am super focussed on RN right now, but I am finding these technologies very interesting for the future!
React: enzyme and Jest: testing.
Cheat Sheet for styles in RN: X
React Native Radio
We can even listen to React related stuff in our spare time, and get to know all the ins and outs of React Native. How nice!
https://devchat.tv/react-native-radio <-- yeah... I'm on a rampage.
Good articles July 2017
VI. Study group