This course teaches the fundamentals of cross-platform mobile application development with a focus on the React Native framework (RN). The goal is to help students develop best practices in creating apps for both iOS and Android by using Javascript and existing web + mobile development paradigms. Students will explore the unique aspects that made RN a primary tool for mobile development within Facebook, Instagram, Walmart, Tesla, and UberEats.

Course logistics

Date/Time T/Th 10:30AM - 11:50AM
Enrollment Please apply here and show up to the first class to enroll in the class.
Location Wallenberg 124 (160-124)
Units 2 Pass/Fail
Instructors Abdallah Abuhashem (aabuhash@stanford.edu)
Tiffany Manuel (manuel14@stanford.edu)
Vy Mai (vmai2@stanford.edu)
Cisco Vlahakis (vlahakis@stanford.edu)
Faculty Sponsor James Landay (landay@stanford.edu)
Staff email reactnative@cs.stanford.edu
Office hours Monday (12-1 PM) @ Huang Basement
Tuesday (3-4 PM) @ Old Union
Wednesday (8-9 PM) @ Huang Basement
Thursday (2-3 PM) @ Huang Basement
OR By appointment
Prerequisites CS 106A/B
Explore courses CS47


Week 1 (09/24 - 09/26)

1.1 Introduction to React and React Native

Course logistics and basic overview of React Native.

1.2 Introduction to JavaScript

Introduction to the basics of JS(ES6)

Warmup Assignment: Setup

Week 2 (10/01 - 10/03)

2.1 View-Only Components and Stylesheets

Creating and styling interfaces using basic components. StyleSheet + Flexbox.

2.2 Controlling and Creating Components

Creating and controlling components using State and Props. An overview of functional components.

Week 3 (10/08 - 10/10)

3.1 User-Interactive Components

Let's take a look at user-interactive components.

3.2 Exercise on User-Interactive Components

User-interactive components in the use

Assignment 3: New York Times

Week 4 (10/15 - 10/17)

4.1 Third party components

Examples of third party components from npm and Expo.

4.2 Life-Cycle and Debugging

The life-cycle of a component and the different functions related to it + Debugging guide.

Project Idea Writeup

Week 5 (10/22 - 10/24)

5.1 Local Storage

An overview of persistent storage solutions in RN

5.2 Navigation intro

Introduction to navigation solutions in RN

Week 6 (10/29 - 10/31)

How to pass data between screens in React Navigation

6.2 Cancelled lecture
Final Project

Week 7 (11/05 - 11/07)

7.1 Nested Navigation

Nesting navigation of different types in React Native.

7.2 Networking

Basic networking functions and guidelines to dealing with errors.

Week 8 (11/12 - 11/14)

8.1 Firebase

Fundamentals of Firebase

8.2 Guest Lecture: TBD

Week 9 (11/19 - 11/21)

9.1 Firebase Storage and FB auth

Deploying to the App Store and Google Play Store

9.2 Guest Lecture: TBD

Thanksgiving break

No Class

Week 10 (12/03 - 12/05)

10.1 Final Project Presentations

Deploying to the App Store and Google Play Store

10.2 Final Project Presentations

Course logistics and basic overview of React Native.


CS47 Syllabus
Official React Native Documentation
React Native Express
Expo SDK API Reference
JavaScript Style Guide
RN Styling Cheat Sheet

NOTE: you might need to be logged in to your Stanford account to access some content.

Website template powered by Stanford's CS 42