转载:选择 React Native 的理由

从开始知道 React Native 到现在已经过了5个月,真实的试用也经历了三个月的时间。阅读文档开始,了解是什么,到简单的理解为什么,都是在聆听不同的人的不同的声音,无论是,知乎上的“科学家”们,还是 Youtube 上的各位“牛人”,都从某个角度告诉了我们选择 RN 的理由。

国内开始询问为什么用 RN 的问题由来已早,见于知乎,看到的解释,尚没有让我看到能真实反应今天的 RN 的状况的内容,带出来的各种负面的反应大于正面的反应,混乱了问题的真正所在,“为什么要选择 RN”。

当开始问,“评价 RN”,这样的问题,而真正想知道为什么要选择 RN 的理由的时候,其实际,已经和为什么选择 RN 这样的初衷渐行渐远,大多数的回答,让人感觉的更多的是,RN 还有很多 Bug,RN 性能还是不如 Native Code,等等诸如此类,或多或少的阻碍了某人去尝试试用 RN 的那点热情。

在 React Conf 2017 上 Airbnb,以及 Wix.com 的各位“牛人”的演讲中,充分的体现了他们为什么选择 RN 的主题,他们的演讲所表达的,是走的更远的过程,把 Web,Mobile 项目合并为 用 React X 来统一,减少了开发的成本,还使得项目更加高效,当然,虽然如此, RN 的采用,并不代表只需要,完全的 JS 程序员,只是负责写 Native Code 的程序员依然存在,不过处理的问题更集中了,人员相对减少了。

我同意上面的观点,试用的原因只有一个,就是高效,使得开发、维护项目更加高效,而且真的可以做到。

RN 发展到今天,已经是位于 0.47.1 的位置上,每个月的版本迭代,其发展的速度相当的快,虽然,还有诸多的问题所在,但是其促成的高效开发,学一次,随处可写,已经实实在在可以应付各类手机项目问题。

当代码从 Native Code 转到 RN 的时候,所面临的最大的问题,或许就是性能的问题,这已经不是 RN 的短板所在,因为有很多优秀的教程和演说,已经说明了提升 RN 以接近 Native Code 性能的实践和方法,并得到了很好的效果。这其中 Wix.com 上的“牛人”走在前面,去 Youtube 上看看他们在 React Conf 2017 上的演讲,你就会有很多启发,觉得其实用 RN 实现 Native Code 的性能并不难,或许相当的容易。

或许选择 RN 以使用,对很多人,有很多壁垒,是的,其中一个,RN 要求你绝不仅仅是一个良好的 JS 程序员,或者是只懂得 JS 的程序员。而相反的是,你需要是一个有相当经验的 Android 或者 iOS,或者同时使用过两种开发工具的有能力的程序员。

从个人体验上,至今,个人做的项目,仅仅是用了 3 个月左右的时间(学习了 2 个月)基本同步完成了 Android 和 iOS 部分的应用,这是一个相对复杂的数据计算应用,而 RN 大幅度的提升了项目的效率。

与之前类似 iOS 应用做了对比,减少了至少 2 / 3 的时间,这是一个令我惊讶的事实,我没有想到 RN 有如此高的效率。错误率也相对减少了,而调试变得简单。

感觉写应用又回到了有趣的时代。

当然,这其中得益于 Realm 手机数据库,Mbox 状态管理两种高效的第三方组件的帮助。

RN 中的第三方的组件并不是所有都很完善,越简单的库,越稳定,而复杂的库,问题会随之而来,在实际的开发中,通常会遇到两种问题:

第一,库有缺陷,提出的 Issue 得不到快速的解决,那么你只好亲自动手去修改了,往往自己修改要快过等待。

第二,库缺乏一些自己需要的特性,这样的问题,除了自己解决,没有更好的办法。而在自己解决的过程中,你会对 RN 了解的更全面。

对于新手而言,我想说,在选择 RN 之前,你需要是一个有着 Android 或 iOS 开发经验的程序员,在我看来,这必不可少。

然后,学习有成本的,但是,不要看重学习的成本而忽略了其真实的价值所在。

那就是,更轻松的完成自己的工作,给自己多点时间。

