kmp 框架练手项目
可用于获取实时天气、逐时及7日预报、空气质量等信息,支持多城市管理与定位。该项目通过一套代码同时运行在Android、iOS和鸿蒙平 (三方公开数据)
功能特性
天气首页 — 实时天气、逐时预报、7 日预报、空气质量等卡片化展示
城市管理 — 搜索 / 添加 / 切换城市,支持定位
隐私合规 — 首次启动隐私弹窗、隐私政策与用户协议查阅
启动页 — 品牌动画 Splash Screen
设计系统 — 统一 DesignTokens(颜色、字体、间距、圆角)
下拉刷新 — 支持手动刷新天气数据
网络检测 — 实时网络状态监测与提示
UI (Compose) → Repository → API Service (Mock / Remote)
↓
Platform 抽象接口
┌──────┼──────┼──────┐
Android iOS HarmonyOS Desktop
├── composeApp/ # 跨平台共享模块(核心业务代码)
│ ├── commonMain/ # 公共代码:UI、数据层、平台抽象接口
│ ├── androidMain/ # Android 平台实现
│ ├── iosMain/ # iOS 平台实现
│ ├── ohosMain/ # 鸿蒙平台实现(含 C-interop)
│ └── desktopMain/ # 桌面平台实现(JVM)
├── app/ # Android 独立壳工程
├── harmonyApp/ # 鸿蒙壳工程(ArkTS + NAPI)
├── iosApp/ # iOS 壳工程(Xcode)
├── docs/ # 设计文档与开发指南
└── runscript/ # 鸿蒙运行脚本
数据层:WeatherRepository / CityRepository / SettingsRepository / VerificationRepository 通过 RepositoryProvider 统一管理
平台抽象:Platform、TimeUtils、PermissionManager、PlatformIcons、PlatformPager、PullToRefreshWrapper 等通过 expect/actual 实现各平台差异化能力
鸿蒙适配:通过 Kotlin/Native 编译为 .so,经 NAPI 桥接至 ArkTS 层