当前位置: 首页 > news >正文

HarmonyOS——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端,再进行移植。

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (Harmony OS)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. 应用开发导读(Java)

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

相关文章:

  • c++ day 4
  • 【slab/0x40 UAF】TPCTF2023 - core 一题多解
  • Linux查看计算机处理器相关的信息
  • 在oracle中的scn技术
  • C/C++ 发送与接收HTTP/S请求
  • ChatGPT 问世一周年之际,开源大模型能否迎头赶上?
  • NoSQL 数据建模错误会降低性能
  • Linux: FS: inotify
  • matlab 计算两点云之间的放缩倍数
  • python+Qt5+sqllite 个性化单词记忆软件设计
  • 水库监管AI视觉算法与边缘计算盒子
  • 通过查看ThreadLocal的源码进行简单理解
  • Unittest单元测试之unittest用例执行顺序
  • 机器学习笔记 - 基于百度飞桨PaddleSeg的人体分割模型以及TensorRT部署说明
  • 【C++初阶(十)】set、map、multiset、multimap的介绍及使用
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • angular2 简述
  • canvas 高仿 Apple Watch 表盘
  • Invalidate和postInvalidate的区别
  • Java深入 - 深入理解Java集合
  • jquery cookie
  • React系列之 Redux 架构模式
  • Spring Cloud Feign的两种使用姿势
  • Terraform入门 - 1. 安装Terraform
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Tornado学习笔记(1)
  • Zepto.js源码学习之二
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 给第三方使用接口的 URL 签名实现
  • 无服务器化是企业 IT 架构的未来吗?
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 在Unity中实现一个简单的消息管理器
  • 选择阿里云数据库HBase版十大理由
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​业务双活的数据切换思路设计(下)
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • (003)SlickEdit Unity的补全
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .Net MVC + EF搭建学生管理系统
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @RequestBody与@ResponseBody的使用
  • [].slice.call()将类数组转化为真正的数组
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [android] 手机卫士黑名单功能(ListView优化)
  • [c++] C++多态(虚函数和虚继承)
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】