25CSCI38H · Course workspace
MobileDevelopment
Learn, build, experiment, and ship mobile applications through hands-on labs, coursework, a capstone project, tools, and practical development guides.
Where is everything?
Your Mobile Development workspace.
Every lab, deadline, command, installer and fix for this course lives here. Bookmark this page — it's the only one you need.
- labs/Labs — Step-by-step practical sessions02
- coursework/Coursework — Graded assignments & deadlines02
- project/Course Project — The capstone app you ship01
- commands/Command Handbook — Searchable, copyable commands53
- tools/Development Tools — Everything you install & why08
- setup/Setup & Installation — From zero to a working machine07
- troubleshooting/Troubleshooting — Errors, causes and fixes22
- resources/Resources — Docs, tutorials & cheat sheets17
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.
- Labs
- 02
- Coursework
- 02
- Course project
- 01
- Tools
- 08
- Commands
- 53
01 — 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
02 — You'll build
A series of small lab apps that grow into one polished course project you can put in your portfolio.
03 — You'll use
React Native + Expo, Expo Go, VS Code, Node.js/npm, Git & GitHub, NativeWind and the Android emulator. See the toolkit →
04 — Assessment
05 — Teaching team
- Dr. Amira AbdelazizModule leaderamira.abdelaziz@bue.edu.eg
- Ramy AbousaifTAramy.abousaif@bue.edu.eg
- Ali MotaweaTAali.motawea@bue.edu.eg
- Youssef MahmoudTAyoussef.elbashary@bue.edu.eg
06 — 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.
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
Development Environment
Editor, SDK, emulator and Git — a setup you can trust for the rest of the term.
editorsdk-emulatorgit-github
Mobile UI
Components, layout with Flexbox, styling, images and touch interactions.
componentsflexboxstylinglists
Application Logic
State, events, forms and organising code so it stays readable as the app grows.
statehooksforms-validation
Navigation
Stacks, tabs, parameters and deep links between screens.
stacktabsparamsdeep-links
Data & APIs
Fetching from REST APIs, loading and error states, and storing data on the device.
fetch-asyncrestlocal-storage
Debugging & Testing
Reading errors, using dev tools, logging and writing your first tests.
dev-toolslogsunit-tests
Advanced Concepts
Device APIs, performance, animations and preparing a build for release.
device-apisperformancebuilds
Course Project
Plan, build and present a complete mobile application.
planningbuildpresentation
Labs
Learn by building.
Guided, hands-on sessions. Each lab has objectives, steps, testing, troubleshooting and a submission checklist.
All labsCoursework
Assessed work,
clearly explained.
Objectives, tasks, deliverables, grading and deadlines — one readable page per assignment.
View courseworkPhase 1 — Analysis, Architecture & Prototype
Analyse your app idea, design it (use case + activity diagrams, architecture, data plan) and implement the first 9 UI screens — 3 per team member.
Phase 2 — Final Implementation, Testing & AI Log
Finish the app, including architecture, persistent storage, a Google API, a device feature, validation and error handling. Add 3 unit tests and a complete AI engineering log.
Design, build and ship one complete mobile app.
In teams of up to 3, 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.
- M1Team + ideaWeek 2
- M2Phase 1Week 6
- M3BuildWeeks 7–11
- M4Phase 2Week 12
- M5DemoFinal week
Command handbook
Stop Googling
the same commands.
53 commands across Git, terminal, packages, Android, builds and debugging — searchable and one-click copyable.
Open handbookcd <folder>Change directory. Move into another folder. Use `..` to go up one level.
lsList files. Show the files and folders in the current directory.
pwdPrint working directory. Show the full path of the folder you are currently in.
mkdir <folder-name>Create a folder. Make a new directory.
code .Open folder in editor. Open the current folder in VS Code.
git clone <repository-url>Clone a repository. Download a copy of a remote repository, including its full history.
git statusCheck repository status. See which files changed, which are staged and which branch you are on.
git initStart a repository. Turn the current folder into a Git repository. Only needed if `git status` says "not a git repository".
git config --global user.name "<Your Name>"Set your Git identity. Tell Git who you are. Every commit is labelled with this name and email.
git add <file>Stage changes. Choose which changes go into the next commit.
gh repo create <name> --public --source=. --pushCreate a GitHub repo from a folder. Using the GitHub CLI, create a remote repository and push your current project in one step.
gh auth loginSign in to GitHub CLI. Authenticate the GitHub CLI with your account through the browser.
gh pr create --fillOpen a Pull Request. Open a Pull Request from your current branch to main. On the website, use the **Compare & pull request** button instead.
npm installInstall dependencies. Install every package listed in package.json into node_modules.
npm install -D <package-name>Install a dev dependency. Install a tool the project needs only during development (linters, test tools).
npx <package>Run a package (npx). npx = Node Package eXecute. It runs a package's command without installing it globally. npm installs, npx runs.
npm run <script>Run a package script. Run a script defined in the "scripts" section of package.json.
node -vCheck Node.js version. Print the installed Node.js version — the first thing to check when tooling misbehaves.
npx create-expo-app@latest <app-name>Create a new app. Scaffold a new mobile project from the official template.
npm run reset-projectReset the starter project. Clear the demo screens from a new Expo app and leave a blank `app/index.tsx`. Answer `Y` to keep the old files in `app-example/`.
npx expo startStart the dev server. Start Metro and show a QR code to open the app on a device.
npx expo install <package>Install a compatible package. Install a library at the version that matches your SDK.
npx expo-doctorDiagnose project problems. Check the project for version mismatches and common configuration issues.
Development toolkit
The tools of the trade.
What each tool is, why we use it, how to install it, and what to do when it breaks.
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.
Resources
Curated, not collected.
Official docs, tutorials and references chosen for this course.
All resourcesExtra learning
Not required for grades. For students who want to go further.
