移动开发

传奇开心果编程1 小时前
android·flutter·ios·swiftui·移动开发·harmonyos·android jetpack
组合优先开发范式:从汉字造字原理到声明式UI组件组合思想摘要:组合优先(Composition over Inheritance)是现代声明式UI框架的核心范式,也是 Jetpack Compose、Flutter、SwiftUI 的统一底层设计逻辑。国内开发者往往熟练掌握框架语法,却难以真正吃透「弃继承、用组合」的底层思维。本文以汉字造字原理为认知跳板,依托「有限原子,组合生繁」的通用系统规律,类比迁移、逐层拆解声明式UI的组件组合思想。通过对比传统继承式UI的固有缺陷,系统讲解原子化设计、树形组件结构、Modifier链式能力组合、状态分层架构等核心机制,
传奇开心果编程2 天前
flutter·移动开发·跨平台·dart·编程语言理论·编程框架·声明式ui
【Flutter踩坑排雷】第3课:const 误用坑|const 错误使用引发 UI 异常与性能损耗第2课中 ! 的故障是“爆炸式”的:堆栈清晰、签名明确、崩溃立即发生。const 的故障则几乎是它的反面——代码编译通过,静态分析没有报错,App 正常运行,只是某些东西“不动了” 。没有异常,没有红屏,甚至没有警告。这种安静本身,就是排查难度的主要来源。
传奇开心果编程2 天前
kotlin·移动开发·跨平台·cmp·编程语言理论·编程框架·声明式ui
Compose Multiplatform 共享边界实战:架构契约、互操作同步与可回退设计摘要:CMP 1.8.0 稳定版解决了“能不能用于生产”的准入门槛,但没有回答“共享多深、边界在哪、性能怎么验收、回退是否真实可用”。本文围绕三个工程问题展开:共享边界画在哪里、互操作层的同步契约是否被正确实现、性能问题出现时能否归因到正确的阶段。 边界层面给出 commonMain 的硬性判定标准(原样编译到 iOS 与 wasmJs 零修改通过)、StateHolder + StateFlow 的状态契约,以及 SharedKernel 边界层“定义契约而非胶水”的作用;互操作层面把 AndroidV
传奇开心果编程3 天前
android·移动开发·1024程序员节·jetpack compose·编程语言理论·编程框架·声明式ui
【Jetpack Compose娓娓道来】第26课:Repository模式与数据层设计——数据的唯一入口第30课我们把业务逻辑从UI层抽到了ViewModel,ViewModel成了“大脑”。但大脑要做决策,得先有信息。信息从哪来?
传奇开心果编程3 天前
kotlin·移动开发·跨平台·cmp·编程语言理论·编程框架·声明式ui
从替代到粒度:Compose Multiplatform 的决策模式重构已开启跨平台新时代摘要:2025 年 5 月,Compose Multiplatform 的 iOS 支持进入稳定版。JetBrains 的发布说明里有一个容易被忽略的表述:它不要求团队在“全共享”与“全原生”之间二选一,而是允许一次一个屏幕、一个功能地接入。多数评论将其归入“跨平台 UI 又多了一个选项”的叙事,但这个表述的实际含义更深:它把跨平台的衡量单位从“框架”换成了“粒度”。衡量单位一变,决策模式就跟着变;决策模式一变,一个新时代就真正开始了。
贾伟康3 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|06】HarmonyOS ArkTS 烹饪计时器实战:处理倒计时、暂停、恢复和到期反馈烹饪计时器看起来只是每秒减一,但它比普通数字动画更接近一个时间系统。用户会同时煮鸡蛋、炖排骨和蒸鱼;计时期间可能锁屏、切到菜谱步骤页、暂停某一个任务,或者在应用后台时到期。只依赖页面中的 setInterval(),界面在前台短时间演示通常正常,一旦经历调度延迟和页面生命周期,剩余时间就可能漂移、冻结或丢失。
贾伟康3 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|05】HarmonyOS ArkTS 购物清单实战:去重食材并同步勾选、数量与清空动作购物清单是菜谱应用中最容易被低估的功能。界面通常只有名称、用量、勾选和删除,看起来比菜谱详情简单得多;但一旦同一种食材来自多道菜、用户又能手动添加,系统就必须回答:鸡蛋和“土鸡蛋”是否相同、500 克与 2 斤如何合并、删除最后一项后是否保持空清单、勾选失败是否还能提示成功、从菜谱批量加入时如何保留来源。
贾伟康3 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|01】HarmonyOS ArkTS 菜谱详情页实战:组织食材、营养、步骤和收藏状态菜谱详情页看起来只是“头图 + 标题 + 食材 + 做法”的长页面,实际却是健康菜谱应用中数据密度最高、状态交叉最多的页面。它需要同时回答:路由传入的是哪道菜、食材是否与菜谱一致、营养值按什么口径展示、收藏按钮是否与全局列表同步、进入做饭模式后何时记为“已做”、购物清单写盘失败时用户会看到什么。
传奇开心果编程4 天前
android·kotlin·移动开发·jetpack compose·编程语言理论·编程框架·声明式ui
【Jetpack Compose娓娓道来】 第25课:ViewModel就是UI界面的大脑这是一个用户列表页面,网络请求、状态管理、错误处理全写在可组合函数里:这段代码能跑,但它有一个致命缺陷:屏幕一旋转,所有状态归零,数据重新加载。
贾伟康4 天前
软件测试·移动开发·harmonyos·arkts·arkui·1024程序员节
【健康菜谱助手|04】HarmonyOS ArkTS 一周膳食计划实战:管理日期、餐次与菜谱替换的联动一周膳食计划看起来是一排星期标签和几张餐食卡片,真正难点却是“时间”和“引用”。周一究竟对应哪一天?切到下周后数据是否隔离?一顿午餐关联的是菜谱 ID,还是一段不可追踪的名称?替换菜品后热量概览是否同步?本地写入失败时,页面能否准确告诉用户?
贾伟康4 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|02】HarmonyOS ArkTS 烹饪步骤实战:把分步操作、完成状态和返回恢复做稳菜谱详情页解决的是“做什么”,烹饪步骤页解决的则是“现在做到哪里、下一步是什么、退出后还能不能接着做”。对用户来说,切菜时锁屏、接电话后返回、误触上一页、切到步骤总览再回来都是正常行为;对工程来说,这些行为会同时触发路由、页面生命周期、状态恢复和语音资源管理。一旦只用一个 currentStep 临时变量支撑全部流程,页面看上去能翻页,却很难称为可靠的做饭模式。
贾伟康4 天前
软件测试·移动开发·harmonyos·arkts·arkui·1024程序员节
【健康菜谱助手|03】HarmonyOS ArkTS 冰箱食材推荐实战:从本地食材选择生成可解释的候选菜谱“冰箱里有鸡蛋和土豆,今天能做什么?”这是菜谱应用中非常实用的一类入口。它不要求用户先知道菜名,而是从已有食材反推候选菜谱。看起来只要把食材关键词和菜谱文本做一次匹配即可,真正落地时却会遇到数据覆盖、别名归一、主辅料权重、缺失食材解释、排序稳定性和空结果等问题。
贾伟康4 天前
前端·移动开发·harmonyos·arkts·arkui
【化学实验室|17】HarmonyOS ArkTS 亮暗色与视觉令牌实战:集中颜色、间距和交互状态避免页面割裂一个项目拥有 Theme.ets,不等于它已经拥有完整主题系统。真正可维护的主题,需要回答四个问题:颜色表达的是业务语义还是某个十六进制值;浅色与深色是否使用同一组资源名称;系统状态栏、普通 ArkUI 组件和 Canvas 是否能同步变化;选中、按下、禁用和错误状态是否都经过对比度验证。
贾伟康5 天前
安全·移动开发·harmonyos·arkts·arkui
【化学实验室|18】HarmonyOS ArkTS 权限与隐私实战:让 module.json5、功能说明和拒绝路径一致权限与隐私检查最容易陷入两个误区:看到 module.json5 没有权限声明,就认为项目一定不存在隐私问题;或者写了一页很长的隐私政策,就认为代码行为已经被完整覆盖。真正可靠的结论必须同时核对能力声明、源码调用、本地数据、用户控制、应用内说明和发布材料。
贾伟康5 天前
软件测试·移动开发·harmonyos·arkts·arkui
【化学实验室|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明HarmonyOS 应用进入 AppGallery Connect 后,最危险的状态不是页面上出现一个明显报错,而是每个页面看起来都填了内容,实际却引用了不同版本的证据。源码里已经是 1.0.5,版本页面仍选着旧包;主模块声明了平板与 2in1,应用信息里只保留手机;包内没有网络权限,隐私材料却沿用了另一个项目;开发者上传了新 APP,却没有在版本页面重新选中它。这些问题往往到预审或人工审核阶段才暴露。
传奇开心果编程5 天前
kotlin·移动开发·跨平台·编程语言理论·开发范式·编程框架·声明式ui
【Compose Multiplatform跨端声明式UI实用技术】第20课:CMP跨平台经典示例深度解析前十九课系统覆盖了CMP从环境搭建到部署发布的完整技术栈。本课作为系列的收官之作,将以JetBrains官方示例和社区标杆项目为样本,逐层拆解CMP在真实项目中的架构决策、平台互操作策略与工程化实践。本课内容基于CMP 1.12.1与Kotlin 2.3.20。
贾伟康5 天前
软件测试·移动开发·harmonyos·arkts·arkui
【化学实验室|19】HarmonyOS ArkTS 回归测试实战:覆盖启动、空数据、异常输入和重复点击一个 HarmonyOS 工程里出现 src/test、ohosTest 和 Hypium 依赖,不代表核心功能已经受到测试保护。真正有效的回归用例必须能在需求变更后回答:冷启动是否恢复本地数据,空列表是否给出可理解反馈,未选择答案能否提交,连续点击会不会重复记分,参数运行期间是否还能被修改,收藏按钮是否误触整行导航。
传奇开心果编程6 天前
性能优化·移动开发·跨平台·编程语言理论·开发范式·编程框架·声明式ui
【Compose Multiplatform跨端声明式UI实用技术】第17课:性能优化与基准测试第16课完成了架构设计的学习。本课深入CMP性能优化的核心实践:Compose三阶段渲染管线的优化切入点、重组优化策略(@Stable/@Immutable、key()、derivedStateOf、延迟读取)、Lazy布局的性能陷阱、iOS端Metal着色器编译停顿的预编译策略、纹理图集抖动修复、Kotlin/Native GC调优、基准测试工具链,以及find_degradation脚本与LazyGridImageView基准对比。本课内容基于CMP 1.12.1与Kotlin 2.3.20。 文末附
Eyfcom6 天前
typescript·移动开发·harmonyos·arkts
〖深度〗鸿蒙 ArkTS 移动应用开发经验:从 TypeScript 心智模型到声明式运行时的六层认知重构从 Web 前端或 React Native 转到鸿蒙 ArkTS 的开发者,通常会经历一个相似的曲线:第一周觉得“语法差不多,很快能上手”,第二周开始遇到“数据变了但 UI 不动”,第三周发现长列表滚起来像幻灯片,一个月后开始怀疑自己到底会不会写声明式 UI。
FungLeo9 天前
flutter·移动开发·深色模式·可访问性·成为全栈·大字号适配
成为全栈·Flutter App 篇·主题与可访问性:深浅色、大字号和触控体验这一篇讲视觉,但重点不在"好看",在**“这些颜色和尺寸从哪来,以及谁来保证它们一直是对的”**。做 App 的过程里有个反复出现的现象:设计稿上写的是 A,开发实现的是 B,评审时没人发现。