Skip to content
andokivilaidPublic

Repository files navigation

Mobileapp

An Expo app built with Expo Router, TypeScript, and file-based routing. It ships with a bottom tab bar (Home, Explore, Profile), a nested profile stack, light/dark theming, and no placeholder screens left to delete.

Getting started

npm install
npm start

Then open the app on a device with Expo Go, or press a for Android, i for iOS, or w for web in the Metro terminal.

Other scripts:

Command Description
npm start Start the dev server
npm run android Start and open on Android
npm run ios Start and open on iOS (macOS only)
npm run web Start and open in a browser
npm run typecheck Run TypeScript with no emit

Project structure

app/
├── _layout.tsx            Root stack, theme provider, font loading
├── modal.tsx              About screen, presented as a modal
├── +not-found.tsx         404 route
├── (tabs)/
│   ├── _layout.tsx        Bottom tab navigator
│   ├── index.tsx          Home
│   ├── explore.tsx        Explore / search
│   └── profile.tsx        Profile
└── profile/
    ├── edit.tsx           Edit profile form (pushed from Profile)
    └── settings.tsx       Settings with toggles (pushed from Profile)

components/                Button, Card, MenuRow, Themed primitives
constants/Colors.ts        Light and dark color tokens
assets/                    Icons, splash image, fonts

Every file under app/ is a route. Add a screen by adding a file — app/(tabs)/activity.tsx becomes /activity and shows up as a tab once you register it in app/(tabs)/_layout.tsx.

Customizing

  • Colors and theming — edit constants/Colors.ts. Screens read tokens through useThemeColor() from components/Themed.tsx, so both themes stay in sync.
  • Tabs — add or remove <Tabs.Screen> entries in app/(tabs)/_layout.tsx. Icons use expo-symbols with per-platform names.
  • Data — app/(tabs)/explore.tsx filters a local TOPICS array and app/(tabs)/profile.tsx renders a local USER object. Both are marked in the code as the place to swap in your API.
  • App name, icon, and splash — app.json and assets/images/.

Notes

  • Typed routes are enabled (experiments.typedRoutes in app.json), so router.push() and <Link href> are checked against the real routes at build time.
  • LICENSE is the MIT license that ships with the Expo template. Replace it with your own.

Releases

Packages

Contributors

Languages