Course number: 51034 Location:TBD Time: TBD
5:30pm-8:30pm
Professor: Adam Gerber, PhD
Email: gerber@uchicago.edu
Office: TBD
Office Hours: TDB 8:30pm to 10:30pm - directly after
class
TA: John Hadidian Baugher
jhadidianbaugher@gmail.com Office hours: TBD:
Gleacher Center downtown from 5:15 PM - 7:15 PM on Mondays
Content: | Cross platform development remains the holy grail of mobile
development. While there have been many attempts to solve
cross-platform development, all of the solutions to date have
either added their own complex and idiosyncratic layer onto the
software stack, or been woefully lacking in performance. React
Native is different; it uses native iOS and Android components,
and thus performance is at parity with native iOS and Android.
Perhaps the killer application of React Native is OTA or Over
The Air updates which allows developers to provide updates
directly to users bypassing the App/Play stores. React Native is
a game-changer for mobile technology and it is perhaps the first
technology to realistically hold the promise of convergence
among Android, iOS, and Web. In this course we will cover the economics of cross-platform development and alternatives to React Native, the history of cross-platform and JavaScript, the foundations of JavaScrirpt and then we will build several React Native applications during labs in class, covering Asynchronous, Networking, Navigation, Persistence and so on. By the end of this course, students will have a very good understanding of the cross-platform market, the key differentiators of React Native, and they will understand how to build React Native applications. All the course content, including; videos, slides, projects, and labs are all located here (http://gerber.cs.uchicago.edu/react/content/) |
IDE: | We will be using WebStorm, which is a JetBrains (maker of
IntelliJ) product. You may also use IntelliJ ultimate edition
for students. Webstorm is a fork of IntelliJ and they work
exactly the same. WebStorm is an outsanding, feature-rich, and
extremely forgiving IDE available on all major platforms. Git is
an indispensable and integral part of any mobile project, and we
will be using git throughout this course. A Mac laptop is
strongly recommended, however it is possible to develop on a PC.
Students are required to bring their laptops to class to
participate in labs; and the lecture hall will be outfitted with
powerstrips for students to plug-in their laptops. |
Local source-control: | We will be using git throughout this course. Git is an
outstanding, distributed source-control tool and fast becoming
the de-facto standard in software development. WebStorm has an
excellent built-in git-gui tool. Download/install Git here (http://git-scm.com/downloads/) |
Remote source-control | We will be using Bitbucket. Please register here |
Textbook | We will be using the following textbooks for this course: Mastering React Native: ASIN: B01LPRN15M. ES6 and Beyond: ISBN-10: 1491904240. Textbooks may be subject to change as the date of the course approaches. |
Slides | Slides are available in powerpoint format. They are located in: content/slides/. |
Labs | During labs, we will use the course tools to create applications together in class. The TA's are there to help you with the tools and with Android Studio. |
Project | Short Description | Due Date |
---|---|---|
proZen | A simple app which teaches the principles of Navigation, styling, flexbox, and layout in React Native. | TBD |
proListView | Progressing to ListViews which are among the most important components on mobile devices. We will create a contacts manager for this project. | TBD |
proWebService | Most apps interact with data on a server. You will learn how to interact with web-services in this project. | TBD |
Team | You will work with your assigned team to create some modular functionality for the final project. This can be google speech search, fingerprint MFA, using the Yelp api, and so on. | TBD |
proReactFinal | Your individual final project. You will create your own version of the Favorite Places app in React Native. The app will include functionality from all the previous lessons. For those that have already taken Android App development, you will be very familiar wit the Yelp API. | TBD |
Exam | Length | Exam Date | Grade |
---|---|---|---|
Midterm exam | 60 minutes | TBD | 20% of final grade |
There are no make-up exams in this class. If you miss your midterm exam, the midterm exam points are added to your final project weight making the final project worth 51% rather than 31% of the final grade.
Weight | |
---|---|
proZen | 13% |
proListView | 13% |
proWebService | 13% |
proReactFinal | 31% |
Midterm | 20% |
Class participation | 10% |