flutter与react native - 编程思维

一、Flutter

1.什么是Flutter

2018年6月21日谷歌官方宣布Flutter的首个发布预览版(Release Preview 1)正式发布,这标志着谷歌进入了Flutter正式版(1.0)发布前的最后阶段。

Flutter是一个由谷歌开发的开源移动应用软件开发工具包,用于为Android和iOS开发应用,同时也将是Google Fuchsia(目的是为了替换Android系统)下开发应用的主要工具。

Flutter主要的开发语言是dart(一种面向对象语言),其核心思想是widgets(组件)也可以看做是类。

2.Flutter组件

Flutter为布局提供了丰富的组件类,具体请查看API https://flutterchina.club/docs/。但是相对比较麻烦的,比如Image组件就分为new Image.network(加载网络图片)和 Image.asset(加载本地图片),在测试中我使用过这个组件,但是不知道什么原因,width属性设置了也没见效果,height和其他的属性倒是没什么问题。

3.Flutter开发难度

由于这是一个面向对象语言,如果你有Java开发经验或者其他面向对象语言开发基础,那么上手难度自然比较低。不过新的技术,自然有新的技术栈,困难肯定是比较多的,而且Flutter的社区还不是很成熟,所以如果你想使用Flutter开发应用成本自然会高许多。

4.Flutter前景

跨平台应用现在也比较多,至于能不能真正做到完全跨平台这也是业界一直以来关心的话题。就目前来说Flutter还只能算是开始。那么如果谷歌后期想用Flutter替换Android,这里就关系到整个商业运用和用户接收程度了。假设这一切进行的比较顺利,那Flutter还是值得研究的,当然这个得综合自己的时间成本。

二、React Native(有经验的同学请跳过这段)

1.什么是React Native

React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域(摘自网络)。

2.React Native核心思想

React Native带来了组件化开发的思想,所谓组件,即封装起来的具有独立功能的UI部件。React Native 推荐以组件的方式去重新思考UI构成,将UI上每一个功能相对独立的模块定义成组件,然后将小的组件通过组合或者嵌套的方式构成大的组件,最终完成整体UI的构建(摘自网络)。

React Native使用两种数据来控制一个组件:props和state。props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。 对于需要改变的数据,则需要使用state(摘自网络)。

3.React Native开发难度

React Native使用Javascript语言做为开发语言,组件使用JSX,样式使用CSS。其实只要理解状态机运行方式,就很容易上手。而且社区也已经比较完善,在开发中遇到的问题也能找到相应的解决方案。如果你是一个前端开发工程师,那React Native很适合你。

4.React Native前景

在跨平台语言中React Native应该算是做得比较好的,但是开发比较复杂的应用,那就要求开发人员
即要懂Android又要会IOS,这样就形成了学一样变成了学多样。那么它最好的使用场景就是混合式开发,主场景使用原生,其他活动场景使用React Native。这样即保证了效率又保证了性能。

三、Flutter与React Native性能对比

在性能方面Flutter还是比React Native快一点,开发难度方面React Native比Flutter更加简洁方便,
架构思想上React Native也相对较好。

(图片摘自网络)

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://segmentfault.com/a/1190000015373829

使用flutter,我写了一个开源版本的handshaker - 编程思维

前言去年八月份,由于开发需要,我尝试在Mac电脑上寻找一款类似Windows上手机助手的应用,几经辗转之下找到了HandShaker,非常好用,可却经常奔溃,尝试了各种方式,奔溃依然不断发生。这款产品来自锤子科技,在18年已经停止了维护,出现这种情况也不足为奇。但这么好的项目就这样丢失了,实在有点可惜。于是,我决定仿制

mobtech 短信验证 flutter插件 - 编程思维

这是一个基于SMSSDK功能的扩展的Flutter插件。使用此插件能够帮助您在使用Flutter开发应用时,快速地实现获取验证码功能。Demo例子:https://github.com/MobClub/SM...开始集成在pubspec.yaml文件中加入下面依赖dependencies: mobsms: mobcom

flutter耳返和双声道功能的实现 - 编程思维

1 耳返功能简介ZEGO Express SDK 提供了Flutter耳返和双声道的功能,在视频直播、K歌、音频录制等场景下广泛应用,开发者可根据实际业务场景需要设置,一套代码可实现跨平台音视频耳返功能,节省开发成本。实时音视频的耳返作用就是在嘈杂的环境下,清楚地听伴奏和自己的声音,来鉴定自己有没有走音。技术实现上要实

react-native踩坑记录 - 编程思维

键盘遮挡 描述 ios靠近手机屏幕下方的输入框获得焦点时,键盘弹出,但是输入框并没有往上移。意味着比键盘低的内容都会被遮挡,而且你没办法手动往上移。结果就是在键盘消失之前,你根本看不到自己输入了什么鬼内容。 解决 使用第三方插件 npm install react-native-keyboard-aware-scrol

react学习笔记知识点整理 - 编程思维

1. 几个重要概念理解 模块与组件 模块: 理解: 向外提供特定(局部)功能的js程序, 一般就是一个js文件 为什么: js代码更多更复杂 作用: 复用js, 简化js的编写, 提高js运行效率 组件: 理解: 用来实现特定功能效果的代码集合(html/css/js) 为什么: 一个界面的功能更复杂

react-navigation使用小记 - 编程思维

react-navigation 使用小记 日常废话 react-navigation是一个来源于react社区的导航解决方案。 以我一个月资深的react开发经验来看,说是react-native开发app必备库之一毫不过分。 在开发过程中,不同页面因为不同的业务需求会有不同的头部(header),这篇文章针对几种常

taro 技术揭秘之taro-cli - 编程思维

文章同步于 Github/Blog 前言 Taro 是由凹凸实验室打造的一套遵循 React 语法规范的多端统一开发框架。 使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信小程序、H5、App 端等)运行的代码。实现 一次编写,多端运行。 关于 Taro 的更

神奇移动 - 编程思维

原文地址: https://github.com/SmallStoneSK/Blog/issues/4 1. 前言 最近盯上了app store中的动画效果,感觉挺好玩的,嘿嘿~ 恰逢周末,得空就实现一个试试。不试不知道,做完了才发现其实还挺简单的,所以和大家分享一下封装这个组件的过程和思路。 2. 需求分析 首先,我