鸿蒙Harmony应用开发,一起来写一个“遥遥领先”的开眼App

前言

最近不知道怎么鸿蒙Harmony突然就很火,到处都是鸿蒙开发相关的文章,培训机构的也是各种推鸿蒙应用,不知道是真的🔥了,还是在贩卖焦虑!不过看热度不错,那也就来了解了解咱们的遥遥领先😊,花了大概一周的闲暇时间从了解到参照自己以前开眼App的api写了一款鸿蒙版本的开眼App!!!
先把项目的地址贴上去:WinWang/HarmoneyOpenEye: 华为鸿蒙Harmony开眼App(项目整体基于Api9+ArkTs+ArkUI) (github.com)

开发准备

1、开发工具

这一块推荐大家直接看官方社区文档,跟着文档走,下载开发工具DevEco-Studio并按照提示配置好对应的环境,初次体验可以尝试官方给的Sample创建一个demo工程体验下项目的配置和页面UI等

2、安装设备

遥遥领先是买不起了,大家直接类似Android开发一样创建对应的模拟器就好了;我用同事的真机安装测试发现Mate 30系列其实安装起来体验很糟糕,看官方论坛说是针对麒麟990和以前的cpu兼容性还没处理好,具体表现是点击界面线程阻塞无响应。

3、开发鸿蒙相关网站

以下网站是我在开发中使用较多的网站
1、UI使用参考
开发说明-容器组件-组件参考(基于ArkTS的声明式开发范式)-ArkTS API参考-HarmonyOS应用开发
2、相关开源库查询使用参考
DevEco Marketplace (harmonyos.com)
3、相关问题查询-官方论坛
文档中心 | 华为开发者联盟 (huawei.com)

项目功能简介

项目开发细节就不做过多的介绍了,项目整体基于Api9+Stage模式+ArkTs+ArkUI,主要列举下项目相关功能
1、常用组件的抽取;
2、网络请求的基础封装(基于axios和http分别写了一份)
3、封装项目页面多状态(加载中,成功,失败,空数据)
4、视频播放以及视频列表播放功能
5、列表页面刷新加载、滚动监听示例等
需要注意一点的是项目里面因为引用了axios框架,需要用ohpm(类似npm吧😭)安装axios,如果不能运行配置下环境变量即可 ohpm install @ohos/axios

项目贴图

ezgif.com-resize.gif

2.png1.png

4.png3.png

6.png5.png

7.png6-1.png

9.png8.png

11.png10.png

13.png12.png

14.png

总结

针对鸿蒙开发,相对来说如果有过Flutter或者Android Compose开发经验,使用ArkUI开发UI会无差别上手开撸;ArkTs对前端大佬来说又很熟悉和友好,不过总的来说都还行,新推出的UI都往声明式UI方向走,开发语言当作ts来对待就好,我的理解是多了些装饰器等等,当然在开发的时候也遇到一些槽点吧,我罗列大致如下:
1、自定义组件里面放BuilderParams的时候,如果超过两个不能使用闭包,这针对需要外部传参两个BuilderParams的情况写法就不太友好
2、自定义组件里面Link和Props不能设置默认值,使用这个组件外部必须使用State声明同步传递参数
3、@Extend和@Style这种抽取样式居然不能在组件外抽取公共的样式,只能在创建组件的Component里面创建,这样就没有办法设置公共的按钮、文字这些的样式了
4、沉浸式状态栏看了官方的Api和社区,我目前没找到很好的解决办法
5、最大的可能就是真机运行的支持了
可能我说的这些问题也有好的解决方法,希望知道的大佬不吝赐教!!!


##### 最后也把自己一些其他项目学习的链接贴下,只能说现在都在往大前端方向走了,真的卷不动了

Flutter版本开眼App链接(getx+retrofit+dio+jsonserialize+自定义控件demo):github.com/WinWang/ope…

Flutter版本的音乐播放App链接(getx+retrofit+dio):github.com/WinWang/mus…

ReactNative版本的开眼App链接(ReactNative-0.72):github.com/WinWang/RNO…

React版本的开眼App链接(React18+React-Vant+Mobx+axios):github.com/WinWang/rea…

