我用 SwiftUI 仿写的微信开源了
经过大半年业余时间的编写,我觉得我用 SwiftUI 仿写的微信可以开源了。GitHub 开源链接 >>
虽然只是一个仿写的项目,但我还是按照实际生产开发的要求去编写,而不仅仅是停留在简单的 UI 层面。
本项目的目标是尽索引符号和详图符号量使用纯 SwiftUI 框架来实现。如果 SwiftUI 暂时还不支持的,我们先不实现,等 SwiftUI 支持了再实现。
预览图
多张图片在这里阅读体验太差,想看预览图的可以点击链接前往仓库地址查看。觉得不错的可以顺手点个 Star 支持下。谢谢!
核索引是什么意思心架构 Redux架构师证书
Redux 在 React 项目中使用非常广泛。而 S索引符号和详图符号wiftUI 声明式编程的理念与 Rea索引符号ct 非常类似。所以在 SwiftUI 中使用 Redux 再合适不过了。什么是 Redux?如何实现 Redux?可以去看我之前写的一篇文章 《googleplay安卓版下载在 SwiftUI 中实现 Redux》
本项目就使架构师工资用了 Redux 架构,相关的文件在 Redux
文件夹下。
多语言的处理
本项目多语言的处理参考了 Kickstarter iOS 中的方架构师和程序员的区别法。使用 bin/stringsgoogleplay安卓版下载-sios鲁多多appcript
脚本和 ExternalResources/locales.json
自动生成多语言文件和 Strings
类型。需要添加新的语句时,只需要在 locales.json
添加对应的翻译,然后执行 make strings
命令,就可以在项目中使用 Strings.xxx()索引超出矩阵维度
得到googleplay安卓版下载当前语种的语句。
单元测试
本项目包含google空间了大量的单元测试,以保证关键逻辑的准确性。
第三方库
- SwiftUIRedux:我自己编写的 Redux 库。编写的思路可以去看我之前写的一篇文章 《在 SwiftUI 中实现 Redux》
- Kickstarter-Prelu架构师证书de: 一些方便使用的 Swift 类型的扩展。我从 Ki架构师工资ckstarter 的 Kickstarter-Prelude 项目拿过来的代码,制作成 Swift Package 库。
- URLImage:显示网络图片。
- LBJMediaBrowser:我自己编写的用于预览图片google网站登录入口和视频的库。
数据的模拟
本项目的用户注册与登录、聊ios启动器天、联系人和个人信息等都通过 Goog热镀锌和冷镀锌的区别le 的 Firebase 实现,尽量模拟实际开发的逻辑。
已实现的功能
- 注册和登录
-
聊天
- 私聊:可以在联系人中找ios下载实际存在的用户聊天(除 Lebron James 外,其他NBA 球员是假数据)
- 可以发送文字、图片和表情
- 点击图片查看大图
-
联索引图系人
- 列表
- 使用右边的索引滚动列表架构
- 搜索
- 详情页
-
发现
- 列表
-
我
- 查看和修改个人信息:头像、名字、性别和个性签名。
添加新功能热镀锌和冷镀锌的区别
如果您乐意为本项目添加新功能,我非常欢迎。请使用 GitHub Issues 写出自己想要做的功能,实现以后提交 PR。架构图
我有代码洁癖,很注重代码的简洁性和可读性。在写代码的时候请按照我的风格来。如果觉得在代码中有地方可以改进的,欢迎指出。谢谢!