鸿蒙版Flutter·全国/世界城市信息库
2025-03-12 17:49:58
246次阅读
0个评论
鸿蒙版Flutter·全国/世界城市信息库
家国情怀与开源初心
本项目诞生于我对鸿蒙生态建设的持续关注与热切期盼。作为开发者,我耗费大量精力研究鸿蒙特性与Flutter的融合方案,力求通过这个开源项目为国产操作系统生态贡献绵薄之力。项目从架构设计到代码实现都经过反复推敲,期待能吸引更多开发者共同完善,一起推动国产软件生态的繁荣发展。
项目概览
基本信息
- 项目名称: 全国/世界城市信息库
- 技术栈: Flutter 3.21 • Dart 3.1 • Provider状态管理 • RESTful API
- 核心功能: 提供中国行政区划数据和世界城市信息的可视化展示与搜索
功能特性
- 四级行政区划树形展示(省-市-区-街道)
- 全球200+国家城市数据查询
- 智能搜索与层级联动选择
- 数据持久化与本地缓存
技术架构
技术栈详解
前端框架
- Flutter 3.21
  - Material 3设计语言
- 自适应布局支持
- 国际化多语言支持
- 深色模式适配
 
状态管理
- Provider
  - 响应式状态更新
- 依赖注入
- 生命周期管理
- 内存优化
 
数据层
- SQLite
  - 本地数据持久化
- 索引优化
- 事务管理
 
- Shared Preferences
  - 轻量级键值存储
- 配置信息缓存
 
网络层
- Dio
  - RESTful API封装
- 拦截器机制
- 请求重试
- 数据序列化
 
架构设计
分层架构
graph TD
  A[表现层/UI] --> B[业务逻辑层]
  B --> C[数据访问层]
  C --> D[本地存储]
  C --> E[网络服务]
核心模块
- 
  UI组件 - 自适应布局组件
- 主题定制组件
- 列表/表单组件
- 动画效果组件
 
- 
  业务模块 - 地址选择器
- 搜索引擎
- 数据同步器
- 缓存管理器
 
- 
  工具模块 - 日志记录
- 错误处理
- 性能监控
- 安全加密
 
性能优化
内存优化
- 图片资源懒加载
- 列表项虚拟化
- 大数据分页加载
- 内存泄漏检测
渲染优化
- Widget重建优化
- 自定义渲染管道
- 帧率监控
- 布局抖动消除
网络优化
- 请求合并
- 数据压缩
- 缓存策略
- 断点续传
安全方案
数据安全
- 敏感数据加密
- SQL注入防护
- XSS攻击防御
- HTTPS传输
应用安全
- 代码混淆
- 签名验证
- 越狱检测
- 调试保护
快速开始
环境配置
# 确保已安装Flutter SDK 3.21+
flutter doctor
# 克隆项目
git clone https://gitcode.com/nutpi/flutter_address.git
# 安装依赖
cd flutter_address
flutter pub get
# 运行项目
flutter run
项目结构
lib/
  ├── components/      # UI组件
  ├── constants/       # 常量定义
  ├── models/         # 数据模型
  ├── providers/      # 状态管理
  ├── screens/        # 页面
  ├── services/       # 服务
  └── utils/          # 工具类
API文档
RESTful接口
获取省份列表
GET /api/v1/provinces
Response:
{
  "code": 200,
  "data": [
    {
      "id": "110000",
      "name": "北京市",
      "level": 1
    }
  ]
}
获取城市列表
GET /api/v1/cities?provinceId=110000
Response:
{
  "code": 200,
  "data": [
    {
      "id": "110100",
      "name": "北京市",
      "level": 2
    }
  ]
}
测试报告
单元测试
void main() {
  group('AddressProvider Tests', () {
    test('加载省份列表', () async {
      final provider = AddressProvider();
      await provider.loadProvinces();
      expect(provider.provinces.length, greaterThan(0));
    });
  });
}
性能测试
- 启动时间: < 2s
- 内存占用: < 100MB
- API响应: < 300ms
- 页面切换: < 16ms
部署指南
Android部署
- 配置签名
- 修改应用ID
- 设置版本号
- 执行打包
flutter build apk --release
iOS部署
- 配置证书
- 设置Bundle ID
- 更新版本号
- 执行打包
flutter build ios --release
鸿蒙部署
- 配置开发证书
- 修改应用配置
- 设置版本信息
- 执行打包
flutter build ohos --release
贡献指南
开发流程
- Fork项目
- 创建特性分支
- 提交变更
- 发起Pull Request
代码规范
- 遵循Dart语言规范
- 使用强类型声明
- 添加完整注释
- 编写单元测试
提交规范
feat: 添加新特性
fix: 修复问题
docs: 修改文档
style: 代码格式化
refactor: 代码重构
test: 添加测试
chore: 其他修改
维护支持
技术支持
- 维护者: 坚果派
- 联系方式: 17752170152
- 官网: https://www.nutpi.net
- 开源地址: https://gitcode.com/nutpi/flutter_address
问题反馈
- GitHub Issues
- 微信群交流
- 邮件支持
- 在线文档
更新日志
v1.0.0 (2024-03-01)
- 初始版本发布
- 支持基础功能
- 完善文档说明
v1.1.0 (计划中)
- 优化搜索性能
- 添加更多数据源
- 支持自定义主题
开源协议
本项目采用 MIT 许可证
00
- 17回答
- 28粉丝
- 12关注
相关话题
- 坚果派已适配的鸿蒙版flutter库【持续更新】
- 鸿蒙版Flutter开发相关
- 鸿蒙版Flutter环境搭建
- 鸿蒙版Flutter环境配置Windows 版本
- 鸿蒙版Flutter高效使用 Packages指南
- 鸿蒙版Flutter快递查询助手
- 鸿蒙版Flutter快递查询助手
- 鸿蒙版Flutter环境配置Windows 版本
- 基于Flutter 3.27.4鸿蒙版0.1.0版本(Beta)发布
- 使用鸿蒙版Flutter3.27.4构建鸿蒙应用
- 鸿蒙版Flutter实现发送短信的功能
- Flutter到鸿蒙的跨越:flutter_native_contact_picker库的鸿蒙适配之旅
- Flutter到鸿蒙的跨越:flutter_native_contact_picker库的鸿蒙适配之旅
- 如何升级插件升级最新的鸿蒙版 flutter(3.27.5版本
- 如何快速判断 Flutter 库是否需要适配鸿蒙?纯 Dart 库无需适配!

