Mobile Development

Welcome to Mobile Development!.

My office hours: 3:00pm Monday, Wednesday, Friday 12:00 Thursday.

TA hours: 5-7 on Sun and Thurs in Williams 309.

Final Presenation: will take place on Thursday, 20 December, 7:30AM in Williams 303. See "Assignments->Projects->Project Final Report"

Final Report: due at 4:00pm on Friday, 21 December. See "Assignments->Projects->Project Final Report"

Introduction and Prerequisites

This course covers the creation of mobile apps on the two most popular mobile platforms, iOS and Android. The course will involve programming in React Native, a development environment created by Facebook to produce cross-platform (iOS and Android) apps. The principle language will be in ES2015 (also known as ES6) an extension to JavaScript that is now part of the official standard. The course requires a solid grasp of programming concepts and you will be expected to do independent learning outside of class.


Monday, 17 Dec, at 8:00am is the last chance to turn in any labs or assignments.

Project part 3 due date will be Monday, 3 Dec, not Friday, 30 Nov.

Monday after break, 26 November, will be the last time you can turn in Labs through lab 7 and assignments through assignment 6 for any credit.

  • The REST service for entering data into the database is at
  • Change to project, part 1. Will be due Monday and every team must make a presentation of their project. You will have 10 minutes. Every person in the team must talk.
  • Everyone has access to Williams 307. If you’re having problems with React Native, you can use the macs in that room.
  • Put your name and date in comment at head of all files you create!
  • Book source code on web site! We’ll be using this week. See below for a link.
  • Friday, 2 Nov, will be the last time to turn in any assign through assign 5 or any lab through lab 4.
  • Lab 5 will be done partly in teams; you can only get credit for the team part of the lab if you are in lab tomorrow.

React Native

To create a new React Native project, enter the following command from the command line:

create-react-native-app projectName

To run a project, cd into the folder that you just created and type:

npm start

To add the navigation library to a project, move into the project directory and type:

npm install --save react-navigation

You then need to download necessary modules for React, so you might have to run the following command after the navigation library is installed:

npm install

Creating a native app

You can only create a native iOS app on a Mac. To create a native app follow the steps at Note that you must have the most recent version of Xcode installed.

You can create a native Android app on either a Mac or a Windows PC. In either case you must have Android Studio installed and must have initialized the appropriate emulator within Android Studio.

To create a native app (for either platform) use the command:

react-native init myProjectName

Then run the app on an iOS device with the following command. This command will probably fail the first time you run it; you may have to run the command 2-3 times. Note that it could take a long time to load the app.

react-native run-ios

Book source code is available at

Looking for icons for your tabs? There are two types, vector and bitmap. See " for vector icons. You can search for iOS icsons; they'll start with "ios-".


Ok, to upgrade you'll need to enter two commands:

  1. npm install -g npm@latest
  2. npm install -g create-react-native-app
and when you first create a project npm will ask you to update Expo globally. Say 'Y'. If you use the simulator you might have to install the Expo command line tool separately. You can try installing it using the command "npm install -g expo-cli". You may have to update Expo on your device.

Coming up...

The presentation of the final project will take place during the final exam period on Thursday, 20 December, at 7:30AM (that's morning), Williams 303. There is no final exam during this time.

Past Assignments »

Assignment 7 is posted. It's due Monday, 10 December beginning of class.

Project 3 Change!

Project 3 parts 2 and 3 will be due on Monday, 3 December. Each team will make an informal presentation (no slides required) of their project at that time. Show your DB Schema and demo your navigation. All members of the team must make some part of the presentation.

Teams for the term project are posted Here


Project 2 will be due on Monday, 29 October. Each team will make a presentation of their project at that time. All members of the team must make some part of the presentation.

Assignment 6 is posted. It's due Monday, 5 November beginning of class.

Now when you start a new project, you'll be asked to choose a template. For most of this course, just choos a blank project.

Assignment 5 is posted. It's due Monday, 8 October, Friday, 12 October, beginning of class. Note that the assignment was udpated (simplified) on 3 October!

Assignment 4 is posted. It's due Monday, 1 October, beginning of class.

Assignment 3 is posted. It's due Monday, 24 September, beginning of class.

Assignment 2 is posted. It's due Monday, 17 September, beginning of class.

Assignment 1 is posted. It's due Friday, 7 September, beginning of class.