Vue2版本WanAndroid链接(Vue2+vuex+vant+axios):github.com/WinWang/Vue…

Vue3版本WanAndroid链接(vue3+typeScript+pinia+vant+vite):github.com/WinWang/Vue…

Android组件化项目ReadingGallery链接(jetpack+kotlin+koin+couroutine):github.com/WinWang/Rea…

Android组件化项目初始化工具ApplicationInit链接(gradle-plugin+注解APT+ASM):github.com/WinWang/App…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/218840.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

css悬浮展示隐藏内容,从下向上展示

标题 <div class"cont"><div class"box"><img src"./images/1.jpg" alt""><p class"title">无锡2日1晚自由行(5钻)【5.23-5.25抢购】</p><div><p class"txt_a">席位充…

Java 并发编程面试题——Java 线程间通信方式

目录 1.✨Java 线程间有哪些通信方式&#xff1f;1.1.volatile 和 synchronized 关键字1.2.等待/通知机制1.2.1.概述1.2.2.经典范式 1.3.管道输入/输出流1.4.信号量 2.Thread.join() 有什么作用&#xff1f;它的使用场景是什么&#xff1f;3.Java 中需要主线程等待子线程执行完…

计算机毕设:基于机器学习的生物医学语音检测识别 附完整代码数据可直接运行

项目视频讲解: 基于机器学习的生物医学语音检测识别 完整代码数据可直接运行_哔哩哔哩_bilibili 运行效果图: 数据展示: 完整代码: #导入python的 numpy matplotlib pandas库 import pandas as pd import numpy as np import matplotlib.pyplot as plt #绘图 import se…

【STM32入门】3.OLED屏幕

1.OLED引脚 OLED屏幕的接线按图所示&#xff0c;本例中用的是4管脚OLED屏幕 2.驱动程序 配套的驱动程序是“OLED.c"&#xff0c;主要由以下函数构成&#xff1a;1、初始化&#xff1b;2、清屏&#xff1b;3、显示字符&#xff1b;4、显示字符串&#xff1b;5、显示数字…

python中的输入输出

文章目录 输入函数input()例子1.如何输入获得两个字符串?&#xff08;若输入abc def或abc,def)2.如何输入获得两个整数?&#xff08;若输入34,567)3.如何输入后获得一个元素均为数值型的列表?&#xff08;若输入12,3.4,567或[12,3.4,567]&#xff09; 输出输出函数print()pr…

Windows或mac要远程控制小米手机,用什么软件?

想要远程控制小米手机的各位不用烦恼&#xff0c;其实用AirDroid就可以直接解决跨品牌跨系统远程控制小米手机的问题。AirDroid是一种广泛使用的远程控制软件&#xff0c;专为安卓设备设计&#xff0c;可以让你在任何地方访问和控制你的小米手机。 不管你用的是哪个品牌的台式电…

HNU-电路与电子学-2017期末A卷(不含解析)

【写在前面】 电路与电子学好像是从2020级开设的课程&#xff0c;故实际上目前只有2020与2021两个年级考过期末考试。 这门课程主要由所谓的“数电”与“模电”组成。而且先学的“模电”后学的“”数电&#xff0c;故期中考试主要以“模电”为主&#xff0c;期末考试主要以“…

TikTok与时事:短视频如何塑造社会对话?

在信息传递日益迅速的数字时代&#xff0c;社交媒体成为塑造社会对话的重要平台之一。而TikTok&#xff0c;作为一款以短视频为特色的社交应用&#xff0c;正逐渐崭露头角&#xff0c;影响着社会对时事的看法和态度。本文将深入探讨TikTok在时事讨论中的作用&#xff0c;以及短…

学习ShardingSphere前置知识

学习ShardingSphere前置准备知识 一. SPI SPI&#xff08;Service Provider Interface&#xff09;是一种Java的扩展机制&#xff0c;用于实现组件之间的松耦合。在SPI模型中&#xff0c;服务提供者&#xff08;Service Provider&#xff09;定义了一组接口&#xff0c;而服务…

Python基础之Pip使用全攻略

