# ForChat
**Repository Path**: xiaoloafer/HarmonyOS-ForChat
## Basic Information
- **Project Name**: ForChat
- **Description**: 仿微信,使用鸿蒙ArkTS(API9)开发实现
- **Primary Language**: TypeScript
- **License**: WTFPL
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 0
- **Created**: 2023-12-04
- **Last Updated**: 2025-01-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ForChat
## 介绍
仿微信,使用鸿蒙ArkUI + ArkTS(API9)开发实现
由于目前所有的手机最高只到API9,我还没有基于API10的开发板用于调试,所以,代码均使用API9实现,后面API10发布后再看要不要更新了
只是用于学习鸿蒙API,代码规范以及质量就不要在意了~
样式与逻辑上,尽可能的与微信一致,但介于鸿蒙在自定义程度的局限性上,以及个人水平问题,无法做到完全一致




## 相关技术说明
### 组件说明
- 常用容器组件 Column、Row、Flex、Stack、RelativeContainer
- 常用基础组件 Button、Text、Image、Toggle、Slider、TextArea、TextInput、Blank、Divider
- 列表组件 List、Grid、AlphabetIndexer
- 其他组件 Swiper、Tabs、ImageAnimator、Badge、Panel、QRCode
- 绘制组件 Circle、Line、Path
- 媒体组件 Video
### 自定义组件
- PatternView
这里不得不吐槽一下鸿蒙,原来是想直接用自带的手势密码,但自带的问题有点多,两个密码的连接线途径的密码,会强制选择,因而,无法实现 02/20/06/60/... 这样的的密码顺序
- 微信语音输入组件
### 动画使用
- 帧动画(ImageAnimator)
- 属性动画(animation)
- 显示动画(animationTo)
- 转场动画(pageTransition)
### 功能说明
- 微信主页面【微信】【通讯录】【发现】【我】
- 聊天页面
- 支持表情图文混排(API9只能自己实现,API10会有官方的实现方式)
- 支持多种消息类型显示
- 支持发送纯文字消息,语音消息,视频文件,图片文件
- 支持播放语音、视频
这里又要吐槽下,bindContextMenu 的强制边框,还有鸿蒙现在对输入法开/关以及监听支持很差,虽然提供有接口,但貌似都无效
- 聊天设置页、联系人信息页、联系人信息编辑页
- 我 -> 服务 -> 手势密码页
- 我 -> 个人信息 -> 二维码名片页
## 开发计划
UI 相关的都玩一遍
不仅仅是界面展示,将相关可执行交互实现
数据来源:本地写死 > 本地数据库 > 在线假数据(不存在的Doge)
## 吐槽
本人之前从事Android开发,相对于Android来说,鸿蒙开发还很稚嫩,但,以Android作为参考,鸿蒙问题非常多,有些功能,在Android平台非常容易实现,但是在鸿蒙,要么没有实现,要么一堆小问题,自定义程度低,很多样式或者交互方式难以实现,易用性更是一言难尽,当然,我也没觉得Android就好到哪里去,而且我的Android开发水平也就那样。不过,这并不否认,在设计和使用逻辑的正确性和开放性上,鸿蒙还有很大的进步空间。
自己也多次尝试在官网在线提单,但是结果很不理想。怎么说呢,提单后,响应速度很快,但是很多明显不符合逻辑的设定,在官方眼中却是正常现象,而当你反驳或者继续追问的时候,官方就不再做任何处理。是自信还是傲慢,是不懂还是赖得处理,具体原因我不得而知,我只能说,这样的处理方式,伤的只会是想了解,或者是热爱鸿蒙的开发者,对于鸿蒙的发展,不会是什么好事