25CSCI38H · Course workspace

MobileDevelopment

Learn, build, experiment, and ship mobile applications through hands-on labs, coursework, a capstone project, tools, and practical development guides.

scroll

Course overview

Build real apps.
Understand every layer.

A practical, build-first course on designing and shipping mobile applications — from your first running screen to a complete, tested app on a real device.

You'll learn

  • How mobile apps are structured, rendered and run
  • Building responsive interfaces from reusable components
  • State, navigation and application logic
  • Consuming REST APIs and persisting data on-device
  • Debugging, testing and preparing an app for release

You'll build

A series of small lab apps that grow into one polished course project you can put in your portfolio.

You'll use

React Native + Expo, Expo Go, VS Code, Node.js/npm, Git & GitHub, NativeWind and the Android emulator. See the toolkit →

Assessment

Coursework breakdown →

Teaching team

By the end

Plan, build, debug and present a working mobile application — and explain the engineering decisions behind it.

Learning roadmap

One course.
One path through it.

Each stage builds on the last. Labs, coursework and resources are attached to the stage where you need them.

  1. Getting Started

    Teaching team, coursework, why React Native + Expo, your first app and the team Git workflow.

    react-native-vs-native-vs-flutterexpoui-basicsgit-branches

  2. Development Environment

    Editor, SDK, emulator and Git — a setup you can trust for the rest of the term.

    editorsdk-emulatorgit-github

  3. Mobile UI

    Components, layout with Flexbox, styling, images and touch interactions.

    componentsflexboxstylinglists

  4. Application Logic

    State, events, forms and organising code so it stays readable as the app grows.

    statehooksforms-validation

  5. Navigation

    Stacks, tabs, parameters and deep links between screens.

    stacktabsparamsdeep-links

  6. Data & APIs

    Fetching from REST APIs, loading and error states, and storing data on the device.

    fetch-asyncrestlocal-storage

  7. Debugging & Testing

    Reading errors, using dev tools, logging and writing your first tests.

    dev-toolslogsunit-tests

  8. Advanced Concepts

    Device APIs, performance, animations and preparing a build for release.

    device-apisperformancebuilds

  9. Course Project

    Plan, build and present a complete mobile application.

    planningbuildpresentation

CapstoneDue Week 12

Design, build and ship one complete mobile app.

In teams of up to 4, you build a mobile app from your own new idea: analysis, design, implementation, testing and a live demo. It is worth 60% of the module.

  1. M1Team + ideaWeek 2
  2. M2Phase 1Week 6
  3. M3BuildWeeks 7–11
  4. M4Phase 2Week 12
  5. M5DemoFinal week
Open the project brief 5 required features · 5 deliverables

Command handbook

Stop Googling
the same commands.

53 commands across Git, terminal, packages, Android, builds and debugging — searchable and one-click copyable.

Open handbook
adb devices

List connected Android devices. Show emulators and USB devices visible to the Android Debug Bridge.

adb logcat *:E

Show Android error logs. Stream device logs, filtered to errors only.

emulator -list-avds

List virtual devices. Print the names of every Android Virtual Device you created.

→ all Android commands

Setup & installation

From “I just started”
to “my machine is ready.”

7 guided steps for Windows, macOS and Linux — each with verification commands and fixes for common errors.

Your setup progress0 / 9
Open checklist
  1. 01Install the development environment10 min
  2. 02Install Node.js & the SDK tooling10 min
  3. 03Install Git10 min
  4. 04Configure the Android SDK & environment30–45 min
  5. 05Configure an emulator or device15 min
  6. 06Run a test project10 min
  7. 07Verify everything5 min

$ where is everything?

Right here.