对React工程师推荐React Native

首先

我在Another works株式会社实习,我叫哈克。
在工作中,我主要使用TypeScript和ReactNative开发移动应用程序(大约一年半)。
从4月份开始,我将在Another works株式会社正式就职。

ReactNative是一个选择。

在ReactNative中,可以充分利用React所积累的知识和技术。有React经验的开发者可以轻松进行本地开发。

我希望能向React工程师介绍React和React Native的共同点以及React Native的优点。

ReactNative 是什么?

可以说,JavaScript正在控制原生层面(iOS、Android)的UI并将其抽象为原生组件。

使用JavaScript来访问每个平台的API,并描述UI的外观和行为。
由于使用了内置的渲染API,所以不是通过WebView绘制,而是使用本地的UI渲染。基本上是符合操作系统的UI。

大致而言,可以通过JavaScript构建/操作原生UI。

听说Flutter等是用Dart实现的UI显示。(不是原生UI)

有一个公式非常直观易懂的图解。

reactnativeandroidiosImageImageViewUIImageViewTextTextViewUITextView
スクリーンショット 2022-03-30 16.25.01.png

与Web开发共通的部分。

JSXでUIの構築
ほとんどReactの知識でUIの作成ができます。
関数コンポーネント、hooksを使うことができます。

CSSに近いスタイリング
基本的に今まで培ってきたCSSの知見が活かせます。
yoga layoutが採用されており、flexも使えます!
ただし、webとは少し違う部分もあるので注意は必要。
キャメルケースでstyleを記述する。flex-gapは使用できないなど

chromeのdevelopperToolが使える
consoleやnetwork、performanceのデバッグが可能
ReactnativeDebuggerを使えば、ReduxDevtoolsなんかも使える。

Hot reloadによるwebに近い開発体験
ソースコードを保存するたびに自動でリロードが行われます。
expoを利用することでurlを読み取るだけで実機開発も可能。

TypeScriptが使える
型は正義

博览会这个最强的搭档

Expo是一个能够帮助开发和构建React Native应用的服务。
它提供多种库,印象都很高质量。文档也非常易读。
更新频率非常快,我信任它。

能够只需编写JSON格式的配置文件,就能够让Expo自动完成iOS/Android的设置,真是太感激了。

 

两种工作流程

如果使用expo,可以选择两种工作流。推荐首先使用托管工作流。

托管式工作流程
由于 Expo 可以管理本机开发的复杂部分,因此在使用托管式工作流程时,开发人员几乎不需要编写本机代码。
作为代价,可能无法进行依赖于本机的复杂实现,但也可以在中途切换到 Bare 模式。

裸工作流
因为已经脱离了Expo的管理,所以被称为”裸工作流”。
可以自由地更改原生层的代码。
作为脱离管理的代价,需要自行进行与原生相关的配置设置。
无法从裸工作流切换到受管理的工作流。

使用React Native的好处。

・由于是跨平台开发,所以开发速度很快。
・可以在公司内部共享React的知识和逻辑。
・对于有React经验的人来说,学习起来很容易。
・使用expo可以使证书的处理非常简单。

React Native的缺点

・缺乏信息(尤其是日语信息几乎没有)
・由于是社区驱动的,所以缺乏“只需使用这个就可以了!”这样的决定性库
・与使用本地语言开发(如Swift、Kotlin)相比,性能较差
・由于过多使用库,更新时易出现依赖关系错误。

学习的推荐

首先,强烈建议从教程开始尝试一下!
https://reactnative.dev/docs/tutorial

bannerAds