我喜欢React Native而非Native IOS开发的4个理由

自从我开始学习React Native以来已经快一年了。 我已经赢得了两次黑客马拉松,我怀疑如果没有框架,我是否会赢得他们。 我昨天在Fb Dev Circle举办的一次黑客马拉松中赢得了第二次黑客马拉松,这启发了我写这篇文章。

1.跨平台

这是显而易见的,但值得一提。 在尝试本机响应之前,我正在使用C ++构建IOS应用,因此可以避免在将其移植到Android时重写相同的代码。

这个应用程式是由Swift所建,因此经常在Objective-C上被推荐。 但是,如果要将C ++代码连接到swift,则必须编写Objective-C来桥接C ++到swift。 因此,如果您想以一种真正本机的方式(没有框架)制作跨平台,则必须学习充满方括号,Objective-C的恐龙语言。

2.没有编译时间

响应时间不存在编译时间。

首次运行应用程序可能需要一段时间才能构建,但是此后,您可以通过在模拟器中键入`ctrl + M`来轻松启用热重载。 启用热重载后,当您将窗口从编辑器切换到模拟器时,设备将使用新保存的代码重载。

我从未见过有人使用热重装来进行本机IOS开发,并且它是一项改变生活的功能,使编码变得更加有趣。 如果您是从未曾尝试过热重装的IOS开发人员,我建议仅针对此功能尝试本机响应。

3.学习曲线

这部分取决于您当前所熟悉的堆栈。

1,您熟悉React

React Native本质上就是React。 它只是使用本机函数而不是通过浏览器呈现。 在这方面有一些细微的变化,例如替换了

和驼峰式样式而不是连字符,但是它非常微妙,以至于大多数React开发人员都可以在几个小时内适应它。

2.您熟悉JS,HTML和CSS

React Native有一个很棒的文档,它是交互式的,并且文档齐全,如果您熟悉如何将其用于本机应用程序,这将是非常令人愉快的。 有一些独特的反应概念,例如状态和道具,但是一旦您了解了这两个概念,就可以做很多事情,并且使用本机反应不会有很多挫败感。

该文档比Swift更易于理解,因为它们提供了示例,您可以轻松地复制和粘贴它们。 对于本机IOS开发,通常必须处理基于GUI的界面生成器,因此如果不将其连接到故事板,则复制粘贴将无法工作。 另外,Swift文档通常只提供最少的信息,因此可能难以实现。

3.您不熟悉Web开发

不用担心,这就是我所处的情况:我使用html canvas制作了简单的应用程序,但我对es6并不熟悉。

正如我上面提到的,React Native具有热重载启用功能,这使编码变得更加有趣,因此您将有很多时间学习Web开发所需的一切。

Js拥有大量在线资源,您可以通过复制和粘贴到项目中来轻松使用这些资源。 使用Swift时,通常存在版本不兼容的差异(即Swift 3和Swift 4),因此您必须更改部分代码才能使其在项目中工作,这有时会令人沮丧。 相比之下,无论您遇到什么问题,JS社区在这一点上都是如此之大,还有很多其他问题,并且很容易从在线粘贴代码。

就获得技能的价值而言,一般的Web开发技能(HTML,JS)可能会保留一段时间,因为Javascript是Github上最受欢迎的语言,而NPM是最大的软件包管理器,但是Swift可能不会持续很长时间如果iOS平台消失,则可以考虑(考虑到有多少Android手机正在起飞)。

4. Expo (从Windows开发iOS应用!)

Expo是一项构建服务,无需使用Xcode即可构建iOS应用。 并非所有人都喜欢它,因为它会限制您使用Expo SDK提供的功能。 但是,这是有益的,因为没有Mac的人可以为iOS项目做出贡献。

在我的一个实习期间,我不得不为一家没有Mac的公司构建POC iOS应用。 我与React Native一起去,所以我离开之后那里的人可以继续发展。 这对黑客马拉松也非常有用,因为您无法预测队友的操作系统,但每个人都希望开发应用程序。

弱点

尽管我喜欢React Native,但它也有缺点:性能。 性能通常不会对用户体验产生重大影响,但肯定会引起注意。

Wix对此主题进行了精彩演讲(https://www.youtube.com/watch?v=OmiXlJ4ZzAo&t=1291s)。 总结一下,默认情况下,React Native应用并不是完美的。 您需要编写一些本机代码,以使其与真正的本机应用程序区分开。 在Wix,他们保留了“ 10%本地开发人员”来填补空白。

我发现这个概念很吸引人,因为许多人似乎不愿意使用React Native来提高其性能,但是通过拥有一些本地开发人员,他们克服了这个问题。 从业务角度来看,这也很有效。 您可以开始构建一个纯粹的React Native应用程序,同时针对iOS和Android用户,同时保持开发速度快且一开始的预算最小。 只有在确认有实际需求之后,才可以通过添加本机代码来使其性能与本机应用程序相当。

结论

React Native之所以令人惊叹,有四个原因:提供无编译时间的跨平台开发,同时使用最流行的一种语言(JS)易于学习,并且所有这些都可以通过使用Expo从Windows获得。 它的缺点是稍微缺乏性能,可以通过编写本机代码来解决,这与为iOS和Android构建两个单独的应用程序相比,工作量要少得多。