├── .gitignore ├── app.json ├── app ├── (tabs) │ ├── (favorite) │ │ ├── _layout.tsx │ │ └── index.tsx │ ├── (home) │ │ ├── _layout.tsx │ │ └── index.tsx │ ├── (profile) │ │ ├── _layout.tsx │ │ └── index.tsx │ ├── (search) │ │ ├── _layout.tsx │ │ └── index.tsx │ └── _layout.tsx └── _layout.tsx ├── assets ├── adaptive-icon.png ├── favicon.png ├── icon.png └── splash.png ├── babel.config.js ├── component └── screenConfig.tsx ├── mock └── commentData.ts ├── package-lock.json ├── package.json ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files 2 | 3 | # dependencies 4 | node_modules/ 5 | 6 | # Expo 7 | .expo/ 8 | dist/ 9 | web-build/ 10 | 11 | # Native 12 | *.orig.* 13 | *.jks 14 | *.p8 15 | *.p12 16 | *.key 17 | *.mobileprovision 18 | 19 | # Metro 20 | .metro-health-check* 21 | 22 | # debug 23 | npm-debug.* 24 | yarn-debug.* 25 | yarn-error.* 26 | 27 | # macOS 28 | .DS_Store 29 | *.pem 30 | 31 | # local env files 32 | .env*.local 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "name": "expo-bottom-tab-anim", 4 | "slug": "expo-bottom-tab-anim", 5 | "version": "1.0.0", 6 | "icon": "./assets/icon.png", 7 | "userInterfaceStyle": "automatic", 8 | "scheme": "your-app-scheme", 9 | "splash": { 10 | "image": "./assets/splash.png", 11 | "resizeMode": "contain", 12 | "backgroundColor": "#ffffff" 13 | }, 14 | "assetBundlePatterns": ["**/*"], 15 | "ios": { 16 | "supportsTablet": true 17 | }, 18 | "android": { 19 | "adaptiveIcon": { 20 | "foregroundImage": "./assets/adaptive-icon.png", 21 | "backgroundColor": "#ffffff" 22 | } 23 | }, 24 | "web": { 25 | "favicon": "./assets/favicon.png" 26 | }, 27 | "plugins": ["expo-router"] 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/(tabs)/(favorite)/_layout.tsx: -------------------------------------------------------------------------------- 1 | import { Stack } from "expo-router"; 2 | import React from "react"; 3 | 4 | const Layout = () => { 5 | return ; 6 | }; 7 | 8 | export default Layout; 9 | -------------------------------------------------------------------------------- /app/(tabs)/(favorite)/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import { StyleSheet, View, Text, Button } from "react-native"; 3 | import * as Haptics from "expo-haptics"; 4 | import { useTheme } from "@react-navigation/native"; 5 | 6 | export default function App() { 7 | const theme = useTheme(); 8 | return ( 9 | 10 | 11 | Haptics.selectionAsync 12 | 13 | 14 |