鸿蒙版Flutter·全国/世界城市信息库
2025-03-12 17:49:58
156次阅读
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回答
- 20粉丝
- 11关注
相关话题
- 坚果派已适配的鸿蒙版flutter库【持续更新】
- 鸿蒙版Flutter开发相关
- 鸿蒙版Flutter环境搭建
- 鸿蒙版Flutter环境配置Windows 版本
- 鸿蒙版Flutter高效使用 Packages指南
- 鸿蒙版Flutter快递查询助手
- 鸿蒙版Flutter快递查询助手
- 鸿蒙版Flutter环境配置Windows 版本
- Flutter到鸿蒙的跨越:flutter_native_contact_picker库的鸿蒙适配之旅
- Flutter到鸿蒙的跨越:flutter_native_contact_picker库的鸿蒙适配之旅
- 如何快速判断 Flutter 库是否需要适配鸿蒙?纯 Dart 库无需适配!
- 鸿蒙版Flutter实现发送短信的功能
- Flutter库OpenHarmony平台适配进度
- Flutter到鸿蒙的跨越:torch_light库的鸿蒙适配之旅
- 鸿蒙版 Flutter 开发:平台判断与问题处理指南