鸿小易项目开发笔记
...
面试通项目开发笔记
前言面试通这个项目是我的第一个完整的鸿蒙项目。将会从零开始搭建项目结构,组织UI框架,编写业务逻辑,最终实现一个完整的项目。 项目简介面试通项目是一个基于 HarmonyOS NEXT 开发的鸿蒙应用,主要包含鸿蒙和前端的企业面试题以及真实的面试经验,还有一些面试辅助类的工具如常用开发单词和面试录音。 以上是该项目的概念设计图,接下来我将会记录整个项目的开发过程。 准备阶段本项目是在开发的同时进行编写,其中的代码并非最终版本 新建项目与项目结构搭建项目结构搭建本次我们采用API14来进行开发,API14是当前的最新版本,对于各项性能的调教也是当下最好的选择。 API的迭代很快,大家要及时更新版本,现在API15正式版也已经发布,还是尽快向新的转移的好。 本项目的项目结构如下所示: 12345678910111213ets├── commons│ ├── components // - 通用组件│ ├── constants // - 全局常量数据│ └── utils ...
鸿蒙网络请求学习笔记
核心概念服务器在网络上提供服务器的一台电脑,比如提供数据服务 http模块鸿蒙内置的模块,专门用于处理http网络请求,用http协议与服务器进行交流 可以用 import http from '@ohos.net.http'来进行调用。 由于需要进行网络请求,所以我们还需要在配置文件 module.json5下添加如下代码 12345"requestPermissions": [ { "name": "ohos.permission.INTERNET" } ], 完整代码如下 12345678910111213141516171819202122232425262728293031323334353637383940414243{ "module": { "name": "entry", "type": "entry", ...
关于鸿蒙的一多能力
前言一次开发多端部署是鸿蒙系统作为一款分布式架构操作系统的重要能力,他可以让一套业务代码在平板,直板机,折叠屏等各种设备上部署并进行UI界面的自动适配,从而实现一套代码多端部署的目标。他可以完美的取代安卓应用需要为平板单独开发一个应用版本的难题,极大的简化开发流程并为开发者节省大量的开发时间。 一多要解决的核心问题相比于当下全球市场份额最大的安卓系统,鸿蒙系统想要凭借一多能力去解决安卓开发的核心痛点,就需要作为开发者的我们先去了解当下的痛点是什么。 对于安卓开发的设备适配痛点 设备碎片化严重:超过24种屏幕比例,折叠屏展开/折叠状态切换带来布局断层 响应式布局成本高:需要维护多个XML布局文件,MediaQuery逻辑复杂 状态保持困难:横竖屏切换时ViewModel保存/恢复需要手动干预 多端协同缺失:手机与平板间无法实现服务无缝流转,协同开发困难 我们在应用商店中可以看到,安卓应用会有一个独立于手机应用的“HD版本”(High Definition...
Navigation与NavDestination
前言在开发面试通的过程中我突然想做一些丝滑的动画,但我发现我好像从来没用过Navigation和NavDestination,所以我决定好好研究一下这两个组件的用法。接下来我就会和大家一起去学习这两个组件的使用以及动画效果的是实现。 组件用途这里还是先附上两者的官方文档:Navigation API15 NavDestination API15 这两者都是用于进行页面跳转的组件,Navigation是用于定义导航图,而NavDestination则是用于定义具体的页面。两者自带一多能力,可以依据当前设备进行导航方式的选择。 这是在直板机场景下采用单栏显示模式,子页面的内容会直接替换掉主页面的内容。而当我们处于折叠屏展开或是平板场景下则会采用分栏展示模式,子页面的内容会被分栏展示在主页面的右侧。 两者的区别如下图所示。 Navigation常用于首页的根组件,两者结合常用于类似设置的场景,可以进行多级跳转,或在平板上进行分栏展示子页面内容,同时支持系统默认动画或是自定义转场动画。其效果可以参考以下视频: 直板机: 您的浏览器不支持视频标签。 平板: ...
面试通项目开发笔记2
前言Hello world!我又回来开发面试通项目啦~ 还没看过第一篇的建议先回头去补一补面试通项目开发笔记 上一篇中我们费劲千辛万苦完成了准备阶段的工具类封装: 基于hilog封装了日志工具类Logger 封装了利用应用上下文对象获取当前窗口并设置窗口沉浸式效果的工具类FullScreen 准备好了修改深浅色模式时所需要的状态栏文字颜色切换工具StatusBar 随后进入正式阶段,我们完成了首页的组件划分与封装,以及首页的布局设计与实现: 首先是整体应用最外层Tabs组件的构建,在其中拆分出了首页、项目、面经、我的四个页面的组件。 然后是首页组件的构建,我们由上到下封装了搜索、打卡、轮播图、题目难度标签等公共组件,还封装了独属于首页的专属组件,分类题目列表以及分类筛选按钮。 随后我们对原有的Axios请求对象封装进行了重构,填写了项目后端API的基地址,编写了获取请求对象的泛型函数将所需输入的泛型进行化简,并设置了拦截器用于简化返回的数据。
鸿蒙图片上传下载
下载沙箱图片123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778import { fileIo } from '@kit.CoreFileKit'import { photoAccessHelper } from '@kit.MediaLibraryKit';import { promptAction } from '@kit.ArkUI';@Entry@ComponentV2struct FileCopy { @Local list: Resource[] = [ $r("app.media.001"), $r("app.media.002"), ...
连连看
...