移动前端开发和web开发都属于前端开发的范围。
不难发现,PC端web开发工作重点主要都在代码和工程化上。
总之,移动端的开发不仅需要投入更多的学习成本在代码和工程化上,还需要重视跨平台、版本管理等。
React Native (RN)是一个用于构建跨平台应用程序的 JAVAScript 框架。2015年由facebook开源,社区驱动。RN使用 React 为 Android、iOS 等创建原生应用,现在甚至已经探索出了包括React Native windows、React Native macOS和React Native Web等新的项目,支持更多的平台。
React Native
提供了一组与平台无关的核心原生组件,例如View
、Text
和Image
直接映射到平台的原生 UI 构建块。
简单讲,就是RN
在Android端构建时会把View
编译为AndroidView
,IOS端构建时会把View
编译为IOSView
,在开发人员视角,我们只需要知道RN包装的View
组件即可。
下载地址:https://developer.android.google.cn/studio/
Android studio是安卓应用的开发工具,安装它是为了帮助我们自动安装Android SDK和虚拟化套件,不需要一个个手动下载。
安装studio,一直点击下一步:
安装完成后打开studio会弹出初次设置:
之后一直下一步就行了,然后内存大的可以将内存设置调大一点。
配置环境变量:
新增Path变量:
地址:https://docs.expo.dev/tutorial/create-your-first-app/
使用维护TypeScript模板的Expo创建模板工程,执行:
yarn create expo-app --template
选择模板工程
命名项目名称
安装成功
将package.json中启动命令加入--clear
(启动时清上次缓存,防止一些情况的报错)
数据线连接手机,并打开手机的开发者模式,将开发者选项中的USB安装和USB调试打开,下图为小米手机,其他手机请百度:
启动项目
输入"a"就会在android手机上自动安装Expo Go应用,并打开你的项目
首次连接完成后,在同一局域网下,可拔掉数据线,通过Expo中的扫码形式预览项目
如果需要不使用手机,只在PC浏览器端查看项目,通过键入"w"可在预览web形式的项目,但在此之前运行如下命令安装依赖,否则启动失败:
(本机使用了node16,测试在node18下会报错)
yarn add react-dom react-native-web --save
yarn add @expo/webpack-config --save-dev
npx expo install react-dom react-native-web @expo/webpack-config
地址:https://reactnativeelements.com/
安装依赖:
yarn add @rneui/themed @rneui/base
# elements的api
# https://reactnativeelements.com/docs/components/button
地址:https://rn.mobile.ant.design/docs/react/introduce-cn
安装:
yarn add @ant-design/react-native --save
引入组件:
方式一:
import Button from '@ant-design/react-native/lib/button';
方式二(推荐):
1)安装babel相关依赖:
yarn install babel-plugin-import --save-dev
2)添加babel.config.js的配置
JavaScript
{
"plugins": [
["import", { libraryName: "@ant-design/react-native" }]
]
}
3)按需引入组件即可
JavaScript
import { Button } from '@ant-design/react-native';
说明:有人反映通过 react-native init 创建的项目在使用时可能会报 Unable to resolve module react-dom 的错误 ,此时不妨安装 babel-plugin-module-resolver 试试~
当我们的应用程序很小时,我们通常将所有组件放在一个目录中:
MyApp
├── components
│ ├── Avatar.js
│ ├── Button.js
│ └── List.js
└── App.js
随着我们的应用程序的增长,我们通常会将“screens”组件分离到一个screens
目录中,并开始进一步对components
目录中的文件进行分类。“screens”组件应该占据整个屏幕,例如个人资料屏幕或设置屏幕。
如果使用着导航的库,例如:react-navigation
,我们可以将导航器/路由器组织到一个单独的navigation
目录中(也可以叫navigators
或routing
)。
其他一些常见的文件类别:api
:网络 API 调用,通常由提供商或路由组织assets
:要与应用捆绑的图像和其他文件hooks
: 自定义挂钩reducers
: reducer 函数,用于使用useReducer钩子(或其他库)管理应用程序数据theme
:共享颜色和文本样式(有时称为styles)utils
: 字符串格式化等杂项工具
MyApp
├── api
│ ├── Twitter.js
│ ├── facebook.js
│ └── instagram.js
├── assets
│ ├── app-icon.png
│ └── splash-screen.png
├── components
│ ├── buttons
│ │ ├── RoundButton.js
│ │ └── SquareButton.js
│ ├── cards
│ │ ├── ArticleCard.js
│ │ ├── ImageCard.js
│ │ └── VideoCard.js
│ ├── Avatar.js
│ └── List.js
├── hooks
│ ├── useInterval.js
│ └── useLogin.js
├── screens
│ ├── Feed.js
│ ├── Search.js
│ ├── Post.js
│ ├── Reply.js
│ ├── Profile.js
│ └── Settings.js
├── navigation
│ ├── RootStackNavigator.js
│ └── ProfileTabNavigator.js
├── theme
│ ├── colors.js
│ ├── textStyles.js
│ └── spacing.js
├── utils
│ ├── generateUuid.js
│ └── formatCurrency.js
└── App.js
└── ...
当项目增长到包含许多不同的功能或 UI 流程时,通常会在顶层按功能对文件进行分类。如果多个团队在开发该应用程序,功能名称将经常与团队名称对齐:例如帐户、演化、隐私。
功能目录通常分组在modules
、packages
或apps
目录下。在多个功能/团队之间共享的组件或实用程序通常位于其中的特殊目录shared
或core
目录中,并被视为公共 API。一个功能应该只引用它自己的目录或共享目录中的文件,而不是另一个功能目录中的文件——这表明该文件是移动到共享目录的候选者,并将其视为公共 API。
这个项目结构旨在为每个文件清楚地描述:它应该存在的地方,谁维护它,以及它是否被允许导入到其他功能中。
MyApp
├── modules
│ ├── accounts
│ │ ├── components
│ │ │ ├── UserProfile.js
│ │ │ └── LoginInput.js
│ │ ├── screens
│ │ │ ├── Profile.js
│ │ │ ├── Login.js
│ │ │ └── Deactivate.js
│ │ ├── utils
│ │ │ └── formatAccountName.js
│ │ └── App.js
│ ├── growth
│ │ ├── components
│ │ ├── screens
│ │ ├── utils
│ │ └── App.js
│ ├── privacy
│ │ ├── components
│ │ ├── screens
│ │ ├── utils
│ │ └── App.js
│ └── shared
│ ├── components
│ │ ├── Avatar.js
│ │ ├── Button.js
│ │ └── List.js
│ └── utils
│ └── format.js
└── App.js
React Native中除了基本的页面开发,还应该掌握导航、数据管理、本地存储、网络交互、动画、手势、原生调用等操作方式。仔细阅读React Native官方文档基本可以掌握。
expo:https://docs.expo.dev/tutorial/create-your-first-app/
react navigation导航框架:https://reactnavigation.org/docs/getting-started/
安卓开发工具:https://developer.android.google.cn/studio/
UI框架 React Native Elements:https://reactnativeelements.com/
UI框架 Ant Design Mobile RN:https://rn.mobile.ant.design/index-cn/
文章已收录至https://lichong.work,转载请注明原文链接。
ps:欢迎关注公众号“Fun肆编程”或添加我的私人微信交流经验