目前主流的移动跨平台技术方案大体可以分为三类,一类是使用原生内置浏览器加载HTML5的Hybrid技术方案,采用此种方案的主要有Cordova、Ionic和微信小程序;另一类是使用JavaScript语言进行开发,然后使用原生组件进行渲染,采用此方案的主要有React Native、Weex和快应用;最后一类是使用自带的渲染引擎和自带的原生组件来实现跨平台,采用此种方案的主要是Flutter。
对于其他的浏览器方案,基本可以抛弃了,现在我们讨论移动跨平台开发主要说的是React Native和Flutter,React Native和Flutter在应用开发上,效率差不多,不过要强调性能的话,还是Flutter为最佳选择。由于现在大家都开始使用Flutter来开发应用,导致React Native的学习资料越来越少。
作为跨平台的忠实粉丝,我在去年的下半年对《React Native移动开发实战》进行了升级,出版了《React Native移动开发实战》的第二版,书中对之前的知识做了重新的梳理,使之更加贴近项目实战,有需要的可以去京东,天猫支持下。
作为目前比较流行的移动跨平台开发方案之一,React Native仍然还有很多的粉丝,特别是熟悉前端React开发的技术人员,国内大厂都在使用哪些移动跨平台框架罗列了目前在使用跨平台技术进行应用开发的一些厂商。
<!-- TOC -->
资源网站
教程
组件
工具
<!-- /TOC -->
它山之石可以攻玉。
React-Native开发的库/ SDK类型。
useNativeDriver
is not supported because the native animated module is missinguseNativeDriver
is not supported because the native animated module is missinglibRCTAnimation.a
文件导入 react-native issues #11094应用反应缓慢,出现卡顿:
<resources> <string name="app_name">Your_app_name_to_display</string> </resources>
wabg.apk
android{ applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { File outputDirectory = new File(outputFile.parent); def fileName // 你的apk打包名称 if (variant.buildType.name == "release") { fileName = "app_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" } else { fileName = "app_v${defaultConfig.versionName}_${packageTime()}_debug.apk" } output.outputFile = new File(outputDirectory, fileName) } } } }