用途:为移动应用中的报表体验提供可复用判断与成熟工作流,涵盖 Android(Jetpack Compose / Material 3)和 iOS(SwiftUI)两端,适用于实现报表屏幕、数据可视化、导出功能,以及任何展示聚合数据、分析数据的特性。
要求与环境:Android 10+,图标使用自定义 PNG(painterResource(R.drawable.<name>));iOS 16+,使用 SF Symbols 或自定义资源。若报表可能超过 25 行,须采用表格优先模式(见 references/mobile-report-tables.md)。
核心能力与原则:相对尺寸与响应式布局,适配竖屏与横屏,按设备尺寸调整列数;渐进式披露,先摘要后详情,支持展开卡片、下钻与无限滚动分页;触控友好,最小点击目标 Android 48dp、iOS 44pt,用底部弹层承载筛选与操作,提供滑动手势与视觉反馈;排版可读,正文最小 14sp/pt、推荐 16sp/pt,行高 1.5 倍,对比度符合 WCAG AA(4.5:1);数据可视化用 Vico(Android)或 Swift Charts(iOS),手机表格限 3-4 列、平板 5-6 列,避免嵌套表格,状态不得仅用颜色表示;性能上采用分页拉取、缓存渲染结果、列表项使用稳定 key、昂贵计算放入后台线程。
常用模式:摘要卡片加详情列表;表格优先的分页报表(25+ 行,含粘性表头与浮动分页控件);标签页式多报表;筛选底部弹层加结果。筛选支持日期范围选择与快捷筛选 Chips。导出支持 PDF、CSV 与系统分享;Android 用 DropdownMenu,iOS 用 ShareLink / UIActivityViewController,PDF 用 UIGraphicsPDFRenderer。需提供加载、空数据与错误状态。
限制与注意事项:避免固定像素宽度、手机表格超过 4 列、嵌套滚动容器、仅用颜色指示状态、一次性加载全量数据、字号低于 14sp/pt。仓库另含 references/report-types.md 与相关深度文件,应按需加载而非默认全读;本资料未提供具体收费、价格或效果数据。