美文网首页
跨平台开发之flutter

跨平台开发之flutter

作者: LuckySunSet | 来源:发表于2020-05-26 08:03 被阅读0次

    跨平台框架对比

    https://www.sohu.com/a/325794075_733133
    https://www.cnblogs.com/elesos/p/9506116.html

    H5+原生(Cordova、Ionic、微信小程序-目前是)

    --混合(hybrid)开发,UI和业务逻辑都基于JavaScript
    原理:WebView加载H5;Native提供功能接口(业务功能,硬件访问...);JSBridge通信

    JS+原生渲染(React Native、Weex、快应用)

    --以RN为例
    UI基于原生,业务逻辑基于JavaScript
    原理:1:RN将虚拟DOM通过JsBridge映射为原生控件;2:原生控件渲染UI

    自绘UI+原生(QT for mobile、flutter)

    框架自带渲染引擎绘制UI,不依赖原生控件

    RN 和 flutter 架构对比图

    flutter介绍

    这里介绍更详细,直接贴链接

    flutter快速入门向导

    1.安装和环境配置参考

    2.拥有其他平台开发经验快速指南---入门建议可以优先看这里

    3.编写第一个flutter应用参考

    必备插件介绍

    ( 官方维护插件【点击这里】)
    1、接口请求:dio
    2、json解析:json_serializable dart不支持反射,所以就没有类似java中的fastjson,jackjson,Gson等解析库。json_serializable 使用步骤如下:

    step-1:根目录pubspec.yaml 添加一下依赖

    dependencies:
            json_annotation: ^3.2.2
    dev_dependencies:
            json_serializable: ^3.2.2
            build_runner: ^1.7.1
    

    step-2:编写代码 数据模型model,这里提供一个工具json转model工具
    step-3:根目录命令输入 生成 xxx.g.dart 文件

    flutter pub run build_runner build 一次性生成
    flutter pub run build_runner watch 持续性生成代码,后台监听
    //注意:如果项目是从git仓库clone下来的,项目中已经存在 .g.dart 文件,需要删除所有的 .g.dart 文件后才能生成成功,因此创建项目时,建议 .g.dart 文件不要添加到 git 仓库中
    

    3、本地数据存储:shared_preferences,对应Android的SharedPreferences,iOS的Userdefault

    4、Android iOS 本地文件访问 path_provider
    5、url scheme自定义url,路由导航:url_launcher
    6、webview提供访问h5能力 flutter_webview_plugin
    7、微信分享能力:fluwx

    性能

    3种模式:
    debug:调试模式,热重载,包体积很大--debug模式下app比较卡属于正常
    profile:分析模式--性能分析
    release:生产模式--发布
    基本上能够达到60fps,iOS:丝滑般的体验; Android:偶尔会掉帧,不如iOS顺畅;

    以下为iOS 和 Android 手机上快速滑动大图列表的性能对比


    1.png 2.png

    官方demo Gallery

    目前市场上用flutter的应用:
    化纤帮app(大刀现在公司开发的产品,没有Native开发参与)
    TODO 更多的案例

    文档资源

    更多链接

    总结

    本篇总体来看有些零散,没有重点,对于一个全新的开发语言Dart和跨平台UI开发框架flutter,本文主要是希望能够帮助了解flutter是什么,flutter能做什么,flutter做出来的东西怎么样,以及如何快速入门等;
    对于flutter的未来个人比较看好,github star数已经达到了77K,Issues超过了5000,可见开发者活跃程度;
    flutter有优秀的性能,理论上跟原生没有区别,就目前测试来看,iOS体验比Android更优秀,几乎全部达到60fps;
    一套代码多端使用,甚至后期的wap项目,UI层面能够完全与原生剥离,后期维护成本低,开发效率高,测试效率高;
    语言用的是Dart(跟其他面向对象语言差不多,入门很快),本文没有介绍,可自行网上查阅

    相关文章

      网友评论

          本文标题:跨平台开发之flutter

          本文链接:https://www.haomeiwen.com/subject/vpopahtx.html