选择 React Native 的理由的更多相关文章

  1. Airbub 弃用React Native

    弃用 React Native ? 最近的技术圈尤为热闹,Google 发布了首个 Flutter 预览版.Vue.js 在 GitHub 上的 star 数量超过了 React.js,而如今全球著名 ...

  2. 为什么学习React Native三点原因

    React Native不到两岁,兼容Android平台刚刚1年.我学习React Native其实也就不到1年,不算长,也不算短. Paul Graham在文章中写过:大多数人真正注意到你的时候,不 ...

  3. React Native开发技术周报2

    (1).资讯 1.React Native 0.22_rc版本发布 添加了热自动重载功能 (2).技术文章 1.用 React Native 设计的第一个 iOS 应用 我们想为用户设计一款移动端的应 ...

  4. React-Native(二):React Native开发工具vs code配置

    从网上翻阅了一些开发react-native的开发工具时,发现其实可选的工具还是比较多的Sublime Text,WebStrom,Atom+Nuclide,vs code 等.因为我用.net生态环 ...

  5. Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较

    说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...

  6. React Native 开发工具篇

    正文 概述:开发RN的工具有很多,选择性也比较多,比如Facebook专门为React开发的IDE:Nuclide,还有做前端比较熟悉的WebStorm.Sublime Text 3.VS Code等 ...

  7. 跨平台框架与React Native基础

    跨平台框架 什么是跨平台框架? 这里的多个平台一般是指 iOS 和 Android . 为什么需要跨平台框架? 目前,移动开发技术主要分为原生开发和跨平台开发两种.其中,原生应用是指在某个特定的移动平 ...

  8. [译] Facebook:我们是如何构建第一个跨平台的 React Native APP

    英文原文(需FQ):https://code.facebook.com/posts/1189117404435352/ 早些时候,我们介绍过iOS版的React Native. React Nativ ...

  9. Weex和React Native框架对比与选择

    工作原理 大致基本类同,JS-Native桥和前端渲染框架,只是使用框架技术不一样: Weex 阿里内部早期研发的一个通过 JSON 数据描述 native 渲染的项目WeApp以及Vue.js这款优 ...

随机推荐

  1. 20155336 2016-2017-2《JAVA程序设计》第五周学习总结

    20155336 2016-2017-2<JAVA程序设计>第五周学习总结 教材学习内容总结 第八章 语法与继承构架 使用try.catch 特点: 使用try.catch语法,JVM会尝 ...

  2. Exp3:MAL_免杀原理与实践

    目录 1.实验环境 2.实践内容 2.1 msfvenom 2.1.1 msfvenom直接生成 2.1.2 msfvenom 编码一次 2.1.3 msfvenom 编码多次 2.2 Veil_ev ...

  3. [NOI导刊2010提高&洛谷P1774]最接近神的人 题解(树状数组求逆序对)

    [NOI导刊2010提高&洛谷P1774]最接近神的人 Description 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某 ...

  4. 【CTF MISC】pyc文件反编译到Python源码-2017世安杯CTF writeup详解

    1.题目 Create-By-SimpleLab 适合作为桌面的图片 首先是一张图片,然后用StegSolve进行分析,发现二维码 扫码得到一串字符 03F30D0A79CB0558630000000 ...

  5. csv导入mysql提示错误[Error Code] 1290 - The MySQL server is running with the --secure-file-priv option 解决方法【转】

    解决方法: 1.进入mysql查看secure_file_prive的值 mysql>SHOW VARIABLES LIKE "secure_file_priv"; secu ...

  6. 【转载】ajaxFileUpload 报这错jQuery.handleError is not a function

    今天刚打个一个技术群,里面有人问标题上的问题,嘿,我恰好遇过,现在大家至少也在用jquery1.9以上的版本,ajaxfileupload的版本早就不更新了,大家可以下载看:地址这里,它例子里使用的J ...

  7. CentOS系统时间与现在时间相差8小时解决方法

    很多网友在安装完CentOS系统后发现时间与现在时间相差8小时,这是由于我们在安装系统的时选择的时区是上海,而CentOS默认bios时间是utc时间,所以时间相差了8小时.这个时候的bios的时间和 ...

  8. 美国部分科技公司创始及IPO信息

    作者:Ben.Z 时间:2018-04-19 做这份统计表格的目的是为了更好地了解当下美国的IT发展,搞清楚那些耳熟能详的名词的来源. 原文是用WPS统计的,本文仅展示截图. 创始人年龄分析: 1.上 ...

  9. tf.nn.embedding_lookup函数

    tf.nn.embedding_lookup(params, ids, partition_strategy='mod', name=None, validate_indices=True, max_ ...

  10. day11作业

    一.选择题 1.B 2.D 3.AB 4.C 二.判断题 1.× 2.√ 三.简答题 1. 多态就是事物存在的多种形态. 提高程序的复用性,提高程序的可扩展性和可维护性. 2. 向上转型是指父类引用指 ...