What this book covers
Chapter 1, What Is React Native?, will include a short introduction to React Native, how it is related to React and Expo, and how it is driven by the community.
Chapter 2, Understanding the Essentials of JavaScript and TypeScript, shows important underlying concepts to avoid the most common mistakes and bad patterns. You will get useful tips, learn best practices, and repeat the most important basics to use JavaScript in your apps.
Chapter 3, Hello React Native, will give you a deeper understanding of React Native. It contains core concepts, explained on an example app, as well as theoretical information about the architecture of React Native and how to connect different platforms to the React Native JavaScript bundle.
Chapter 4, Styling, Storage, and Navigation in React Native, covers different areas, which are all important to create a high-quality product with React Native. You have to focus on good user experience, which includes a good design and clear navigation. Also, your users should be able to use as much of your app as possible without a network connection, which means working with locally stored data.
Chapter 5, Managing States and Connecting Backends, focuses a lot on data. First, you will learn how to handle more complex data in your app. Then, we’ll look at different options on how to make your app communicate with the rest of the world by connecting it to remote backends.
Chapter 6, Working with Animations, focuses on onscreen animations. There are multiple ways to achieve smooth animations in React Native. Depending on the type of project and animation you want to build, you can choose from a wide range of solutions, each with its own advantages and disadvantages. We will discuss the best and most widely used solutions in this chapter.
Chapter 7, Handling Gestures in React Native, teaches you how to work with gestures, how to combine gestures and animations, and what the best practices are to give user feedback.
Chapter 8, JavaScript Engines and Hermes, is mainly a theoretical chapter, where you will learn how different JavaScript Engines in React Native work and why Hermes is the preferred solution in production apps (when it is possible to use it). It includes some theoretical background as well as tests of key metrics in different environments.
Chapter 9, Essential Tools for Improving React Native Development, teaches you about useful tools that make development easier, especially when working on bigger projects. You will understand how Storybook works and why this is a great tool for React Native development. You will also learn about styled components for React Native, recommendations for different UI libraries, ESLint/TSLint, and boilerplate CLIs such as Ignite.
Chapter 10, Structuring Large-Scale, Multi-Platform Projects, teaches you how to structure a large-scale project. This includes the app architecture, processes for the successful collaboration of multiple developers, and processes to ensure good code quality.
Chapter 11, Creating and Automating Workflows, focuses exclusively on workflow automation. You will learn how to set up multiple CI pipelines for code quality checks, automated PR checks, automated communication via mail, Slack, or board issues, as well as automated deployment to the app stores. We will have a look at GitHub Actions, fastlane, Bitrise, and other CI/CD solutions.
Chapter 12, Automated Testing of React Native Apps, teaches you how to use Jest and the react-native-testing-library for unit and snapshot tests, how to ensure a certain test coverage, how to do E2E testing with Detox, and even how to test on real devices using AWS Device Farm and Appium.
Chapter 13, Tips and Outlook, is divided into two parts. In the first part, you can read my most useful tips on how to make your React Native project a success. The second part focuses on the outlook of the framework and how I think React Native, its community, and its ecosystem will develop in the future. This is based on technical development as well as commitment from different big players in the community.