如何优雅地开发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软件的开发制作到底和什么有关?怎么 ...
随机推荐
- 博客中css样式的正确设置
一.简介 博客园的文章是支持html代码和css样式的,即使是markdown写作.当某个标签需要特制样式时,我们可以自定义样式来覆盖掉原本的样式. 二.css样式优先级 参考至>>菜鸟教 ...
- Codeforces Edu Round 49 A-E
A. Palindromic Twist 由于必须改变.所以要使\(a[i] = a[n - i + 1]\). 要么同向走,但必须满足之前的\(a[i] = a[n - i + 1]\). 要么相遇 ...
- nginx根据http请求,将JSON的请求转发到后端,将非JSON请求,转发到前端
nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; defaul ...
- 20201205-2 HTML概念与版本
HTML的基础 HTML称为超文本标记语言,是一种标识性的语言. 它包括一系列标签,通过这些标签可以将网络上的文档格式统一, 使分散的Internet资源连接为一个逻辑整体. HTML文本是由 ...
- OGG报错:Cannot load ICU resource bundle 'ggMessage', error code 2 - No such file or directory
[oracle@dgdb1 ~]$ ggsci Oracle GoldenGate Command Interpreter for OracleVersion 11.2.1.0.3 14400833 ...
- apt-get could not get lock /var/lib/dpkg/lock报错
用apt-get命令安装一些软件包时,报这个错 could not get lock /var/lib/dpkg/lock 出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用.而导致资 ...
- get \post 接口代码及断言编写
post 请求接口 import requests import json url_path = "http://www.baidu.com" data = {"user ...
- 用DirectX12绘制一个Cube
之前一篇文章讲了DirectX12的初始化流程,现在来看看在此基础上如何绘制一个Cube. 首先,我们要为这个Cube准备一个shader,来告诉GPU绘制的具体流程,DirectX中的shader使 ...
- Web服务器-并发服务器-长连接(3.4.4)
@ 目录 1.说明 2.代码 关于作者 1.说明 每次new_socket都被强制关闭,造成短连接 所提不要关闭套接字 但是不关闭的话,浏览器不知道发完没有啊 此时用到header的属性Content ...
- Laravel笔记记录
1.获取当前控制器和action名称 request()->route()->getAction()