Pegava 约会应用项目教程
1. 项目的目录结构及介绍
Pegava 约会应用项目的目录结构如下:
pegava-dating-app/
├── expo-shared/
├── github/
│ └── patches/
├── src/
│ ├── components/
│ ├── screens/
│ └── ...
├── .gitignore
├── App.json
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── babel.config.js
├── metro.config.js
├── package.json
├── pull_request_template.md
├── tsconfig.json
└── yarn.lock
目录介绍
expo-shared/
: 包含 Expo 共享资源。github/
: 包含 GitHub 相关文件,如补丁文件。src/
: 项目源代码目录,包含组件、屏幕等。.gitignore
: Git 忽略文件列表。App.json
: Expo 应用配置文件。CODE_OF_CONDUCT.md
: 行为准则文件。CONTRIBUTING.md
: 贡献指南文件。LICENSE
: 项目许可证文件。README.md
: 项目说明文件。babel.config.js
: Babel 配置文件。metro.config.js
: Metro 配置文件。package.json
: 项目依赖和脚本配置文件。pull_request_template.md
: 拉取请求模板文件。tsconfig.json
: TypeScript 配置文件。yarn.lock
: Yarn 锁定文件。
2. 项目的启动文件介绍
Pegava 约会应用的启动文件是 App.json
。这个文件包含了 Expo 应用的基本配置,如名称、版本、图标等。
{
"expo": {
"name": "Pegava",
"slug": "pegava-dating-app",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
}
},
"web": {
"favicon": "./assets/favicon.png"
}
}
}
3. 项目的配置文件介绍
babel.config.js
Babel 配置文件,用于配置 JavaScript 编译器。
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
};
};
metro.config.js
Metro 配置文件,用于配置 React Native 的打包工具。
const { getDefaultConfig } = require('@expo/metro-config');
const defaultConfig = getDefaultConfig(__dirname);
module.exports = defaultConfig;
package.json
项目依赖和脚本配置文件。
{
"name": "pegava-dating-app",
"version": "1.0.0",
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"expo": "~44.0.0",
"expo-status-bar": "~1.2.0",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.