尝试使用React Native制作iOS应用(第一部分,环境设置)
首先
因为想要兼顾学习React,所以我决定尝试制作iOS应用,并记录下来。平常我主要使用C++/C#进行开发,所以对于React和iOS应用来说,我是一个初学者,可能存在许多不足之处,还请多多包涵。
试用了以下链接中的React-Native(官方)的介绍,内容几乎相同。
明天,计划追加以下内容:
使用React-Native制作iOS应用(第2部分,页面切换)
使用React-Native制作iOS应用(第3部分,使用C++创建模块)
为什么选择React-Native?
在考虑要开发应用程序的阶段,我随便搜索了一下,想使用跨平台开发框架来开发Android和iOS应用。我考虑了C#(.NET MAUI)、React-Native和Vue-Native作为候选项。
然而,基于以下原因,我决定试用React-Native。
-
- 在mac环境下安装Visual Studio很麻烦。
-
- 据说Vue Native已经被废弃,不再维护。
-
- Vue Native(官方网站)
⚠️ Vue Native已被废弃,不再维护。
有关开发环境
大致上是这样的。
user@macbook ~ % sw_vers
ProductName: macOS
ProductVersion: 11.7.9
BuildVersion: 20G1426
user@macbook ~ % node -v
v18.13.0
user@macbook ~ % npm -v
9.8.1
建立环境
根据设置开发环境的指南,我们需要安装Node、watchman和CocoaPods。
(由于Xcode已经安装,所以不再重复,react-native似乎会在使用npx创建项目时自动安装)。
你将需要 Node、Watchman、React Native命令行界面、Xcode和CocoaPods。
brew install node
brew install watchman
# なんかこれだけactivesupportのインストールとかやらないと入らなかった。
gem install cocoapods
创建项目
# プロジェクトの作成は以下のコマンドを実行
npx react-native@latest init AwesomeProject
# react-native-cliがあると作成に失敗するらしいので、インストールされてたら消しておくこと
npm uninstall -g react-native-cli @react-native-community/cli
# 作成できていれば、こんな感じでフォルダやファイルが作成される
user@macbook AwesomeProject % tree ./ -L 1
./
├── App.tsx
├── Gemfile
├── Gemfile.lock
├── README.md
├── __tests__
├── android
├── app.json
├── babel.config.js
├── index.js
├── ios
├── jest.config.js
├── metro.config.js
├── node_modules
├── package.json
├── tsconfig.json
├── vendor
└── yarn.lock
7 directories, 12 files
在iOS应用中安装依赖关系的包
据说CocoaPods可以管理iOS应用程序的依赖关系。
当通过npm等方式添加包时,它也可以通过pod的install/update命令将依赖的包添加进来。
# iosディレクトリで以下を実行する。
bundle install
bundle exec pod install
执行应用程序
# シミュレータが立ち上がっていればコマンドじゃなくてもOK
open -a Simulator
# シミュレータでアプリが実行される。(初回はビルドに結構時間がかかる)
npm start
npm start ios
暂时先打个HelloWorld试试看
总之,问候是重要的对吧?虽然App.tsx是默认显示的,但首先我们需要修改index.js以显示HelloWorld。
/**
* @format
*/
import React, { Component } from 'react';
import { AppRegistry, Text, View, StyleSheet } from 'react-native';
//import App from './App';
import { name as appName } from './app.json';
export class HelloWorldApp extends Component {
render() {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<Text>Hello, world!</Text>
</View>
);
}
}
AppRegistry.registerComponent(appName, () => HelloWorldApp);
如果出现这种屏幕,就可以了。
参考如下:
【入门】第一次使用 React Native
