- React Native, TypeScript, Expo v.50+. Expo Router, StyleSheet, CSS
- Dark theme
- Fonts: Google Font
- @expo-google-fonts dependency
- Forms: Login, Register, Reset Password, Form Validation
- Hooks: Form Validation, Mouse Hover
- Loading indicator
- Modal: Alert modal with option for full screen background (mobile only)
- Navigation (mobile): Expo router (Stack > Drawer > Tabs)
- expo-router dependency
- Navigation (web) Reponsive Top Navbar, Drawer menu
- Offline Features: Saves theme selection locally (web, mobile)
- @react-native-async-storage dependency
- Screens
- Basic screens (mobile, web): Home, Login, Register, Reset Password, Feed, Profile, Settings, Hidden
- State Management:
- React Context: AuthContenxt, ThemeContext
- Styling
- CSS (web), StyleSheet (mobile)
- Global styling vars
- react-native-reanimated dependency
- 1 Stack Navigator (
app/_layout
) with 4 Screens (app/index
,app/login
,app/register
,app/reset-password
) - 1 Screen opens as a Modal (
reset-password
)
- 1 Drawer Navigator (
app/(drawer)/_layout.tsx
) - 1 screen (
app/(drawer)/settings
) - Tabs navigator is not rendered on
settings
screen