A restaurant-browsing mobile app built with React Native, Expo, and styled-components.
An early-stage React Native learning project: tab-based mobile UI for a meal-ordering app, with a themed restaurant list, search bar, and bottom-tab navigation. Built on Expo so it runs on iOS, Android, and web from a single codebase.
✨ Features
- Bottom-tab navigation — Restaurants, Map, and Settings tabs powered by
@react-navigation/bottom-tabs. - Restaurant list screen — scrollable
FlatListof restaurant cards rendered withreact-native-paper. - Searchbar UI — top-of-screen search input ready to be wired up to a real data source.
- Themed design system — central
theme(colors, spacing, fonts) consumed viastyled-componentsand a reusableSpacercomponent. - Custom Google Fonts — Oswald and Lato loaded via
expo-fontat startup. - Safe-area handling —
SafeAreawrapper usingreact-native-safe-area-contextso layouts respect notches and status bars. - Mocked restaurants service — promise-based
restaurantsRequestreads from local mock data, ready to swap for a real API.
Status: foundation milestone. Map and Settings tabs are placeholder screens — the focus so far is the Restaurants feature, theming, and navigation scaffold.
🛠️ Tech Stack
- Framework — React Native 0.68 + Expo SDK 45
- Navigation — React Navigation v6 (bottom tabs)
- UI Kit —
react-native-paper+react-native-svg - Styling —
styled-components/nativewith a custom theme - Fonts —
@expo-google-fonts/oswald,@expo-google-fonts/lato - Icons —
@expo/vector-icons(Ionicons)
📁 Project Structure
src/
├── components/ # Shared UI primitives (SafeArea, Spacer, Typography)
├── features/
│ └── restaurants/
│ ├── components/ # RestaurantInfoCard + styles
│ └── screens/ # RestaurantsScreen
├── infrastructure/
│ └── theme/ # colors, spacing, fonts, sizes
└── services/
└── restaurants/ # restaurantsRequest + mock data🙌 Credits
Built by Mohamed Gado while learning React Native and Expo.