Flutter技术解析与实战——闲鱼技术演进与创新-第1章(3)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本书将详细讲解闲鱼Flutter&FaaS云端一体化架构,以及闲鱼基于Flutter的架构演进与创新,学习一套全面的Flutter架构应用方案。本书介绍闲鱼技术团队利用Flutter技术改造和上线复杂业务的混合工程改造实践,抽取Flutter依赖到远程的实现细节,以及使用Plugin桥接获取设备信息、使用基础网络库等混合开发实践指南。这些实践遍布闲鱼各大业务线和应用场景,为读者使用Flutter打造自己的研发体系探索一条实践之路。除了介绍闲鱼Flutter应用框架Fish Redux、开发利器AspectD、FlutterBoost等一众开源工具与开发实践指南,你还将在......

1.1.6 Native 启动下的Flutter 热重载

      启动App,进入Flutter 页面,查找Observatory 端口x 和认证码y。

      在Flutter 工程目录下, 执行flutter attach --debug-uri=http://127.0.0.1:x/y/。

kylewong@KyleWongdeMacBook-Pro fwn_idlefish % flutter/bin/flutter

attach --debug-uri=http://127.0.0.1:63515/2T0iU5TV0As=/

[KWLM]: [attach, --debug-uri=http://127.0.0.1:63515/2T0iU5TV0As=/]

Syncing files to device KyleWong's iPhone...

 To hot reload changes while running, press "r". To hot restart (and

rebuild state), press "R".

An Observatory debugger and profiler on KyleWong's iPhone is available

at: http://127.0.0.1:63515/2T0iU5TV0As=/

For a more detailed help message, press "h", To detach, press "d";

to quit, press "q".

      修改Dart 源代码,然后在Terminal 中输入r(位于'to quit,press"q"'之后)。

      new Padding(

         padding: new EdgeInsets.only(left: 22.0),

         child: createButton(

             videoIsFullScreen,

             {

                'foreground': 'fundetail_superfavor_white',

                'background': 'super_favor_unhighlight'

             },

             'super_favor_highlight',

             '赞',

             buttonSelectedStatus['superfavor'], () {

      superLikeComponent.clickV2(widget.itemInfo.itemId,

widget.itemInfo.userId, widget.itemInfo.fishPoolId,

                widget.itemInfo.superFavorInfo.superFavored,

widget.itemInfo.trackParams);

        }),

      )

      这里将超赞文案换成了“赞”。可以看到Terminal 显示"Initializing hot reload...Reloaded...",结束后,设备上变更生效,左下角文案变成了“赞”,如图1-11 所示。

      在Android 中,Native 启动的Flutter 调试和热重载与iOS 类似,不同的是可通过IDE Logcat 或者ADB Logcat | grep Observatory 获取端口,端口转发使用ADB forward。

1.jpg

图1-11

1.1.7 Native 与Flutter 联合调试

      除了可以在任意时刻(Flutter 启动后)调试Flutter,还可以使用Android Studio 的Attach Debugger to Android Process 调试Android,这就实现了Android 与Flutter 联调。同样,结合Xcode 的Attach to Process,可以实现iOS 与Flutter 联调。

1.1.8 持续集成

      闲鱼团队有Native 开发人员和Flutter 开发人员,因此区分了Flutter模式和Native 模式。有一台公共设备(Mac Mini)安装了Flutter 环境并负责Flutter 相关的构建,构建好的产物以AAR(Android)或Pod 库(iOS)的形式集成到Native 工程下(可以认为Flutter 相关的代码就是一个模块),用于构建最终产物APK(Android)或IPA(iOS)的CI 平台最终也通过产物方式集成Flutter 并打包。

相关文章
|
3天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
16 3
|
2天前
|
IDE 开发工具
鸿蒙Flutter实战:11-使用 Flutter SDK 3.22.0
本文介绍了如何使用 Flutter SDK 3.22.0 搭建鸿蒙开发环境。首先安装 Flutter SDK 3.22.0,并通过 FVM 管理多个版本。接着配置项目,使用 `fvm use custom_3.22.0` 设置自定义 SDK 版本。添加鸿蒙平台支持并进行项目签名,最后通过 `fvm flutter run` 运行项目。详细步骤包括安装、项目配置、签名和运行,确保开发环境顺利搭建。
19 7
鸿蒙Flutter实战:11-使用 Flutter SDK 3.22.0
|
1天前
|
消息中间件 编解码 开发者
深入解析 Flutter兼容鸿蒙next全体生态的横竖屏适配与多屏协作兼容架构
本文深入探讨了 Flutter 在屏幕适配、横竖屏切换及多屏协作方面的兼容架构。介绍了 Flutter 的响应式布局、逻辑像素、方向感知、LayoutBuilder 等工具,以及如何通过 StreamBuilder 和 Provider 实现多屏数据同步。结合实际应用场景,如移动办公和教育应用,展示了 Flutter 的强大功能和灵活性。
64 6
|
1天前
|
UED
<大厂实战经验> Flutter&鸿蒙next 中使用 initState 和 mounted 处理异步请求的详细解析
在 Flutter 开发中,处理异步请求是常见需求。本文详细介绍了如何在 `initState` 中触发异步请求,并使用 `mounted` 属性确保在适当时机更新 UI。通过示例代码,展示了如何安全地进行异步操作和处理异常,避免在组件卸载后更新 UI 的问题。希望本文能帮助你更好地理解和应用 Flutter 中的异步处理。
57 3
|
1天前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
1天前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
70 1
|
1天前
|
Dart 安全 编译器
Flutter结合鸿蒙next 中数据类型转换的高级用法:dynamic 类型与其他类型的转换解析
在 Flutter 开发中,`dynamic` 类型提供了灵活性,但也带来了类型安全性问题。本文深入探讨 `dynamic` 类型及其与其他类型的转换,介绍如何使用 `as` 关键字、`is` 操作符和 `whereType<T>()` 方法进行类型转换,并提供最佳实践,包括避免过度使用 `dynamic`、使用 Null Safety 和异常处理,帮助开发者提高代码的可读性和可维护性。
60 1
|
3天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
11 1
|
1天前
|
JSON Dart 数据格式
<大厂实战场景> ~ flutter&鸿蒙next处理后端返回来的数据的转义问题
在 Flutter 应用开发中,处理后端返回的数据是常见任务,尤其涉及转义字符时。本文详细探讨了如何使用 Dart 的 `dart:convert` 库解析包含转义字符的 JSON 数据,并提供了示例代码和常见问题的解决方案,帮助开发者有效处理数据转义问题。
88 0
|
2天前
|
Dart Android开发 开发者
Flutter跨平台开发实战:构建高性能移动应用
【10月更文挑战第25天】随着移动设备种类的增加,开发者面临跨平台应用开发的挑战。Flutter作为Google推出的开源UI工具包,凭借其强大的跨平台能力和高效的开发效率,成为解决这一问题的新方案。本文将介绍Flutter的核心优势、实战技巧及性能优化方法,通过一个简单的待办事项列表应用示例,帮助读者快速上手Flutter,构建高性能的移动应用。
10 0

推荐镜像

更多