Mobile Development in React

Feel free to login to the online textbook if you want to track your progress through the videos. 

This Git Repo Contains the code from the in-class coding exercises :[Git Repo] [Snack]
Recommended Software:  Visual Studio Code (Mac, Windows, Linux)
Design Software: Sketch (Mac) | Lunacy (Windows) Figma (web platform)

Lectures Topic/Slides Video Lab Reading/Snacks
Jan 13 Javascript The Basics
Part I [PDF]
[Video] HW: Async Programs
Due: Jan 22  11:00pm
[Book- Chapters 1-2]
Jan 15 Javascript Objects Part I
Part II [PDF]
[Video] [Book- Chapters 3- 5]
Jan 17 Javascript Objects Part II
Part III [PDF]
Jan 22 Javascript Call Backs Promises
Part IV [PDF]
[Video] HW: Map & Reduce Due: Jan 29 11:00pm [Book – Async]
Jan 24 Javascript Async / Await
Part V [PDF]
[Video] [Great Talk Event Loop]
[Loupe Tool]
Jan 27 Javascript Map Reduce
Part VI [PDF]
[Video] [Google Paper]
Jan 29 Reactive Design Paradigm
Intro to React [PDF] [Code]
Components & State [PDF]
[Video] HW: Joke HW First App
Due: Feb 5  11:00pm
Jan 31 Expo & 1st Native Application
Introduction to React [PDF]
Feb 3 Layout CSS Deep Dive
Layout [PDF][Playground]
 Feb 5 Building Screen Part I [Video] HW: Layouts & JSX
