- ICPC西安站圆满收官
非凸科技作为赛事支持方,见证赛场里的算法巅峰对决!
热烈祝贺冠军北京大学、🥈亚军清华大学、🥉季军上海交通大学!
代码写尽巧思,团队并肩攻坚,为所有选手喝彩西安落幕,奔赴下一场!
我们成都站见,继续期待各位同学的精彩发挥✨#ICPC#程序设计竞赛
#非凸科技#北京大学#清华大学#上海交通大学5 赞 · 2 评论 - # 为什么说声明式UI是当代主流开发范式?CMP也顺应这个潮流
声明式UI的核心是**描述状态对应的界面,而非一步步操作控件**,和手动操作视图的命令式UI形成对比。Compose Multiplatform(CMP)采用声明式范式,正是顺应行业发展趋势。
首先,**状态驱动,解决UI与数据不同步问题**。现代App存在大量加载、弹窗、表单等多状态场景。命令式需要开发者在数据变化时手动修改控件,极易出现视图和状态不一致的bug。声明式把UI当作状态的映射,状态作为唯一数据源,数据变更后框架自动更新界面,省去大量手动刷新代码。
其次,**天然支持组件化复用**。声明式以组件树构建界面,组件本质是接收数据、输出UI描述的函数,便于拆分封装,团队协作边界清晰。CMP继承Compose组件模型,一份组件代码可在Android、桌面、Web复用。
第三,**适配跨平台需求,CMP是典型代表**。行业普遍追求一套UI逻辑多端运行。声明式只定义界面结构,底层渲染交由框架适配各平台。CMP依托Jetpack Compose声明式语法,实现安卓、桌面、Web多端运行。而命令式API绑定平台原生控件,跨端开发成本很高。
第四,**细粒度更新,兼顾性能**。声明式会生成UI快照,框架通过diff机制只更新变化部分。CMP依靠重组(recomposition)机制,仅在关联状态变化时触发组件重渲染,实现局部更新。命令式没有统一快照,需要开发者手动管控刷新,容易出现性能问题。
第五,**配套现代工程能力**。声明式天然支持组件预览、热重载与单元测试。CMP同样支持组件预览,可单独调试组件;热重载修改代码保留应用状态,显著提升开发效率。动画效果也可直接绑定状态,由框架自动驱动,不用手写复杂回调。
命令式并未完全淘汰,底层渲染、特殊交互场景仍会使用。随着应用复杂度上升,多端、组件化、快速迭代成为刚需。声明式将视图同步、增量更新等繁杂工作交给框架,让开发者专注业务状态。CMP选择声明式,正是顺应这一主流趋势,依靠统一组件模型实现跨平台UI开发。4 赞 · 1 评论 - # 2026,跨端正是群雄逐鹿
2026年的跨端赛道早已告别一家独大,多条技术路线各守疆域、相互渗透,叠加鸿蒙生态崛起,国内项目跨端考量从安卓/iOS双端,拓展为安卓/iOS/鸿蒙三端。
## 四大路线阵营
**1. 自绘全端派(Flutter)** Google主力,一套代码覆盖移动端/桌面/Web/嵌入式,Impeller补齐渲染短板,像素级UI一致性强。适合重视视觉统一、多端发布、重度动画的项目。
**2. 原生桥接派(React Native + Lynx)** 以JS/TS生态为根基,RN新架构Fabric+JSI已成熟,旧桥接瓶颈基本解决;字节Lynx主打高性能Web渲染跨端。可复用前端人力、支持热更新,适合已有Web团队的业务型App。
**3. 逻辑共享、UI复用原生派(Compose Multiplatform)** 增长势头强劲,业务逻辑跨端共享,UI可选各端原生开发或统一复用。原生体验几乎无损耗,支持渐进式迁移,适合大型存量与金融等重稳定项目。
**4. WebView+后端新派(Tauri / Dioxus / Flet)** Tauri 2.0复用系统WebView、Rust打底,告别Electron臃肿,包体小、内存低,桌面成熟并向移动端延伸。适合桌面工具、轻量客户端、内部系统。
另有UniApp(WebView为主,中小项目体量巨大)、仓颉跨端、Uno Platform、.NET MAUI等各占市场。
## 格局变化关键点
1. **不再追逐万能银弹**,选型以场景为先:桌面选Tauri、重度UI选Flutter、原生存量选CMP、前端团队选RN。
2. **鸿蒙成为独立变量**,主流框架均在适配OpenHarmony/HarmonyOS NEXT,国内项目须评估三端适配成本。
3. **语言百花齐放**,Dart、TS、Kotlin、Rust、Python、仓颉各有成熟跨端方案。
4. **两条思路博弈**:UI全跨(Flutter/RN/Tauri)效率高但有渲染层开销;仅共享逻辑(CMP)原生最优但复用率下降。
## 一句话总结
Flutter坐稳全端UI、RN守住移动基本盘、CMP发力原生存量、Tauri主导轻量桌面,加国产框架与鸿蒙入局——没有绝对赢家,只有场景适配的最优解。4 赞 · 0 评论