HarmonyOS开发:UI开展前的阶段总结
前言
关于HarmonyOS,陆陆续续总结了有14篇的文章,大家可以发现,没有一篇是关于UI相关的,不是自己没有分享的打算,而是对于这些UI而言,官方都有着一系列的文档输出,如果我再一一的分享,确实有点画蛇添足的意思,所以之前,一直从其他的方面进行总结,当然了这些方面也是平常开发中无法忽视的。
当足够的了解了HarmonyOS的相关特性之后,再去介入UI,你会发现无比的轻松,特别当你有着其他的声明式UI开发的经验时,对于HarmonyOS的UI,大致一扫,也就会了。
如何把UI阐述的简单易懂,又能方便大家使用,这是自己一直想做的事情,即区别于官方又能实际的结合需求,是接下来自己对UI相关的知识点的分享。
初始化准备
无论是之前已经发表的文章还是接下来讲述的内容,Api都是基于9以及以上的版本,采用的语言生态是ArkTS语言,其模型是Stage,如果你的环境和我的有出入,建议以我的为主,进行学习和开发项目,主要原因如下:
ArkTS语言
虽然ArkUI框架也就是方舟开发框架(HarmonyOS提供了一套UI开发框架)针对不同目的和技术背景的开发者提供了两种开发范式,基于ArkTS的声明式开发范式和类Web开发范式,但是仍然建议你第一选择,一定要选择声明式开发范式的ArkTs语言。
主要原因有来自于官方的推荐,以及在开发效率和应用性能上,ArkTs语言性能更佳,开发更高效。
Stage模型
采用Stage模型,是因为以后主推且会长期演进的模型,下图来源于官方文档。
未来HarmonyOS舍弃AOSP是必然的事件,大家尽量舍弃之前Api,已全新的Api进行介入,方便后续的项目开发。
以脚手架为产出物
如何让大家在学习HarmonyOS的时候,更加的方便,遇到相关UI效果,能够第一时间的查看到代码,基于之前的Android和Flutter,便萌生了一个HarmonyOS版的脚手架。
之前的Android端脚手架
之前的Flutter端脚手架
在移动端,也许,大家对脚手架有陌生感,说白了就是一个工具,通过工具,可以帮助我们生成代码,提高我们的开发效率,和IDE插件不同的是,它可以更加的灵活,拓展出插件所实现不了的一些功能。
那么接下来,我也会仿照着之前所做的一些工具,结合HarmonyOS语言,以UI为介入点,从0到1,开发出一个HarmonyOS版的脚手架,当然了工具只是最终的产出物,实际还是以技术要点为文章,旨在既能帮助到大家学习,又能帮助到大家以后的项目开发。
第一阶段还是以桌面程序为主,第二阶段可以拓展到DevEco Studio插件里。
虽然说,ArkUI-X进一步将ArkUI扩展到了多个OS平台,但是截至到当前,还未支持PC端,那么桌面程序只能选择其他语言了,一开始想到的是Flutter,毕竟刚开发过,但是HarmonyOS已经有了NodeJs,基于此,便改用Electron作为桌面开发工具,后续如果出了PC端,再进行移植。
最后总结
接下来的一段时间,都会写一些关于UI相关的,毕竟UI是用于渲染数据的,是HarmonyOS开发中必不可少也尤为重要的组成部分,会和官方进行差异化,和实际的业务进行关联,并沉淀于脚手架,希望接下来能够帮助到大家。
相关文章:

HarmonyOS开发:UI开展前的阶段总结
前言 关于HarmonyOS,陆陆续续总结了有14篇的文章,大家可以发现,没有一篇是关于UI相关的,不是自己没有分享的打算,而是对于这些UI而言,官方都有着一系列的文档输出,如果我再一一的分享࿰…...
Linux安装Libreoffice
windos安装Libreoffice https://zh-cn.libreoffice.org/ C:\路径\LibreOffice\program\soffice.bin --help 看是否输出帮助命令 Linux安装Libreoffice 1、下载rpm包并解压https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/ 2、安装: yum install…...

如何将系统盘MBR转GPT?无损教程分享!
什么是MBR和GPT? MBR和GPT是磁盘的两种分区形式:MBR(主引导记录)和GPT(GUID分区表)。 新硬盘不能直接用来保存数据。使用前应将其初始化为MBR或GPT分区形式。但是,如果您在MBR时需…...

基于element-plus定义表单配置化
文章目录 前言一、配置化的前提二、配置的相关组件1、新建form.vue组件2、新建input.vue组件3、新建select.vue组件4、新建v-html.vue组件5、新建upload.vue组件6、新建switch.vue组件7、新建radio.vue组件8、新建checkbox.vue组件9、新建date.vue组件10、新建time-picker.vue组…...
LeetCode算法题解(贪心)|LeetCode122. 买卖股票的最佳时机 II、LeetCoed55. 跳跃游戏、LeetCode45. 跳跃游戏 II
一、LeetCode122. 买卖股票的最佳时机 II 题目链接:122. 买卖股票的最佳时机 II 题目描述: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 …...

