Beginner

Mobile Fundamentals: Layouts and Navigation

Build a small multi-screen app from a blank Expo project — flexbox layouts, safe areas, and file-based navigation with tabs and stacks.

~4h
0 / 6 steps
🚀
Intro

Before We Start

Prerequisites: Node.js installed, basic React (components, props, hooks), a phone with Expo Go or a simulator/emulator.

Version note: verified against current Expo documentation as of July 2026: Expo SDK 57 (React Native 0.86, React 19.2), created with create-expo-app and Expo Router's default tabs template. Expo Router now ships routing built directly on react-native-screens; file-based routing and the app/ directory convention have been stable since Router v3, so this pattern is unlikely to change under you. React Native's ownis deprecated in favor of react-native-safe-area-context — the template already wires this up.

Every mobile app is fundamentally two things: how content is arranged on a screen, and how a user moves between screens. React Native uses flexbox for the first and, in the modern Expo stack, file-based routing for the second — meaning the files in your app/ folder define your navigation graph directly, without a separate configuration object to keep in sync. This project builds a three-screen app (a tab-based home/profile split, plus a detail screen pushed on top) so you leave with both muscles trained at once.

🔨

Scaffold with the Expo Router template

🔨

Lay out a screen with flexbox

🔨

Add a stack screen for details, then nest layouts and customize the tab bar

🎯
Secret Mission

Secret Mission: Build a settings flow with a modal

🧹
Wrap Up

Before You Go

Pro

Test what you just learned

Self-testing is one of the best ways to retain new skills. Unlock project quizzes to check your understanding.

Log in to unlock