首页
学习
活动
专区
圈层
工具
发布

干货 | 高效开发与高性能并存的UI框架——携程Flutter实践

一、Flutter Layers ? Flutter的主要设计人之一Ian Hickson,之前是HTML规范编写者,因此Flutter的设计理念也与HTML的实现方法有很多相似之处。...在Flutter项目的初期,Dart-lang也不是特别成熟。...Dart虚拟机在垃圾回收的频率与回收机制表现当时并不是特别好,比如当时Flutter如果运行一个时间很长的动画,动画结束之后所占用的内存对于Flutter框架就是一个很大的垃圾。...但是现阶段的Flutter插件并不是像RN那么全,可以看到维护Flutter的开发者只有200多人,而维护react-native的开发者已经近1700人了,一个数量级之差的维护者肯定在插件数量与开发体验上差别很大...四、Flutter待完善的方面及使用中遇到的问题 Flutter至今没有反射 Dart并不是没有反射,dart:mirrors就具有Mirror概念的反射。

2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    flutter架构:Repository设计模式

    我们先看看API 文档(https://openweathermap.org/current),先了解需要如何调用 API,以及响应数据的JSON 格式。...; 或者也可使用Riverpod import 'package:flutter_riverpod/flutter_riverpod.dart'; final weatherRepositoryProvider...: http.Client()); }); 或者是使用bloc: import 'package:flutter_bloc/flutter_bloc.dart'; RepositoryProvider...缺点**:**当我们在IDE点击“跳转到引用”时只能到抽象类中的方法定义而不是具体类中的实现。 缺点:会写更多代码。 4.2只有具体类 优点:更少的代码。...Repository的扩展 这里我们只实例了一个库,但是随着业务的增长,我们的应用功能越来越多,在一个Repository里添加所有api显然不是一个明智的选择。

    3.5K30

    我用flutter做了一个维基How中文版

    action=app&subcmd=article&id=11630731&format=json 随机给出一个条目,很遗憾没有中文版的,只能是英文 https://www.wikihow.com/api.php...有了API了,接下来,就创建项目,码代码就是了,看看项目结构 image.png main.dart是工程的入口; bloc目录说明我这个项目是使用了bloc设计模式的,目录里放着各个业务逻辑的bloc...,所以,我的界面很清晰,没有任何请求逻辑,只根据数据展示ui,如果不了解,可以参考这个大佬的文章,介绍了bloc模式是什么,怎么用就用专业的库了,库后面会给出 cache目录是缓存工具类,因为我发现api...model文件主要是json对应的dart model的定义 network是网络请求工具类 page就是我项目的各个页面了 sql,这里我收藏使用sqlite缓存,只缓存了条目的id,title,image...flutter_html 因为详情也有些地方的内容是html,因此需要使用一个展示html的控件。

    2.4K342

    Flutter 与开源鸿蒙(OpenHarmony)测试体系构建:从单元测试到真机自动化的一站式质量保障方案

    test # 生成覆盖率报告 flutter test --coverage genhtml coverage/lcov.info -o coverage/html 目标:核心模块覆盖率 ≥ 85%...4.2 Flutter 集成测试:模拟真实用户流 // integration_test/device_flow_test.dart import 'package:integration_test/integration_test.dart...使用 API Check 工具扫描: ohos-api-check --hap=entry.hap --target-sdk=4.1 输出示例: [WARN] Used @ohos.bluetooth...DeviceManager(bridge: MockDSoftBus()); manager.toggleDevice('faulty_device'); expect(toastMessage, '设备无响应...九、结语:质量不是测出来的,是设计出来的 测试体系的价值不仅在于“发现问题”,更在于 推动架构解耦、接口清晰、行为可预测。

    17910

    Flutter for Web:跨平台移动与Web开发的新篇章

    网站利用Flutter的动画和图形处理能力,为访问者提供沉浸式的浏览体验,同时保持了高度的性能和响应速度。...HTML渲染路径:对于一些简单场景,Flutter也支持将Widget渲染为HTML和CSS,这种模式更加符合Web标准,有利于SEO和可访问性,但可能牺牲一部分性能。...Flutter for Web应用可以轻松集成PWA特性,例如使用flutter_pwa这样的库,来实现manifest.json和service worker的自动生成,从而达到“一次编写,多处运行”...Web API和库的集成 由于Flutter for Web相对较新,部分Web库可能还没有直接的对应版本。解决方法包括: 使用dart:html库直接与DOM交互。...响应式设计 确保应用在不同屏幕尺寸和设备上都能良好显示。可以使用MediaQuery和LayoutBuilder来实现响应式布局。

    1.9K10

    干货 | 三种主流快平台技术测评,你更青睐谁?

    没有tag和样式的说法,更没有选择器,从头到尾只有dart语言,它的界面控件是用dart代码new出来的,每个控件的样式,是在new的时候设置的类json写法的参数。...而dart就很简单,只启动一个dart引擎,解析严格的dart语法,它不会去操心有些标签未闭合要如何容错,不会判断宽度320后面是px还是rem或者是动态计算百分比。...当界面复杂时,Flutter的代码要嵌套几十层,每层的元素的json样式都和元素一起混写在dart代码里,让人崩溃。...就连微信Android版,底部的tab也是仿iOS而不是Material风格(Material风格是把底tab放在顶部的,并且左右滑动,微信曾经有这样一个临时版本,因为被用户吐槽,很快就下掉了)。...flutter,要求开发者学习dart,了解dart和flutter的API、要求精通flex布局,要求原生开发协作。 weex已经内嵌到uni-app中,就不单独提了。

    2.8K20

    极简Dart代码搞定App内实时数据抓取

    下面是一个完整的 Flutter 应用示例,展示如何使用 Dart 在 Flutter 应用中实现轻量级数据抓取功能。这个示例从公共 API 获取数据并展示,同时包含简单的 HTML 解析功能。...import 'package:flutter/material.dart';import 'package:http/http.dart' as http;import 'dart:convert';...import 'package:html/parser.dart' as parser;import 'package:html/dom.dart';​void main() { runApp(MyApp...}使用说明1、这个示例展示了两种数据抓取方式:从JSON API获取数据解析HTML内容2、要运行此代码,需要在pubspec.yaml中添加以下依赖:dependencies: flutter:...包:dio: 更强大的HTTP客户端html: 用于解析HTML内容csslib: 用于解析CSS选择器3、在实际应用中,请确保遵守目标网站的robots.txt规则和服务条款这个示例展示了Dart在Flutter

    22310

    【Flutter】HTTP 网络操作 ( 引入 http 插件 | 测试网站 | Get 请求 | Post 请求 | 将响应结果转为 Dart 对象 | Future 异步调用 )

    轮播插件 flutter_swiper 的组件代码中导入该 dart 包 ; import 'package:http/http.dart' as http; 二、HTTP 请求测试数据 ---- 在网上找了几个.../io/flutter_app/img/ln_food.png", "title": "美食林", "url": "https://m.ctrip.com/webapp/you/foods/address.html...中的 json 数据创建 Dart 类 ; CommonModel 类包括一个工厂方法 , 通过 Map json 类型 , 构造该类 ; class CommonModel.../material.dart'; import 'package:http/http.dart' as http; /// json 序列化 , 反序列化 包 import 'dart:convert.../ Dart 中文文档 : https://dart.cn/ Dart 开发者官网 : https://api.dart.dev/ Flutter 中文网 : https://flutterchina.club

    3.1K20

    Flutter 与开源鸿蒙(OpenHarmony)实战:构建下一代跨平台应用的完整指南

    React Native、Flutter、Tauri 等框架相继涌现,而操作系统的碎片化(Android、iOS、HarmonyOS、OpenHarmony、Linux 嵌入式等)进一步推动了对真正通用...Flutter 应用需以 UIAbility(Stage 模型中的 UI 入口)形式运行,并通过 NAPI(Native API)或 JS Bridge 与系统交互。...OpenHarmony 不是标准 Linux 或 Android,需自定义编译: # 克隆 engine 仓库 git clone https://github.com/flutter/engine.git...示例:获取设备信息插件 Dart 层(lib/device_info.dart) import 'package:flutter/services.dart'; class DeviceInfo {...事件 主题适配 使用 MediaQuery 响应不同屏幕尺寸 6.3 项目结构示意 smart_home_flutter/ ├── lib/ │ ├── main.dart │ ├── pages

    38910

    Flutter For Web实践

    在js代码中,会将一些简单的可以通过HTML和CSS来实现的UI组件通过HTML和CSS来进行绘制,而一些复杂的UI组件则会使用Canvas来直接进行绘制,然后通过生成Dom树,最终在浏览器中进行渲染。...index.html文件,是整个Web应用的入口,而main.dart.js是dart代码编译后产生的js文件。 ....|____packages | | | |____fonts | | | |____assets | |____flutter_assets 其中main.dart.js文件的大小是2.6M,对于一个功能不是特别复杂的...,如果当前的平台支持dart.library.html即web端,就会引入httpReuqest-web.dart文件中的网络请求的实现,而如果当前的平台支持dart.library.io即移动端平台,...其次,因为页面中的很多组件其实是使用 canvas 直接绘制的,和通过HTML+CSS的web应用相比绘制的速度也会变慢,从而导致性能问题。PC 端首次加载的速度略慢,而手机端会有超过 2S 的延迟。

    2.1K20

    轻松 Flutter 入门,秒变大前端

    本文作者:dickma,腾讯 IEG 前端开发工程师 本文不是Flutter的教程,只是对 Flutter 的技术特性,做了一些略全面的入门级的介绍,如果你听说过Flutter,想去了解他,但是又不想去翻厚厚的...API,那么本文就是为你准备的。...提供了很多默认的组件,而每个组件的都继承自widget 。...提供的组件很多,这里就不一一举例说明,有兴趣的还是建议大家去看API:https://api.flutter.dev/ 8.布局 我们已经了解了这么多组件,那么怎么绘制一个完整的页面呢?...12.结语 这不是一篇教程,只是自己在学习Flutter过程中的一点体验和经历,也因为时间关系,研究并不深入,如有疏漏,还请不吝赐教。

    4.8K30

    阿里卖家 Flutter for Web 工程实践

    FFW 需要的 Flutter 版本为 2.0+,而目前我们 App 端内的 Flutter 版本为 1.X+ ,要升级到 2.0+ 版本还需等待不确定的时间。...child); 在 API 变更中这类问题占大多数,修改起来较简单。...方式渲染 flutter build web --web-renderer html 两条命令的区别是目标页面以何种方式渲染,Flutter 官方对两种方式区别的解释如下: 总结来说如下: Html 方式...的壳工程,需要; main.dart.js:工程中 dart 编译后的产物,需要; manifest.json: 页面作为 webapp 使用的配置,可不需要; version.json: 构建信息,...环境的时候对阿里外内容的请求都会 403,而 Flutter 中有很多内容需要在线拉取,如 Flutter 根目录下 packages 中的内容,目前使用本地构建,待解决; 本地debug时mtop访问

    81310

    最火移动端跨平台方案盘点:React Native、weex、Flutter

    总的来说JS Framework主要负责的是: 1)管理Weex的生命周期; 2)解析JS Bundle,转为Virtual DOM,再通过所在平台不同的API方法构建页面; 3)进行双向的数据交互和响应...4、Flutter的原理与特性介绍 Flutter技术关键词: 1)Google 出品; 2)Dart语言; 3)Flutter Engine引擎; 4)响应式设计模式; 5)原生渲染。...如下图,得益于 Engine 层,Flutter 甚至不使用移动平台的原生控件, 而是使用自己 Engine 来绘制 Widget (Flutter的显示单元),而 Dart 代码都是通过 AOT 编译为平台的原生代码...热门话题:为什么Flutter会选择 Dart作为开发语言? 八卦消息认为:“是因为 Drat 项目组就在 Flutter 隔壁而被选上”。...ps: Lottie库Airbnb出的是一个能够帮助解析AE导出的包含动画信息的json文件。这很好的解决了一个矛盾,设计师可以更专注的设计出各种炫酷的动画效果,而开发只需要将其加入支持即可。

    8.7K41
    领券