Learning, News, And Other React Native Resources
This is a list of helpful React Native and general programming resources for keeping up to date and sharpening your skills. Feel free to add any resources that have helped you to the list.
General programming resources
Javascript
- https://github.com/getify/You-Dont-Know-JS
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Language_Overview
- https://github.com/ryanmcdermott/clean-code-javascript
Typescript
- https://www.typescriptlang.org/
- https://basarat.gitbook.io/typescript/
- No BS TS https://www.youtube.com/playlist?list=PLNqp92_EXZBJYFrpEzdO2EapvU0GOJ09n
- https://www.executeprogram.com/courses
- https://github.com/type-challenges/type-challenges
React
- https://reactjs.org/docs/getting-started.html
- https://beta-reactjs-org-git-effects-fbopensource.vercel.app/
- https://epicreact.dev/
General
Blogs
The Callstack blog
The Infinite Red blog
The LogRocket blog - Not exclusively RN but lots of great RN and general FE articles.
Youtube
Youtube has an immense amount of super helpful RN content. Watching a video over breakfast, listening in the background while you work, or taking time each evening to watch some content are all great ways to immerse yourself in the ecosystem and pick up great tricks from very smart people.
William Candillon
The RN animation 🐐, his channel is a treasure trove of amazing animation work.
Infinite Red
One of the leading RN dev shops, they also are huge contributors to the community, currently create the React Native Radio podcast, and also put out some quality livestreams and videos.
Unsure Programmer
A smaller channel with a lot of great real world exercises in creating RN apps.
Twitter Lists
From the Twitter app, open the side menu and go to “Lists”. Then create a new list named “React Native” and you can start adding profiles that you're interested in hearing from in this list.
The thing with lists is they show up as an entire new “Timeline” in your Twitter home, so you can simply switch to that list and it will:
- Show tweets from the profiles you added to that list
- Show tweets from profiles with similar tastes/topics than those who are in your list. This is the game changer! You can add 10 profiles to that list and leave it for twitter to do the rest. It sometimes may extrapolate the topics, but still... worth it!
Now, for a list of profiles to follow, you can use this article by Dan Abragod himself: https://medium.com/@dan_abramov/my-react-list-862227952a8c
Or in this thread (mentioned in the article above):
https://twitter.com/dan_abramov/status/937339649537781762
Twitter profiles
These profiles share a lot of good react-native related news:
react-native-releases
Following the react-native-releases
repo is a good way to stay up-to-date with the latest React Native versions: https://github.com/reactwg/react-native-releases
Read the source code of 3rd party libs (when needed)
Immediately after the Twitter tips above, learning how to read the source code of libraries (or losing the fear to do it) is one of the most beneficial practices you can adopt to become a better developer. You'll likely have no idea what is happening due to how complex / advanced some architectures are, but it DOES get easier.
Start by dipping your toes into the React Native source code. The [Libraries
folder](https://github.com/facebook/react-native/tree/main/Libraries) is a good starting point - that's where all JS libraries (e.g. Alert, Linking, Keyboard, etc) are. This is a great way to build a more intimate understanding of what exactly happens when you implement a component or function.
Once you become more comfortable you can slowly start to check out the native view managers (i.e. the native files in Java and Objective C that back components such as ScrollView
and Text
). Even just understanding naming conventions or method purposes will make debugging 100x easier.
Read changelogs
Reading the changelogs of the libraries you use in your job is a sure way of protecting yourself when updating them. If you make sure to read every single change of new React Native releases you can only become a better more prepared developer.
React Native Now & React Native Newsletter
A lot of amazing React Native wisdom and news straight to your dome:
UX/UI Knowledge
This goes hand in hand with the “mobile developer role in UX/UI” section above, but it's important to reinforce it here: one of the key areas of knowledge an app developer must know before he/she can call themself (or be called) a senior is to know good mobile UI/UX.
A mobile developer that doesn't know what are the do's and don'ts of mobile apps is analogous to an automotive engineer who doesn't know the do's and don'ts of a vehicle.
Both Apple and Android offer great documentation on their design systems:
Podcasts
React Native Radio. This is from the team at Infinite Red, one of the leading RN dev shops in the world, and creators of the Chain React conference.
The React Native Show Podcast This is from the geniuses and big time contributors to the RN ecosystem Callstack.
Reactiflux
For anyone into Discord this is a fairly big (and sometimes noisy) community with a lot of great resources and people to learn from.
School of life
Some of the topics that really help and will continue to help with software development (click on the names for material linked to the topic):
- Design Patterns - there's way too many coding design patterns that you could use, but really, most of them are only useful to object-oriented languages or enterprise-grade software (think ERPs, operating systems and other similar things). Still, singletons, facades and adapters are very common in JavaScript world. Knowing the history behind Design Patterns is also a great thing to study (just read the linked wikipedia page above). I highly recommend watching this video:
https://www.youtube.com/watch?v=FLmBqI3IKMA&ab_channel=TraversyMedia
- Functional Programming - really important one. A lot of people have heard about this concept but when it comes to implementing it, they never do. Move reusable functions out of the components they're in and make sure they are exported & properly named.
- Javascript - some people have no idea how JavaScript really works. This happens because most courses nowadays start from the top (e.g. pick Vue/React and off you go). It's important to stop, rewind things a bit and learn the nitty gritty details of JavaScript though Just JavaScript by God himself, Dan Abramov (everyone is welcome in his church).
- Heap + Stack and Garbage Collectors - superficial knowledge of these concepts is always helpful when working with performance optimisation.
- Blogs and youtube channels