开源 | Omni-UI:开箱即用的鸿蒙组件库
背景:鸿蒙生态的加速器
组件库设计
2.1 设计理念
鸿蒙ArkUI提供的基础原子组件(如Button、Text、Image等)已具备优秀的可用性与标准化API设计,足以支撑简单场景的UI构建。但在实际业务中,开发者往往需要面对复杂交互组合与高频复用模块,例如:
-
房产行业的房源卡片(图片轮播+标签) -
交易流程的多级表单(城市选择器+日期范围) -
数据可视化的图表(折线图、雷达图等)
Omni-UI的核心价值在于:基于ArkUI原子组件构建高复用复合单元,将开发者的精力从基础组合逻辑中解放,聚焦业务创新。从设计上看Omni-UI包括:视图、表单、操作反馈、导航、图表5类共25+复合组件,能够覆盖信息展示、状态提示、可视化分析等核心开发需求。
图1. Omni-UI组件库
2.2 主题切换
Omni-UI支持一键切换主题,通过简单的配置即可动态切换主题,免去应用重启的操作。
图2. Omni-UI动态切换主题示意图
项目中如何应用
3.1. 快速接入
在需要使用的 har/hsp 模块中,通过ohpm安装库
ohpm install @wuba/omni-ui
OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包。
3.2. 使用组件库
这里以标签 Tag 为例,介绍组件库的基本使用,通过如下方式完成组件导包后使用即可
import { xxx } from ‘@omni-ui/omni_component’
使用示例如下:
import { OmniTag, TagItemInfo, TagMode } from '@omni-ui/omni_component'
import { LengthMetrics } from '@kit.ArkUI';
@Builder
export function TagEntryPageBuilder() {
TagEntryPage()
}
@Entry
@Component
struct TagEntryPage {
@State tagItems1: TagItemInfo[] = [
new TagItemInfo({ title: '纯文本tag' }),
new TagItemInfo({
title: '文本带icon',
icons: {
left: { icon: $r('app.media.tag_heart') }
}
}),
]
build() {
NavDestination() {
Column() {
OmniTag({
tagItems: this.tagItems1,
mode: TagMode.FLEX,
style: {
fontSize: 12,
fontColor: 0x6884A5,
backgroundColor: 0x249DB8D7,
itemBorder: { radius: 3 },
itemPadding: {
left: 10,
right: 10,
top: 3,
bottom: 3
},
itemSize: { width: 100, height: 30 }
},
flexSpace: { main: LengthMetrics.vp(8), cross: LengthMetrics.vp(8) }
})
.margin({
left: 20,
top: 10,
right: 13,
bottom: 8
})
}.justifyContent(FlexAlign.Center)
}.title('Tag示例')
}
}
运行打开页面,看到效果如下:
图 3. 运行效果示意图
3.3. 在线文档
Omni-UI 组件的具体使用,建议大家阅读在线文档:
在线文档:https://wuba.github.io/omni-ui/
真机演示
总结与规划
当前Omni-UI已成功助力房产鸿蒙C端业务,快速完成从0-1的搭建,覆盖业务核心场景,并且还在持续迭代中,团队目标打磨出鸿蒙生态中一流的组件库。
我们始终相信:优秀的组件库,应该在真实业务场景中自然生长。Omni-UI组件库后续计划进一步丰富生态,包括但不限于复合组件和其他助力UI开发体验的内容。
开 源
Omni-UI 项目现已开源,项目地址
https://github.com/wuba/omni-ui ,欢迎关注。
作者简介:
万兵:58同城-房产技术部-移动端架构师,目前主要负责58同城和安居客APP租房和商业地产业务。
本文分享自微信公众号 - 58技术(architects_58)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
软件国产化迁移难?
大家好,我是陈哥。 近期紧张的国际形势,不安全的气氛又开始各行各业弥漫,国产化替代的脚步进一步加快。 我的一个朋友说:他们公司被被微软突然通知禁用office365,一开始感觉天塌了,结果第二天公司就确认了国产替代方案,一周内就可以切换完毕。 就如今而言,企业面临的已非“是否迁移”的选择,而是“如何以最优路径完成迁移”的实战考验。自禅道发布发布《禅道国产化替代解决方案2.0》后,也有不少高管朋友问我国产化替代和迁移的问题。 于是,我想通过本篇文章和大家简单分享一下禅道的国产化迁移。 备注【0506】,获取完整解决方案 一、如何选择合适的国产化项目管理软件? 在信创战略推进的第五年,信创迁移已迈入深水区。适配性、易用性、安全性、性价比,这四方面都是决定企业信创迁移成败的核心指标。 适配性 不同行业、规模的企业,项目管理重点各异。软件应具备基础的任务分配、进度跟踪、资源管理功能。若企业从事研发,需有强大的文档管理、版本控制;建筑行业则对工期规划、现场协同要求高。 易用性 操作复杂的软件会增加员工学习成本,阻碍推广。优秀的国产化项目管理软件界面简洁,功能布局合理,新用户无需长时间培训就能熟练...
- 下一篇
一文看懂华为研发的底层逻辑:数十亿学费总结出“追赶到引领”的研发实践
当企业规模越来越大,战略与执行的断层问题也就越来越明显。 1997年的华为正处于“成长的十字路口”。产品开发周期长、各部门协作不畅等诸多挑战让产品研发的压力越来越大,彼时的研发与交付主要依赖于能力突出的个人和执行过程的随机应变。而项目延期、质量问题的屡屡出现,就像企业脸上的疤,永远遮不住。看似稳定运行的研发流程体系实际岌岌可危,那这场耗资数十亿的变革,有什么特点? 一、华为:要么变革,要么滑向深渊 1997年,当任正非在IBM总部看到规范化的产品开发流程时,这位中国企业家敏锐地意识到:在行业的竞争和成长中,华为需要的不仅是技术突破,更是一场深刻彻底的管理革命。由此,华为踏上了向IBM学习IPD(集成产品开发)的路。“先僵化,再固化,后优化”是华为落地IPD的底层逻辑,“先试点,再逐步推广”是落地的基本手段。引入初期,华为IPD的第一个试点产品(无线业务部大容量移动交换机VMSC6.0)也在IBM顾问的指导下完成了首次IPD流程的试运行。经过一年的试点,在多个产品中落地IPD后,华为的产品研发周期也缩短了50%左右。试点过程中,华为不断总结经验教训,对IPD流程进行优化和完善,使其更贴合...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程