React Native vs kotlin:你需要知道的一切
已发表: 2019-01-25如今技术变化如此之快,每天更新版本的开发框架都在更新,并允许做一些新的事情! 为了满足快速波动的业务需求,有几种不同的平台和技术。 在这里,我将讨论用于开发 Android 和 iOS 应用程序的两个编程平台。
作为 React 系列的下一代成员,React Native 是一个 JavaScript 平台,它为 iOS 和 Android 以及 Javascript 提供混合应用程序开发,而 Kotlin 现在是继 Java 之后的第二个 Android 应用程序开发官方语言。 所以你可以用它作为 Kotlin 的替代品。
从去年开始,我们看到他们对 StackOverflow 和 Github 解决方案的需求不断增长。
让我们看看什么会粘,什么会滑。
反应原生:
React(使用 javascript 构建 Web 和移动应用程序的框架)+ Native(javascript 使用的原生组件)= React Native。 它是一个 JavaScript 框架,用于为 iOS 和 Android 编写真正的原生移动应用程序,以及跨 Web 和移动应用程序重用代码。 该框架允许开发人员构建真正原生于他们最喜欢的经典 JavaScript 的移动应用程序,并从声明性组件构建丰富的移动 UI。
要使用 react native 进行开发,您需要安装 NodeJs() 和 NPM(Node Package Manager = 用于安装 react-native 依赖项)软件并进行进一步的配置。
优点:-
构建速度更快: React Native 的主要卖点是它的开发时间更短。 现在问题出现了,如何更快地导致短时间开发? 所以这个问题的答案是:它提供了许多现成的组件,从而节省了不创建新组件的时间。 例如,FlatList 是 react-native 提供的一个内置组件,它为您提供与 Android 的 recyclerview 或 iOS 的 table view 相同的功能。
用一个框架拍摄两个平台:您可以一次拍摄两只鸟。 React Native 允许您同时为 iOS 和 Android 平台构建应用程序,并且您只需维护一个代码库。 目前 React 库并没有提供原生 SDK 提供的所有包,但是没有提供的包会被编写。 因此,您以一个价格获得两个应用程序。
RCT 桥由 NPM 提供,它依赖于平台。 所以代码在两个平台上都执行。
热重载:这对开发人员来说是最大的优势。 此功能可以节省时间,因为他们不必在每次更改代码时都运行应用程序,他们只需要保存代码,它就会反映在屏幕上。 代码的这种自动反射由 NPM 提供的侦听器执行。 而对于本机代码,即使要进行小的更改,整个应用程序也会重新启动。

较小的团队:本地开发需要两个独立的团队,这会减慢开发速度,因为可能存在沟通障碍。 但是对于 React,了解 JavaScript 的开发人员可以为这两个平台编写代码,与原生团队相比,团队规模减小了。 所以团队越小越容易管理。
从 Web 迁移到移动:如果一个考虑从 Web 切换到移动开发的想法会更容易切换,因为 JavaScript 在 Web 开发中很常见,对于移动也是如此。 因此,如果 Reach JS 开发人员想要将他的 Web 应用程序迁移到移动平台,他可以很容易地做到这一点,因为 React 平台在移动平台上对他来说也是一样的。 甚至反之亦然。
缺点:-
所需的先决知识:主要缺点是开发人员应具备适当的 Javascript 知识,然后将其与混合应用程序的本机代码相结合。 他们还必须像在 Android 中那样使用 XML 文件编写自定义组件。
不太安全:当涉及到像移动银行这样的 A 类安全性时,React 的安全性较低,因为 JavaScript 库以其脆弱性而闻名。 因此需要特别注意确保所使用和编写的代码不是恶意或肮脏的。 程序员在使用 3rd 方插件时应格外注意。
有限的第 3 方库:在 API 可访问性方面,本机应用程序开发框架可以直接使用所有类型的 API。 React Native 应用程序只能在其开发过程中使用少数 API。 为了实现复杂的 API,您需要使用 Native 技术构建连接层。
科特林:

Kotlin 由 JetBrains 开发,是一种在 Java 虚拟机上运行的新编程语言,它被编译为 JavaScript 源代码或使用 LLVM 编译器基础架构。 它现在是 Google 认可的 Android Studio 的官方语言。

优点:
Kotlin 中的代码提供了精确和简洁的代码库,但清晰明了,出错的机会更少,尤其是对于 Null 指针,并且在生产中具有稳定的代码,与您在 java 中编写的相同功能的代码行更少。
Java 代码:
public class clearBridge { public static double calculate(double a, String op, double b) throws Exception{ switch (op) { case "add": return a+b; case "substract": return ab; case "multiply": return a*b; case "divide": return a/b; default: throw new Exception(); } } }
科特林代码:
fun calculate(a: Double, op: String, b: Double): Double { When (op) { "add" -> return a - b "substract" -> return a + b "multiply" -> return a * b "devide" -> return a / b else -> throw Exception() } }
可靠的维护和支持: Kotlin 由伟大的公司 JetBrains 提供,该公司因提供最好的 IDE 工具而广受欢迎。 所以毫无疑问,它将忽略为 Kotlin 提供工具支持。 它支持包括 Android Studio 在内的各种 IDE。 JetBrains 正在开发其框架 Ktor,用于创建具有连接系统的异步服务器和客户端。
更少的代码:编码有一个经验法则:“你编码的越少,发生的错误就越少”。 这为生产中的稳定代码留下了更少的错误空间和更多的空间。 对于 Kotlin,不需要为 null 提供条件,而在 java 中,我们需要为 null 值提供条件。
可靠的语言:在 2011 年出现之前,Kotlin 在最终发布之前经历了多个测试阶段。 而在 Android 上工作并处理不同的版本是开发人员最大的痛苦,Kotlin 的可靠性是一种祝福。
与现有代码的兼容性: Kotlin 与 Java 本身配合得很好,包括提供丰富生态系统的所有工具和框架。 最终,代码将被编译,它将字节码返回给独立于平台的 Java 虚拟机。 如果您在 Kotlin 中编写函数并从 java 文件(在 Android Studio 中)调用它,它将执行,因为最后,它将被转换为字节码。
缺点:

学习曲线: Java 和 Kotlin 之间存在一些差异,因此希望切换到 Kotlin 的开发人员会有一个学习曲线。 为此需要适当的培训和时间。 变量声明、定义函数等的语法将发生变化。
较小的社区:尽管在市场上迅速普及后,由于贡献者的一些未回答的问题,它的社区较小,而 React Native 的社区较大,因为它是许多开发人员都知道的 JavaScript 库。 正如上面介绍中提到的,您可以检查问题的数量及其贡献的解决方案。
结论
React Native 是一个蓬勃发展的社区,它为移动应用程序开发领域提供了一个有凝聚力的生态系统,以及对库和插件的访问,以确保更快的上市时间。 这些应用程序在不影响性能的情况下享受原生应用程序的直观和强大的功能,所有这些都在缩短的时间、成本和资源中完成。
另一方面,Google 推荐 Kotlin 作为 Android 开发的标准 IDE。 Kotlin 与 Java 100% 可互操作,并提供与 Java 和 Android 项目的向后兼容性。 Kotlin 是一种企业级语言,旨在解决现实世界的开发问题。