#HarmonyOS NEXT 体验官#开发一个灵感速记APP 原创 精华
目录
1 简介
生活中的零碎信息太容易忘记,「灵感速记」作为记录琐碎的小帮手,时刻记录用户关心的内容,分类整理,高效编辑,快捷分享。Less is More,借助HarmonyOS NEXT丰富的原生能力,一步操作完成各种所想,抓住每一刻灵感。 视频简介:灵感速记https://ost.51cto.com/show/29442
- 目标用户:学生、记者、产品经理、艺术创作者
本篇将介绍如何使用HarmonyOS NEXT原生能力开发灵感速记APP。效果为:
- 化繁为简,便捷高效
- 聊天式一键添加备忘、关联日程、强提醒消息、私密消息等轻量笔记。
- 可分类、搜索、分享、删除等管理记录的每条内容。
- 统一生态,有趣好用:
- 可共享消息到生态互联设备(灵动看板)。
- 支持多端布局。
2 环境搭建
我们首先需要完成HarmonyOS开发环境搭建,可参照如下步骤进行。
软件要求
- DevEco Studio版本:DevEco Studio NEXT Developer Preview2及以上。
- HarmonyOS SDK版本:HarmonyOS NEXT Developer Preview2 SDK及以上。
硬件要求
- 设备类型:华为手机。
- HarmonyOS系统:HarmonyOS NEXT Developer Preview2及以上。
环境搭建
- 安装DevEco Studio,详情请参考下载和安装软件。
- 设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,详情请参考配置开发环境。
- 开发者可以参考以下链接,完成设备调试的相关配置:
3 代码结构解读
本篇文档只对核心代码进行讲解,对于完整代码,开源后提供下载链接。
4 构建应用主界面
灵感速记应用程序遵循多端、极简页面、功能一触即达的设计理念。以手机端为例,如下图所示,首页布局了95%的功能,自下而上依次是添加和共享笔记、笔记查看、管理笔记的三大功能区。
在主页面中使用断点来分配布局,例如在手机端首页只展示消息列表视图,在折叠屏或平板上屏幕右侧新增了分类视图。整体的布局框架如下:
5 笔记数据管理
数据定义
应用开发与数据结构息息相关,在进行其他功能开发前,规划如下灵感速记的数据,主要包含笔记文本内容、记录时间、类别、完成情况等。
数据持久化
用户记录的笔记希望能持久化保存,便于用户随时查找翻阅笔记。
HarmonyOS NEXT中的ArkData (方舟数据管理)为开发者提供数据存储、数据管理和数据同步能力。其中,数据存储提供通用数据持久化能力,根据数据特点,分为用户首选项、键值型数据库和关系型数据库。灵感速记的数据较为复杂,选择关系型数据库(RDB)进行存储。
- 首先获取一个RdbStore,其中包括建库、建表、升降级等操作。
- 其次创建灵感速记笔记的RDB数据表,赋予数据的增删改查能力。
6 笔记功能开发
展示的每条笔记都是一个List元素,默认是一条高度固定的消息条。在用户单击后Item后,通过条件渲染,启用如下编辑选项:选择类别、可编辑内容、复制与华为分享、插入图片。
- 选择类别
每种笔记类别都有专属的图标和颜色,根据用户的选择实时渲染整条List Item,如下所示为用户选择默认紫色灵感类别时,临时渲染的内容做相应的渲染,当用户选择√后,再做持久化保存。
如果用户选择了强提醒类别,会触发通知时间设置,到点自动发送通知和震动响铃。
如果用户选择了日程类别,会触发日程时间选择,自动关联到系统日历。
- 可编辑内容
笔记内容包括最近编辑时间(Text)、可编辑笔记文本(InpuText)、选择的图片(Image)。这部分功能使用基础组件即可实现。 - 复制、华为分享
- 使用pasteboard接口实现复制。
- 使用systemShare接口即可实现华为分享。
- 插入图片
通过picker.PhotoViewPicker访问用户相机和相册,保护用户隐私,使用也快捷方便。
通过开发上述编辑选项功能,实现的内容编辑效果如下图所示:
7 动效开发
APP的开发离不开动画,HarmonyOS NEXT ArkUI中提供多种动画接口(属性动画、转场动画等),灵感速记中使用了转场动画、弹簧效果等动效,给用户舒适的视觉体验。
通过基础的组件转场接口transition与TransitionEffect的组合使用,定义出一镜到底的操作效果。如笔记内容在展开或收起时,加入下动画修饰:
笔记展开、收起动画效果立竿见影:
8 共享消息与灵动看板
灵感速记的共享消息功能,是将APP记录的内容分享到生态硬件(灵动看板),在灵动开板上点击完成,APP也有相应的记录。共享消息功能将笔记“用起来”,挖掘更多应用场景。共享消息功能主要使用了IoT技术实现,技术思路如下图:
在APP内置了本地html网页,用于实现配置mqtt参数以及收发数据,该过程涉及应用侧与前端页面的交互,HarmonyOS NEXT的ArkWeb(方舟Web)提供了能力运行前端JavaScript函数、数据双向传输等能力。
这里讲解如何实现html与ArkTS之间数据交互。
首先,在启动app时,要在Index.ets的aboutToAppear()中创建一个和H5页面通信的消息通道,实现如下:
其次,需要在本地src/main/resources/rawfile/index.html 中创建一个用于接收的监听端口,具体实现如下:
本地的H5可以通过与ets建立的消息通道,直接发送数据到用户页面,这个通道也可以用来接收H5发送回来的数据.
很完整的实例,必须支持!
好文!
感觉很实用