react-native ios端的底层是OC还是swift?
React Native 结合了 web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 javaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。
IOS目前两个程序语言开发,分为object C,与swift,OC为主流开发,swift4.0推出它的约束性与协议更加完善,RN的开发以Web js为主,请求与框架结构都是rn中写,业务代码也是js书写,有熟练的控件结构如移动端的AD mobile reactnative element 等,已经很成熟,当然你也可以原生写比如调取摄像头二维码地图,引导页,启动页等,然后通过bridge实现原生OC与RN交互,当然也也可以使用swift写原生iOS代码,这个交互我不懂了,我的两个项目都是OC与RN结合,也很少代码使用原生都是js写。
学前端的想做混合开发需要学哪些技术?
首先js+html+css是最基本的,这里就不说,前端开发最基本的。js这几年发展十分快速,众多高效框架出现,大大提升了开发效率,同时node的出现,也拓展了js的后端能力,只用js也能做全栈。话说回来,做混合开发,目前比较流行跨平台,像flutter,react-native,HBuilder,vue+weex等方案,相信react,vue前端应该都比较熟悉,使用这些技术,我们就可以像写网页一样,写app,并且都一定的跨平台能力,在安卓ios上使用同一套代码,不过还是存在一些问题。这些方案中目前比较流行的有react-native和Flutter,这两个比较而言,建议上手rn,rn的社区相对丰富,遇到坑了可以去找解决方案
现在国内使用Flutter来开发的多吗?
我就讲一点,做原生安卓开发的,拿着flutter直接用,语法差别小,一看就懂,做得比Java快,性能只差一点点,还一点力气没花顺带开发了ios的***,这个不好吗
国内象闲鱼这样的开发团队在Flutter领域的研究很深入,阿里和其他公司对这个框架也越来越重视。
Flutter在国内的普及程度还比较低,而Recent Native等工具似乎使用的人更多。这主要原因是国内大部分开发人员都从事过网站开发,因此对于Html和JS比较熟悉。
由于Flutter***用的是Dart语言,需要学习成本,而且Dart的Ui设计是纯代码,嵌套极多,对于初学者而言容易头疼。不过任何语言只要用习惯了都不难,往往是万事开头难。
既然谷歌选择了Dart必然有其深意。单纯比较或者探讨诸如动态还是静态,是否支持反射等没有意义,萝卜***各有所爱,支持哪一种语言都有道理,关键要看自身掌握程度。
谷歌可能担心J***a的版权问题,因此在安卓原生语言上极力推荐Kotlin。但效果很差,个人感觉除非禁止使用J***a,否则没人会选择Kotlin,这与使用JS惯了不喜欢Dart是一个道理。但是令人感兴趣的是Dart可以生成JS代码。这应该能让更多人选择使用的一个原因。
由于谷歌极力推荐Flutter,这其实与其新系统Funchsia有关,因此许多人怀疑安卓很有可能被谷歌抛弃。坦率说我希望如此,安卓的性能是一个弱点,虽然改进后比以前[_a***_],但是天生素质不好。谷歌正基于自己新的Zircon内核打造新系统,与鸿蒙思路差不多,可以支持多种平台。
Flutter不仅仅谷歌重视,国内巨头也同样关注。估计华为这样的公司尤其重视,因为他们是中国第一个参与测试Funchsia的企业。因为谷歌正是基于性能的要求开发出Flutter,在安卓端Flutter组件与原生一样都是同样的渲染引擎,因此性能与原生非常接近,这也是相对于其他框架的优势。
很多年前大家都希望H5能一统江湖,但是我感觉也许未来需要Dart来统一,这种后发优势可能就是谷歌创新的原因,以一种不妥协性能的方法又能快速开发兼顾的特点将是未来的趋势。