ECE1778: Creative Applications for Mobile Devices
Course Syllabus of Fall 2025
Overview
This graduate-level course gives students hands-on experience developing mobile applications with React Native and Expo. Four progressive assignments and a collaborative project build experience with cross-platform development, notifications, state management, and deployment. Teams apply these skills to a working mobile application and explain its design and implementation.
Learning Objectives
- Develop cross-platform mobile applications using React Native and Expo with TypeScript, applying core components, hooks, and UI design principles.
- Implement navigation for multi-screen mobile applications using React Navigation or Expo Router, including typed navigation and data passing between screens.
- Manage application state and persist data across app sessions using Context API, useReducer, React Native Async Storage, and TypeScript.
- Integrate Expo Notifications to implement local and push notifications for common mobile application scenarios.
- Connect mobile applications to backend services or APIs, such as REST APIs, Supabase, or Firebase, implementing data fetching, UI updates, and error handling with TypeScript.
- Explore advanced mobile development features, such as user authentication, real-time updates, mobile sensors, or custom animations, and apply them in appropriate application contexts.
- Collaborate on a team-based mobile application project using GitHub for version control and project coordination.
- Build and test mobile applications on iOS or Android devices using Expo EAS Build.
Prerequisites
Students should have a strong foundation in JavaScript, including proficiency with ES6+ features such as arrow functions, destructuring, and asynchronous programming using async/await. Prior experience with React, particularly functional components, props, state, and hooks, is highly recommended. A brief React refresher will be provided in the first lecture. Familiarity with TypeScript is preferred but not required, as it will be used throughout the course with guidance offered as needed.
Working through Assignment 1 during the two-week submission window can give you an early sense of the prerequisite knowledge and level of technical work expected in the course.
The prerequisites are intended to help you assess whether you have the background needed for the course. You do not need to contact the instructor for prerequisite approval before enrolling.
Weekly Schedule
| Week | Lecture | Date | Topic |
|---|---|---|---|
| 1 | 1 | September 3 | Course Introduction and React Refresher |
| 2 | 2 | September 10 | React Native Fundamentals |
| 3 | 3 | September 17 | Styling and UI Design |
| 4 | 4 | September 24 | Navigation with React Navigation |
| 5 | 5 | October 1 | Navigation with Expo Router |
| 6 | 6 | October 8 | State Management in React Native |
| 7 | 7 | October 15 | Redux Toolkit and Data Persistence |
| 8 | 8 | October 22 | Notifications and User Engagement |
| 9 | - | - | Reading Week (No Lecture) |
| 10 | 9 | November 5 | Backend Integration and User Authentication |
| 11 | 10 | November 12 | Deploying Mobile Apps with Expo EAS |
| 12 | 11 | November 19 | Course Project Presentations |
| 13 | 12 | November 26 | Course Project Presentations |
Grading
Assignments
50%This course includes four progressive assignments that will guide you through building a real-world mobile application. Each assignment builds upon the previous one, gradually incorporating more advanced technologies and features using React Native and Expo.
Each assignment should be completed individually.
4 assignments, 12.5% each.
Assignment Timeline
| Assignment | Topic | Release Date | Due Date |
|---|---|---|---|
| 1 | Basic App Structure | September 14 | September 28 |
| 2 | Styling and Navigation | September 28 | October 12 |
| 3 | Navigation and State Management | October 12 | October 26 |
| 4 | Advanced State Management and Persistence | October 26 | November 9 |
Detailed assignment handouts and starter code will be provided for each assignment upon release.
Project
50%Students will work in groups of 2 to 4 to develop a mobile application implementing the modern technologies learned throughout the course.
- Proposal (15%): due on October 19, 2025, 11:59 PM
- Presentation (10%): November 19 and November 26, 2025
- Final Project Deliverable (25%): due on December 7, 2025, 11:59 PM