Code quality with TypeScript
The code quality section is crucial for developers who are new to the React or React Native ecosystem. We introduce the tooling that is used to help teams develop better products and improve code stability. The static type analysis tool used in this module is TypeScript.
a. Introduction to TypeScript and type safety
Introduce the idea of static type checking and show how it improves code quality. Write an example code covered with the typings, list all primitives and explain when TypeScript infers the types.
b. Setup with Babel & TSlint
The goal here is to show participants how to add a TypeScript and TSlint to the new project or an existing codebase. We present different ways of using TypeScript in the project, first as a global CLI with tsc and finally as a local dependency with types stripped from the bundle by Babel.
c. Configuring TypeScript
Explain basic TypeScript configuration. Discover tsconfig.json file syntax and dive deeper into each of its sections. We’ll teach you how to ignore specific directories and what the cons of that are. At the end we’ll show how to add typings for some libraries using `@types`.
d. Incremental adoption
Adding a TypeScript to an existing codebase. We’ll introduce the concept of incremental adoption and show how to gradually develop a well-typed codebase.
e. Basic type annotations
In this section we’ll cover all basic types, we’ll go through arrays, tuples and enums. We’ll teach participants the difference between any and unknown or undefined and null. After that, we’ll focus on strict types and show the different ways of typing Objects and Functions.
f. Advanced types and utilities
The advanced ways of using TypeScript that includes using generic, union and intersection types will be presented to the audience.
g. React specific typings
Typing Components and Higher-Order Components with TypeScript. We’ll show how to support event handlers and reference functions. At the end, we’ll show how to type React’s children and explain the type difference between Element and Component.
See more modules
State management with Redux
Every app we write has some kind of state – it could be a shopping list or a gym schedule. The more complex our apps get, the more state they need to manage, hence the need for managing it properly. One of the most popular state management libraries is Redux – a single-tree storage based on Flux architecture.
Let’s say you have a perfect bug-free app you’re very proud of. Does it change over time? How many developers work within the same codebase? How familiar are they with this code? How do you ensure your code is still perfect? The answer is automated testing, and this workshop is all about it. Let’s take a deep dive into this fascinating world to boost your confidence from shipping to production!
Navigation in React Native
Navigation has been a hot topic in React Native from day one. There have been many attempts to solve it. All of them follow different concepts and might fit better or worse for different use-cases. In this section we’ll present market leading solutions and teach participants about their differences and when to use one or another.
Intro to React
The following course provides a basic introduction to all of the concepts behind React. The scope of this module lets participants understand the architecture of React and includes the patterns used in daily development. It contains all the knowledge required to get up and running with React.
Essential React Native
One of the biggest advantages of React in comparison to other cross-platform technologies is the fact that it supports not only mobile platforms, but also web browsers. In this workshop we’ll play with ReactXP, the library that builds abstraction over React Native, React Web and React Windows. The scope of this workshop is to introduce best practices in writing cross-platform apps, present the best techniques to write code that will be universal across platforms, and provide a few ideas on how to handle the differences in a gentle way.
Working with native modules
React Native Performance
The following course is designed for developers who have production experience with React Native. The scope dives deep into the native side of the framework. It’s a very low level in terms of React Native development. The course tackles a lot of the iOS and Android application development topics. It’s perfect for gaining a wide overview of mobile app creation, and lets you look at React Native in a different way.
Delightful UX with React Native
Modern applications contain a lot of beautiful designs and highly focus on user experience. The basic React Native knowledge is in most cases not enough to ship a 5-star store application. This module is designed for developers who already have some experience in writing React Native but want to extend their knowledge in terms of writing beautiful and usable applications. We’ll tackle navigation and animation-related topics that can make all the difference for the end users of the application.
Continuous integration & continuous deployment
Automation of development and deployment flows are really important these days. Not only that not many companies can afford a dedicated DevOps team to handle the releases, but also that the human factor might slow down a lot of the things in the delivery process. This workshop is aimed at teaching participants how to create an automated pipeline that will increase your code quality by performing various checks and deliver the builds to the testers or the stores with simple git merges.
As Dan Abramov, co-author of Redux and one of the main Reactjs contributors tweeted: “Concurrent React is not a set of new APIs. It’s more like lifting some restrictions on what React can do.” This is exactly what this section is about. We’ll introduce new concepts (and the corresponding APIs) of React 16+ that makes it even more asynchronous and prepares developers to write the next generation React code.
Code quality with Flow
The code quality section is crucial for developers that are new to the React or React Native ecosystem. We introduce the tooling that is used to help teams develop better products and improve code stability. The static type analysis tool used in this module is Flowtype.
Deep dive into React
The content of this course is designed for developers who have some experience with React. Those who have been working with React for a while and are looking to improve their skills should benefit the most from this workshop. Participants should be able to write more declarative code and design their components in a way that allows apps to scale well.
GraphQL is becoming more popular every day. It’s a step forward in the communication between front end and back end. It simplifies a lot of the things, especially on the front-end side. It introduces the techniques required to write real-life apps based on GQL and Apollo. This workshop is designed for people that are either not yet familiar with GraphQL itself or want to improve their skills in Apollo Client usage.