# 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开发水平也就那样。不过,这并不否认,在设计和使用逻辑的正确性和开放性上,鸿蒙还有很大的进步空间。 自己也多次尝试在官网在线提单,但是结果很不理想。怎么说呢,提单后,响应速度很快,但是很多明显不符合逻辑的设定,在官方眼中却是正常现象,而当你反驳或者继续追问的时候,官方就不再做任何处理。是自信还是傲慢,是不懂还是赖得处理,具体原因我不得而知,我只能说,这样的处理方式,伤的只会是想了解,或者是热爱鸿蒙的开发者,对于鸿蒙的发展,不会是什么好事