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

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

1.2 混合工程改造实践

      当使用Flutter 实现跨平台开发时,如果原有的iOS 和Android 工程已相当庞大,那么如何将Flutter 无缝地桥接到这些大工程中并保证开发效率不受影响是优先要解决的问题。

      本文给出了一种通用的工程改造方案,希望为准备转型Flutter 的团队提供参考。

1.2.1 项目背景及问题

      Flutter 的工程结构比较特殊,由Flutter 目录再分别包含Native 工程的目录(即iOS 和Android 两个目录)组成,如图1-12 所示。在默认情况下,引入Flutter 的Native 工程无法脱离父目录进行独立构建和运行,因为它会反向依赖于Flutter 相关的库和资源。

5.jpg

图1-12

      很显然,在拥有了Native 工程的情况下,开发者不太可能去创建一个全新的Flutter 工程并重写整个产品,因此Flutter 工程将包含已有的Native工程,这样就带来了一系列问题。

      1)构建打包问题:引入Flutter 后,Native 工程因对其有了依赖和耦合,从而无法独立编译和构建。在Flutter 环境下,工程的构建从Flutter的构建命令开始,执行过程中包含了Native 工程的构建,开发者要配置完整的Flutter 运行环境才能走通整个流程。

      2)混合编译导致开发效率的降低:在向Flutter 转型的过程中必然有许多业务仍使用Native 进行开发,工程结构的改动会使开发过程无法在纯Native 环境下进行,而适配到Flutter 工程结构对纯Native 开发来说又会造成不必要的构建步骤,导致开发效率的降低。

1.2.2 改造目标

      针对以上问题,我们提出了以下改造目标,力求使Native 工程对Flutter相关文件的依赖最小化。

      Native 工程可以独立地编译构建和调试执行,进而最大限度地减少对相关开发人员的干扰,使打包平台不再依赖Flutter 环境及相关流程。

      当Native 工程处在Flutter 环境中时(即作为iOS 或Android 子目录)能够正确依赖相关库和文件,正常执行各类Flutter 功能,如Dart 代码的构建、调试、热重载等,保证在Flutter 环境下开发的正确性。


相关文章
|
14天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
25 1
|
24天前
|
监控 前端开发 JavaScript
实战篇:商品API接口在跨平台销售中的有效运用与案例解析
随着电子商务的蓬勃发展,企业为了扩大市场覆盖面,经常需要在多个在线平台上展示和销售产品。然而,手工管理多个平台的库存、价格、商品描述等信息既耗时又容易出错。商品API接口在这一背景下显得尤为重要,它能够帮助企业在不同的销售平台之间实现商品信息的高效同步和管理。本文将通过具体的淘宝API接口使用案例,展示如何在跨平台销售中有效利用商品API接口,以及如何通过代码实现数据的统一管理。
|
28天前
|
机器学习/深度学习 前端开发 Windows
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则符号深入解析 )
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则符号深入解析 )
32 0
|
1月前
|
设计模式 前端开发 测试技术
Flutter 项目架构技术指南
探讨Flutter项目代码组织架构的关键方面和建议。了解设计原则SOLID、Clean Architecture,以及架构模式MVC、MVP、MVVM,如何有机结合使用,打造优秀的应用架构。
Flutter 项目架构技术指南
|
15天前
|
存储 中间件 关系型数据库
数据库切片大对决:ShardingSphere与Mycat技术解析
数据库切片大对决:ShardingSphere与Mycat技术解析
24 0
|
28天前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
66 1
|
28天前
|
存储 NoSQL 算法
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)(二)
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)
45 0
|
1天前
|
canal 缓存 关系型数据库
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
|
1天前
|
C++
C++:深度解析与实战应用
C++:深度解析与实战应用
7 1
|
1天前
|
大数据 图形学 云计算
EDA设计:技术深度解析与实战代码应用
EDA设计:技术深度解析与实战代码应用

推荐镜像

更多