如何优雅地开发HarmonyOS APP应用
目录:
研究HarmonyOS有一段时间了,今天主要结合自己多年的项目开发经验和各种技术栈结合HarmonyOS APP应用开发讲解下如何优雅地进行开发和积累。
一、挖掘项目需求或者做项目移植,并且做技术分析,与HarmonyOS APP应用开发相关知识点进行结合。
这里最简洁的方式就是用一个脑图规划下就好,我这里就拿我之前发布的在线教育APP的项目为例进行介绍下
二、创建项目工程,采用一个Project多个Moudule的方式进行开发,并且使用git进行托管,开源项目建议使用gitee
下面还是拿我的一个项目进行举例
我这里一个项目Project下创建了4个Module,默认的entry下并没有编写业务代码,js命名的Module下主要做的FA功能开发,java命名的Module只要做的PA部分功能开发,而roundimage是我编写的自定义组件。做好Module的划分,后期更方便我们进行代码维护和功能复用,比如自定义组件这块任何一个其它工程都可以直接拉过去用。
三、功能模块实现的流程思路
1、先处理主要业务的功能,开始进行UI开发的时候,采用静态数据进行渲染,这里可以将静态数据生成封装到一个方法之中,后期可以直接通过切换方法调用换成
云端数据对接或者PA端数据对接,如下是我工程里编写的代码截图
2、需要接入第三方SDK或者AI引擎的留在最后单独集成调试,比如扫码功能接入、直播功能接入、语音识别等。
3、每个小功能完成之后都要可维可测,并且commit push到git平台。
4、对业务流程较复杂的业务做好时序图进行记录。
四、养成良好的编程规范习惯以及运用设计模式,即使没有详细设计文档也可以快速读完项目代码
1、划分合理的包结构,包名、类名、方法名、变量名等标识符要顾名思义。
2、对关键方法、变量和步骤添加注释说明
3、对常量进行统一定义,避免出现魔鬼数字和字符串
4、每个方法体的内容尽量控制在50行以内,超过50行可以再进行方法封装和调用,这样更方便阅读代码。
5、对Java实体类的封装,只需要采用经典的getter和setter进行封装,不要嵌入@Data这类侵入性比较强的代码,这样是为了更方便在Springboot、Harmony、Android等各类开发中公用一套实体类代码,更方便前后端开发交互和协调。
6、设计模式的合理运用
比如我这里项目有静态版的、PA版的、云端版的,那么可以合理的封装设计,最后采用一个配置项进行一键切换。
以上是我结合多年前端、后端、架构设计等项目开发经验总结的一些经验,希望能够帮助大家快速get鸿蒙开发技能。
作者:软通夏德旺
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com/
如何优雅地开发HarmonyOS APP应用的更多相关文章
- 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
如何优雅的使用vue+Dcloud(Hbuild)开发混合app 最近在做混合app,前端框架用的是vue,打包app使用的是Dcloud,不过在开发过程中有一点不爽的是,如果想使用Dcloud提供的 ...
- 开发一个 app 有多难?
171 个回答 默认排序 道衍天机 有事情的加微信1293190838找我 1,150 人赞同了该回答 ----------------------------------------------- ...
- UWP开发:APP之间的数据交互(以微信为例)
目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需 ...
- 【转载】用Ionic开发hybrid APP
使用phonegap开发APP的优劣在此不必细说,快速,简单,跨平台,以及随着iOS,Android本身对webview优化所带来的不错的性能,便是其独有的优势.而且私以为在目前激烈而又变化快速的移动 ...
- 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面
此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题. 文章目录 Ionic 简介和项目需求介 ...
- 后移动互联网时代:到底还要不要开发一个App?
后移动互联网时代,到底是什么样的一个时代? 首先,后移动互联网时代中,产生头部应用的几率变小了,像微信这样巨头式的App很难在产生第二个.其次,后移动互联网时代,物联网发展迅速,所有的智能硬件都需要一 ...
- 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 第一个APP
参考博文: [Phonegap+Sencha Touch] 移动开发1.准备工作 [Phonegap+Sencha Touch] 移动开发2.PhoneGap/Cordova初步使用 经过差不多1 ...
- Cordova+ionic 开发hybird App --- 开发环境搭建
Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次 ...
- 简单5步说清App软件在线开发、App制作多少钱?
开发制作一款App,所有人都会首先关心开发一款App多少钱这个问题.从网上的信息来看,花费个几十万是很正常的事情,甚至有人说要花上百万才能制作出一款App.那么App软件的开发制作到底和什么有关?怎么 ...
随机推荐
- 痞子衡嵌入式:了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点. 前段时间痞子衡写了一篇 <深入i.MXRT1050系 ...
- 全国11省市出台区块链专项政策,Panda Global发现 "区块链+政务"被寄予厚望!
2020年已经过半,回顾2020年的上半年,不难发现其实区块链的变化非常大,今天Panda Global就给大家回顾下上半年全国关于区块链政策的发布情况.今年上半年,全国已有11个省市出台区块链专项政 ...
- 【题解】GRE Words(UVA1502)
稍微有点难度--不过没有孔姥爷毒瘤( 题意 给定一个单词表,每个单词有权值,取出一部分(不改变顺序)使得这部分的每一个字符串都是后一个的子串,问得到的最大权值. 思路 设 f[i] 表示选了第 i 个 ...
- 【题解】「P6771」[USACO05MAR]Space Elevator 太空电梯
P6771 这是一道很明显的 dp 问题. 首先 dp 最重要的三要素是:动态表示.动态转移.初始状态. 只要这三个要素搞明白了,基本就能把这题做出来了. solution 让我们来看看这题的动态表示 ...
- 题解-Little C Loves 3 III
Little C Loves 3 III 给定 \(n\) 和序列 \(a_0,a_1,\dots,a_{2^n-1}\) 和 \(b_0,b_1,\dots,b_{2^n-1}\),求序列 \(c_ ...
- HBuilder云端打包+个推
1.个推上登记应用. 应用名称和应用标识,在HBuilder的云端打包配置中获取. 应用证书:必需要有苹果开发者账号,并且加入了"iOS Developer Program".加入 ...
- python写几个排序算法
def maopao(data: list): """ 两两比较 :param data: :return: """ length = le ...
- DSL查询基础—关键字
1.query查询语句 { "query" : { "match" : { "last_name" : "Smith" ...
- css 02-CSS属性:背景属性
02-CSS属性:背景属性 #background 的常见背景属性 css2.1 中,常见的背景属性有以下几种:(经常用到,要记住) background-color:#ff99ff; 设置元素的背景 ...
- rocketMq 消息偏移量 Offset
消息偏移量 Offset queue0 offset 0 0-20 offset 4 20-40 纠错:每条消息的tag对应的HashCode. queue1 offset 1 0-20 ...