Android(Kotlin) ↔ Flutter(Dart) 的“1:1 对应表”:架构分层来对照(MVVM/MVI 都适用)

Android(Kotlin) ↔ Flutter(Dart) 的"1:1 对应表",按你熟悉的架构分层来对照(MVVM/MVI 都适用)。

Android ↔ Flutter 对应表

架构位置 Android 常用方案 Flutter 对应方案 一句话理解
网络客户端 Retrofit Dio 都是 HTTP Client 封装
底层网络引擎 OkHttp Dio 内部实现 / http 包 "真正发请求"的那层
拦截器 OkHttp Interceptor / Retrofit CallAdapter Dio Interceptor 请求/响应/错误统一入口(401 刷新 token 就在这)
JSON 解析 Moshi / Gson / Kotlinx Serialization json_serializable / freezed / manual map DTO ↔ Model 转换
DTO(网络实体) data class XxxDto class XxxDto + fromJson/toJson 网络返回结构
Repository Repository Repository "数据真相"统一出口(同名同职责)
本地数据库 Room Drift(SQLite) ORM + 类型安全查询
DAO @Dao 接口 Drift DAO(@DriftAccessor) 查询/插入/更新
Entity(表结构) @Entity Drift Table(extends Table) 数据库存储结构
数据流监听 Flow / LiveData Stream(watch) DB 变更自动推给 UI
协程/异步 suspend + coroutines async/await + Future 都是异步语法糖
并发组合 async/await + awaitAll Future.wait / Future.any 并行请求合并
错误包装 Result / sealed class Either/Result(自定义) 统一错误模型
本地缓存 DataStore / SharedPrefs SharedPreferences / Hive / 内存 Map 小数据/配置
图片缓存 Coil / Glide cached_network_image 头像/图片缓存
线程切换 Dispatchers.IO/Main event loop + plugin/isolate Dart 表面单线程,IO 由底层处理
ViewModel AndroidX ViewModel Riverpod Notifier / Bloc / ChangeNotifier 状态容器
UI 订阅 collectAsState/LiveData observe Consumer/BlocBuilder/StreamBuilder "订阅状态刷新 UI"
单元测试 JUnit + MockK test + mocktail/mockito 测试工具链
网络 Mock MockWebServer dio_http_mock_adapter / 自建 fake api 模拟接口

现在这套(最像 Android 的写法)

  • Retrofit + OkHttp Interceptor → Dio + Interceptor

  • Room + Flow → Drift + watch(Stream)

  • Repository 负责缓存策略 → Repository 仍然负责

  • 401 自动刷新 token → Interceptor + 共享 Future/队列

相关推荐
云诗卡达7 小时前
Flutter安卓APP接入极光推送和本地通知
android·flutter
南村群童欺我老无力.8 小时前
Flutter应用鸿蒙迁移实战:性能优化与渐进式迁移指南
javascript·flutter·ci/cd·华为·性能优化·typescript·harmonyos
LawrenceLan8 小时前
Flutter 零基础入门(十二):枚举(enum)与状态管理的第一步
开发语言·前端·flutter·dart
Jony_8 小时前
Android 设计架构演进历程
android·android jetpack
犹若故人归8 小时前
Android开发应用--高级UI界面设计
android·ui
程序员老刘·10 小时前
重拾Eval能力:D4rt为Flutter注入AI进化基因
人工智能·flutter·跨平台开发·客户端开发
zzhongcy10 小时前
复合索引 (item1, item2, item3 ) > (?, ?, ?) 不起作用,EXPLAIN 后type=ALL(全表扫描)
android·数据库
kirk_wang10 小时前
Flutter艺术探索-Flutter响应式设计:MediaQuery与LayoutBuilder
flutter·移动开发·flutter教程·移动开发教程
冬奇Lab11 小时前
稳定性性能系列之十三——CPU与I/O性能优化:Simpleperf与存储优化实战
android·性能优化
像风一样自由11 小时前
android native 中的函数动态注册方式总结
android·java·服务器·安卓逆向分析·native函数动态注册·.so文件分析