HW: FlexFroggy
Due: Feb 14  11:00pm
Feb 7 Building Screens Part II [PDF]
[Video] [Scroll View Snack]
Feb 10 Building Screens Part III [PDF] [Video]
Feb 12 Deploying  & Debugging [PDF] [Video] Solution to JokeHW
Feb 14 Navigation Architectures 
Stack/ Draw Navigation Part 1 [PDF]
[Video] Scroll HW Part I
Due: Feb 21  11:00pm
[Stack Navigation][Tab Navigator Snack]
[Tab Nav w/ Icons
[Styling Header Opt]
Feb 17 Navigation Architectures 
Stack/ Draw Navigation II
Feb 19 Authentication & Secure [PDF]
Storage Local Storage [PDF]
[Video] [Facebook Login ]
[Secure Storage]
Feb 21 Midterm Exam [In Class ]
[Key for Feb 21]
Past Midterm Navigation HW
Due: Feb 28  11:00pm
[Map Snack]
[Camera Snack]
[GPS location Snack]
Feb 24 Facebook Login Complete Flow [Video]
Feb 26 React Native Hooks Part I [Video] [React Conf 2018][Medium Post]
Feb 28 React Native Hooks Part II
[Video] Scroll HW Part III
Due: Mar 6  11:00pm
March 2 -6 React Native Hooks Part III [Videos]
March 20 Data Flow Architectures
Redux Part I [PDF]
[Video] [Redux I]
[Swift UI Data Flow]
March 23 Data Flow Architectures
Redux II [PDF]
[Video] Redux HW
Due: Mar 27  11:00pm
[Mobx Doc]
March 25 Data Flow Architectures
Redux III
[Video] [Architecture Post]
March 27 Real-Time Databases 
Getting Set Up
[Video] [Firebase/FireStore Doc]
March 30

Real-Time Databases 
Authentication Basics 

[Video] Firebase HW
Due: April 6  11:00pm
[No More Confusion Firebase App Code]
Google’s Lab w /Code
April 1

Real-Time Databases 
Overview & Concepts

April 3

Real-Time Databases 
Schema Design II

April 6

Real-Time Databases 
Security Rules

[Video] Project Check-In I
Due:April 10 11:00pm
April 8

Midterm II
[Take Home Coding Assignment]

[CSS The Definitive Guide][CSS-Tricks]
[Demo APP 1 ]
[Demo Flex Box]
[Demo Splash Screen]
April 10 [PDF]

April 13

React Animation I [PDF]

Project Check-In II
Due April 15 11:00pm
April 15

React Animation II 

April 17

Expo Component Part I [PDF]

[Animation Snack I]
April 20

Expo Component Part II 

Animation /
Components HW
Due April 22  11:00pm
April 22


Pub/Sub Architecture [PDF]

April 24

Flutter Introduction [PDF]

[flutter doc for React Native ] 
April 27

Final Project Presentation
[Upload Video Demos to the Class Forum]

Project Check-In III Due April 26, 11:00pm

Embedded Ecosystems React to Native BLE Library [PDF]

BLE Library

Office Hours

  • TA OH:
    • Wednesdays 11- 1pm in Rice 442 (By appointment only email gmf5de)
    • Friday 9:00am to 11am in Rice 442 (By appointment only email yw5ty)

All professor’s office hours are open, meaning we will not close the door and have a private conversation during office hours. If you have sensitive matters to discuss, please email your professor to set up a separate time to visit about them.

Grading Policy

Grading is one of the aspects of a course that instructors enjoy even less than students. Still, we are stuck with them, so here goes.

Portion of course Percentage of Final Grade
Home Work 30%
Midterms  (12.5% + 12.5%) = 25%
Final Exam 20%
Final Project 25%

Your final grade is computed based on the percentage of points you have earned and is designed to match the GPA value of each letter.

We will use the grade cut off decided by the collab team.

We do not round grades. 92.99% is not ≥ 93% and is thus an A−, not an A.

We do not curve grades: if you all fail, you all fail; if you all ace, you all ace.
However, rubrics for assignments are not linear: instead, we determine how well we expect a passing student to perform and assign a per-assignment rubric to match.
This is common practice for homework in CS; it is less common for exams.
Our exams might feel unusually difficult as a consequence.

No late home work accepted.

Academic Honesty

We expect all homework and quizzes to be completed individually except for some homework which we explicitly allow to be done with partners. You may not share code or consult assignment solutions from previous semesters. You may not share quiz questions before the quiz deadline. You are encouraged, however, to discuss the assignments in general and provide advice to other students that does not amount to sharing code, pseudocode, or instructions that otherwise essentially solve the assignment. We may use automated tools to look for similarities between homework submissions that suggest excessive collaboration.

Labs may be done collaboratively, including sharing code. Your lab submissions should indicate who you worked with.

Quizzes are open-book and open-notes. Exams are closed-book, closed-notes, and administered in-class time.

Your submissions for labs and homework should not make extensive use of code found online. Incidental use (utility code that does not solve a significant part of any of the objectives of the assignment) is okay, but must be clearly cited. If you are unsure whether something would qualify as “incidental”, please consult the course staff first.

If we believe you have created, we may apply an arbitrarily harsh grade penalty up to and including an F in the course.
This penalty is independent of (and potentially in addition to) any findings of the University Honor System.

Students with disabilities or learning needs

It is my goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center to discuss a range of options for removing barriers in this course, including official accommodations. Please visit their website for information on this process and to apply for services online: If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together

Discrimination and power-based violence

The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. To that end, it is vital that you know two values that I and the University hold as critically important:

  1. Power-based personal violence will not be tolerated.
  2. Everyone has a responsibility to do their part to maintain a safe community on Grounds.

If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available –

As your professor and as a person, know that I care about you and your well-being and stand ready to provide support and resources as I can. As a faculty member, I am a responsible employee, which means that I am required by University policy and federal law to report what you tell me to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also reviewing the information presented to determine whether further action is necessary to ensure survivor safety and the safety of the University community. If you wish to report something that you have seen, you can do so at the Just Report It portalThe worst possible situation would be for you or your friend to remain silent when there are so many here willing and able to help.

Religious accommodations

It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.

Students who wish to request academic accommodation for a religious observance should submit their request in writing directly to me by Piazza private message as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at or 434-924-3200.


I trust every student in this course to fully comply with all of the provisions of the University’s Honor Code. By enrolling in this course, you have agreed to abide by and uphold the Honor System of the University of Virginia, as well as the following policies specific to this course.

· All graded assignments must be pledged.

· All suspected violations will be forwarded to the Honor Committee, and you may, at my discretion, receive an immediate zero on that assignment regardless of any action taken by the Honor Committee.

Please let me know if you have any questions regarding the course Honor policy. If you believe you may have committed an Honor Offense, you may wish to file a Conscientious Retraction by calling the Honor Offices at (434) 924-7602. For your retraction to be considered valid, it must, among other things, be filed with the Honor Committee before you are aware that the act in question has come under suspicion by anyone. More information can be found at Your Honor representatives can be found at: Additionally, [Support Officer, if any enrolled], an Honor support officer enrolled in this class, is also available for questions.