计蒜客详解合集(2)期
目录 T1126——单词倒排 T1617——地瓜烧 T1612——蒜头君的数字游戏 T1488——旋转单词 T1461——校验信用卡号码 T1437——最大值和次大值 T1126——单词倒排 超级水的一道题,和T1122类似但更简单,分割后逆序输出即可~ 编写程序,读入…...

华为防火墙vrrp+hrp双机热备主备备份(两端为交换机)
默认上下来全两个vrrp主都是左边 工作原理: vrrp刚开机都是先initialize状态,然后切成active或standb状态。 hrp使用18514端口,且用的单播,要策略放行,由主设备发hrp心跳报文 如果设备为acitve状态时自动优先级为65…...

Angular 由一个bug说起之一:List / Grid的性能问题
在angular中,MatTable构建简单,使用范围广。但某些时候会出现卡顿 卡顿情景: 1:一次性请求太多的数据 2:一次性渲染太多数据,这会花费CPU很多时间 3:行内嵌套复杂的元素 4:使用过多的…...

第12章 PyTorch图像分割代码框架-3:推理与部署
推理模块 模型训练完成后,需要单独再写一个推理模块来供用户测试或者使用,该模块可以命名为test.py或者inference.py,导入训练好的模型文件和待测试的图像,输出该图像的分割结果。inference.py主体部分如代码11-7所示。 代码11-7 …...
MYSQL---基础篇
一、数据库操作 1.创建数据库:CREATE DATABASE db_test1; 2.使用数据库:use 数据库名; 3.删除数据库:DROP DATABASE [IF EXISTS] db_name; 4.创建表:CREATE TABLE table_name ( field1 datatype, field2…...

【启扬方案】启扬安卓屏一体机在医疗自助服务终端上的应用解决方案
为了解决传统医疗模式下的“看病难、看病慢”等问题,提高医疗品质、效率与效益,自助服务业务的推广成为智慧医疗领域实现信息化建设、高效运作的重要环节。 医疗自助服务终端是智慧医疗应用场景中最常见的智能设备之一,它通过与医院信息化系统…...

收藏!7个国内「小众」的程序员社区
技术社区是大量开发者的集聚地,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起学习和交流。 国内知名的技术社区有CSDN、博客园、开源中国、51CTO,还有近两年火热的掘金ÿ…...

LeetCode(4)删除有序数组中的重复项 II【数组/字符串】【中等】
目录 1.题目2.答案3.提交结果截图 链接: 80. 删除有序数组中的重复项 II 1.题目 给你一个有序数组 nums ,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数…...
C++ 同构字符串/ 单词规律
给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相…...
oracle 中 %TYPE %ROWTYPE
前言 PL/SQL 提供了 %TYPE 和 %ROWTYPE 两种特殊的变量,用于声明与表的列相匹配的变量和用户定义数据类型,前一个表示单属性的数据类型,后一个表示整个属性列表的结构,即元组的类型。 举例: -- 数据表TB_TRANS_RECO…...
Pytorch实战教程(五)-计算机视觉基础
0. 前言 计算机视觉是指通过计算机系统对图像和视频进行处理和分析,利用计算机算法和方法,使计算机能够模拟和理解人类的视觉系统。通过计算机视觉技术,计算机可以从图像和视频中提取有用的信息,实现对环境的感知和理解,从而帮助人们解决各种问题和提高效率。本节中,将介…...

51单片机PCF8591数字电压表数码管显示设计( proteus仿真+程序+设计报告+讲解视频)
PCF8591数字电压表数码管显示 1.主要功能:讲解视频:2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接(可点击): 51单片机PCF8591数字电压表数码管设计( proteus仿真程序设计报告讲解视…...

普华永道于进博会首发“企业数据资源会计处理一体化平台”
11月6日,在第六届中国国际进口博览会上,普华永道发布企业数据资源会计处理一体化平台(英文名为Data Accounting Platform,简称DAP)。该产品以普华永道“五步法”数据资源入表路径为理论依据,依托多年来普华…...

IDEA 使用Reset Current Branch to Here 进行git 版本控制,图文操作
文章目录 一、总结区别(只针对本地仓库操作)Soft详细解释文件版本冲突处理 Mixed详细解释Hard详细解释Keep详细解释文件版本冲突处理 二、其他Revert commit 参考文档 一、总结区别(只针对本地仓库操作) Soft详细解释 Soft操作只…...

有趣的 TCP 抢带宽行为
昨天发了一篇 非技术文章,很多人找我讨论,浓缩成一句话,就是 “死道友而不死贫道”,我的简历上写着这些把戏能带来什么,我的 blog 上写着这么做是多么无耻,哈哈。 看看共享链路上如何挤占带宽: …...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...