WeChat-SwiftUI

所属分类:微信小程序
开发工具:Swift
文件大小:0KB
下载次数:0
上传日期:2023-01-03 13:12:51
上 传 者sh-1993
说明:  用 SwiftUI 仿写的微信。
(WeChat written by SwiftUI.)

文件列表:
.swiftlint.yml (596, 2022-12-10)
ExternalResources/ (0, 2022-12-10)
ExternalResources/locales.json (5314, 2022-12-10)
LICENSE (1063, 2022-12-10)
Makefile (133, 2022-12-10)
Podfile (320, 2022-12-10)
Podfile.lock (14655, 2022-12-10)
WeChat-SwiftUI.xcodeproj/ (0, 2022-12-10)
WeChat-SwiftUI.xcodeproj/project.pbxproj (138964, 2022-12-10)
WeChat-SwiftUI.xcodeproj/project.xcworkspace/ (0, 2022-12-10)
WeChat-SwiftUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata (135, 2022-12-10)
WeChat-SwiftUI.xcodeproj/project.xcworkspace/xcshareddata/ (0, 2022-12-10)
WeChat-SwiftUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (238, 2022-12-10)
WeChat-SwiftUI.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/ (0, 2022-12-10)
WeChat-SwiftUI.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved (909, 2022-12-10)
WeChat-SwiftUI.xcodeproj/xcuserdata/ (0, 2022-12-10)
WeChat-SwiftUI.xcodeproj/xcuserdata/lebron.xcuserdatad/ (0, 2022-12-10)
WeChat-SwiftUI.xcodeproj/xcuserdata/lebron.xcuserdatad/xcschemes/ (0, 2022-12-10)
WeChat-SwiftUI.xcodeproj/xcuserdata/lebron.xcuserdatad/xcschemes/xcschememanagement.plist (350, 2022-12-10)
WeChat-SwiftUI.xcworkspace/ (0, 2022-12-10)
WeChat-SwiftUI.xcworkspace/contents.xcworkspacedata (232, 2022-12-10)
WeChat-SwiftUI.xcworkspace/xcshareddata/ (0, 2022-12-10)
WeChat-SwiftUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (238, 2022-12-10)
WeChat-SwiftUI.xcworkspace/xcshareddata/swiftpm/ (0, 2022-12-10)
WeChat-SwiftUI.xcworkspace/xcshareddata/swiftpm/Package.resolved (2007, 2022-12-10)
WeChat-SwiftUI/ (0, 2022-12-10)
WeChat-SwiftUI/API/ (0, 2022-12-10)
WeChat-SwiftUI/API/Firesbase/ (0, 2022-12-10)
WeChat-SwiftUI/API/Firesbase/FirebaseAuthService.swift (1483, 2022-12-10)
WeChat-SwiftUI/API/Firesbase/FirebaseAuthServiceMock.swift (726, 2022-12-10)
WeChat-SwiftUI/API/Firesbase/FirebaseAuthServiceType.swift (360, 2022-12-10)
WeChat-SwiftUI/API/Firesbase/FirestoreService.swift (5423, 2022-12-10)
WeChat-SwiftUI/API/Firesbase/FirestoreServiceMock.swift (3510, 2022-12-10)
WeChat-SwiftUI/API/Firesbase/FirestoreServiceType.swift (568, 2022-12-10)
WeChat-SwiftUI/API/OurOwnBackend/ (0, 2022-12-10)
WeChat-SwiftUI/API/OurOwnBackend/Lib/ (0, 2022-12-10)
WeChat-SwiftUI/API/OurOwnBackend/Lib/APIError.swift (532, 2022-12-10)
WeChat-SwiftUI/API/OurOwnBackend/Lib/EnvironmentType.swift (96, 2022-12-10)
... ...

# WeChat-SwiftUI > 本项目已使用 [The Composable Architecture](https://github.com/pointfreeco/swift-composable-architecture) 重构,最新代码在 [composable-architecture](https://github.com/Lebron1992/WeChat-SwiftUI/tree/composable-architecture) 分支。 用 SwiftUI 仿写的微信。 虽然只是一个仿写的项目,但我还是按照实际生产开发的要求去编写,而不仅仅是停留在简单的 UI 层面。 本项目的目标是尽量使用纯 SwiftUI 框架来实现。如果 SwiftUI 暂时还不支持的,我们先不实现,等 SwiftUI 支持了再实现。 ## 预览图 ## 核心架构 Redux Redux 在 React 项目中使用非常广泛。而 SwiftUI 声明式编程的理念与 React 非常类似。所以在 SwiftUI 中使用 Redux 再合适不过了。什么是 Redux?如何实现 Redux?可以去看我之前写的一篇文章 [《在 SwiftUI 中实现 Redux》](https://juejin.cn/post/6912251186770870286) 本项目就使用了 Redux 架构,相关的文件在 `Redux` 文件夹下。 ## 多语言的处理 本项目多语言的处理参考了 [Kickstarter iOS](https://github.com/kickstarter/ios-oss) 中的方法。使用 `bin/strings-script` 脚本和 `ExternalResources/locales.json` 自动生成多语言文件和 `Strings` 类型。需要添加新的语句时,只需要在 `locales.json` 添加对应的翻译,然后执行 `make strings` 命令,就可以在项目中使用 `Strings.xxx()` 得到当前语种的语句。 ## 单元测试 本项目包含了大量的单元测试,以保证关键逻辑的准确性。 ## 第三方库 - [SwiftUIRedux](https://github.com/Lebron1992/SwiftUIRedux):我自己编写的 Redux 库。编写的思路可以去看我之前写的一篇文章 [《在 SwiftUI 中实现 Redux》](https://juejin.cn/post/6912251186770870286) - [Kickstarter-Prelude](https://github.com/Lebron1992/Kickstarter-Prelude): 一些方便使用的 Swift 类型的扩展。我从 Kickstarter 的 [Kickstarter-Prelude](https://github.com/kickstarter/Kickstarter-Prelude) 项目拿过来的代码,制作成 Swift Package 库。 - [URLImage](https://github.com/dmytro-anokhin/url-image):显示网络图片。 - [LBJMediaBrowser](https://github.com/Lebron1992/LBJMediaBrowser):我自己编写的用于预览图片和视频的库。 ## 数据的模拟 本项目的用户注册与登录、聊天、联系人和个人信息等都通过 Google 的 Firebase 实现,尽量模拟实际开发的逻辑。 ## 已实现的功能 - **注册和登录** - **聊天** - 私聊:可以在联系人中找实际存在的用户聊天(除 Lebron James 外,其他NBA 球员是假数据) - 可以发送文字、图片和表情 - 点击图片查看大图 - **联系人** - 列表 - 使用右边的索引滚动列表 - 搜索 - 详情页 - **发现** - 列表 - **我** - 查看和修改个人信息:头像、名字、性别和个性签名。 ## 运行项目 本项目因为使用了 Google 的 Firebase,所以中国大陆用户运行前请连接 VPN。 测试账号:wechatswiftuitest@lebron.com / 11111111。 ## 添加新功能 如果您乐意为本项目添加新功能,我非常欢迎。请使用 GitHub Issues 写出自己想要做的功能,实现以后提交 PR。 我有代码洁癖,很注重代码的简洁性和可读性。在写代码的时候请按照我的风格来。如果觉得在代码中有地方可以改进的,欢迎指出。谢谢!

近期下载者

相关文件


收藏者