文章目录 1\. 引言Python的包管理器的重要性为什么需要了解和使用Pip 2\. Pip的基本概念什么是PipPip的历史和发展Pip与其他Python包管理工具的比较 3\. Pip的安装和配置在不同操作系统上安装Pip的方法Pip版本的检查和升级Pip的基础配置 4\. 国内多个镜像源及使用方法常用的国内…

boost::throw_exception错误:修改VS代码生成异常选项为/EHsc

VS2013添加boost头文件和库文件路径后&#xff0c;代码编译报错&#xff1a; 错误 LNK2019 无法解析的外部符号 “void __cdecl boost::throw_exception(class std::exception const &)” (?throw_exceptionboostYAXAEBVexceptionstdZ)&#xff0c;该符号在函数 “public:…

开源项目CuteSqlite开发笔记(二):SQLite的架构

在开发CuteSqlite图形客户端的时候&#xff0c;需要用到SQL的语法解释&#xff0c;来对SQL语句进行优化。找了很多的SQL语法解释器&#xff0c;都不是十分满意&#xff0c;只有翻开Sqlite的源码&#xff0c;看看SQLite对SQL语句的解释过程&#xff0c;本文是翻译的官方文档。 官…

010 数据结构_红黑树

前言 本文将会向你介绍红黑树的概念、性质&#xff0c;以及如何手撕红黑树 1 文章重点 文本首先引入红黑树的概念和性质&#xff0c;性质非常重要对于后面的插入操作来说&#xff0c;文章的核心放在了插入部分&#xff0c;另外看插入部分之前记得看声名和节点的定义哦~ 2 引…

如何让销售技巧培训更有效、更落地

如何让销售技巧培训更有效、更落地 如今各行各业都面临着产品过剩&#xff0c;产品不好卖&#xff01;如何更好的把产品卖出去&#xff0c;更好的创造业绩。除了产品本身要符合市场需要&#xff0c;产品性价比高外&#xff0c;销售人员的销售技巧就非常重要。优秀的销售人员能…

流媒体方案之FFmpeg——实现物联网视频监控项目

目录 前言 一、FFmpeg介绍 二、FFmpeg简易理解 三、FFmpeg的重要概念 四、软硬件准备 五、移植、运行FFmpeg 六、运行FFmpeg 前言 最近想做一个安防相关的项目&#xff0c;所以跟着韦东山老师的视频来学习视频监控方案的相关知识&#xff0c;韦东山老师讲的课非常好&…

数据分享 I 2022年淘宝村名单数据,shp/excel格式数据,共7700多条数据,已可视化处理

今天分享2022年淘宝村名单数据&#xff0c;shp/excel格式数据&#xff0c;共7700多条数据&#xff01; 淘宝村认定条件为电商年销售额达1000万元及以上的行政村(不含居委会) &#xff1b;村活跃网店数达100个及以上&#xff0c;或活跃网店数达家庭户数10%及以上&#xff0c;就…

C++ day52 最长递增子序列 最长连续递增子序列 最长重复子数组

题目1&#xff1a;300 最长递增子序列 题目链接&#xff1a;最长递增子序列 对题目的理解 找出整数数组中最长严格递增子序列的长度 动态规划 动规五部曲 1&#xff09;dp数组及下标i的含义 dp[i]&#xff1a;以nums[i]为结尾的最长递增子序列的长度 递增比较的时候&am…

初探Maven

文章目录 一、Maven概述二、安装配置Maven&#xff08;一&#xff09;下载Maven&#xff08;二&#xff09;安装Maven&#xff08;三&#xff09;配置Maven 三、IDEA里配置Maven&#xff08;一&#xff09;版本情况说明&#xff08;二&#xff09;配置构建工具Maven 一、Maven概…

PyQt6 QGroupBox分组框控件

​锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计37条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话…

Python 调用企业微信群机器人发送消息及文件

Python 操作企业微信群机器人。 企业微信群创建机器人 &#xff1a; 安装 requests json &#xff1a; pip install requests pip install json发送消息&#xff08;markdown&#xff09; import requests import json# 企业微信机器人发送文字 def send_markdown (message, …