About this Course
About this course#
Like any open source framework/platform there is a wide range of tools and libraries available to users of React Native. We will cover these topics using a set of time-tested, industry standard tools and libraries. Although developers are free to substitute any of these tools with their own choices, I've used these libraries on multiple apps in production and highly recommend them.
With React Native, the most important thing is to understand how these pieces come together to create an app. During the course, we're going to build an app using an open source boilerplate code.
However, this course is not just designed for those looking to jump into building apps using React Native. Unlike "jumpstart" courses that throw everything at you like a cookbook, we will take a step-by-step approach, teaching the different elements and how they come together, always keeping an eye on best practices and performance. We will be taking a product development approach to building apps; thinking about those things we need to take care of to achieve native levels of performance on both Android and iOS platforms.
The course does not expect you to have any prior experience in developing native apps. I only started building native apps a couple of years ago. It is not required for building React Native apps. The boilerplate code takes care of the base setup and everything needed to build your app. As you go through the course, you will realize there is no code written on the native side.
Who is this course for?#
What we're NOT going to do#
We're not going to be covering submitting your apps to the platforms' stores, and will also not be going into animations. This is a complete topic in itself. We will however discuss Lottie - by Airbnb, which is a great, unbelievably simple framework for micro-animations, as bonus content.
We will be building an ecommerce app over the journey of this course. Though I highly recommend that students build the apps they always wanted to build, along with the modules of the course, either by using the boilerplate template provided, or a setup of their own choice. This way, they can see their progress and make their own modifications.
Alternately, they can also choose to build the ecommerce app from a learning perspective.
React Native - an overview#
React Native is a platform for developing apps that can be deployed to mulitple platforms, including Android and iOS, providing a native experience. In other words, write once, deploy multiple times. This tenet holds true across most aspects of an app's development, including for example, usability testing, where the business logic that teams would have had to test separately on both platforms in native development only needs to be done once when using React Native. The code we write using React Native is good to go on both platforms and, in most cases, tends to cover more than 95% of the entire code base.
With this course, our aim is to help students learn React Native with best practices from a product perspective, enabling you to build and launch your own apps, realizing your own ideas. It is for developers and entrepreneurs who want to learn the how-tos of writing a scalable and performant app using React Native.
React Native as a platform offers a plethora of options, however knowing which to use, and when, comes from an understanding of how those pieces fit together; for example, do you even need a database or is AsyncStorage sufficient for your use case?
The aim of this course is not to advocate using React Native for all apps, rather the goal is to build students' confidence with planning for and using React Native in the best way to meet their requirements, helping them unlock its full potential.
In short, the course will help you:#
Jump straight into React Native using a boilerplate code well tested in production, keeping the focus on building the app from a product perspective
Build a strong foundation in the React Native ecosystem, with a good understanding of best practice
Build your app using React Native
Create a resilient architecture that separates design and development
Troubleshoot issues and performance bottlenecks