このプロジェクトはコンポーザブル アーキテクチャを使用してリファクタリングされており、最新のコードは composable-architecture ブランチにあります。
WeChatはSwiftUIを使って模倣しました。
単なるコピープロジェクトではありますが、単純な UI レベルだけではなく、実際の制作および開発要件に基づいて作成します。
このプロジェクトの目標は、可能な限り純粋な SwiftUI フレームワークを使用することです。 SwiftUI がまだサポートしていない場合は、今すぐ実装せず、SwiftUI がサポートするまで待ちます。
Redux は React プロジェクトで広く使用されています。 SwiftUI の宣言型プログラミングの概念は React と非常によく似ています。したがって、SwiftUI で Redux を使用するのは完璧です。リダックスとは何ですか? Reduxを実装するにはどうすればよいですか?以前に書いた記事「SwiftUI で Redux を実装する」を読むことができます。
このプロジェクトは Redux アーキテクチャを使用しており、関連ファイルはRedux
フォルダーにあります。
このプロジェクトの多言語処理はKickstarter iOSの手法を参考にしています。 bin/strings-script
スクリプトとExternalResources/locales.json
を使用して、多言語ファイルとStrings
型を自動的に生成します。新しいステートメントを追加する必要がある場合は、対応する翻訳をlocales.json
に追加してから、 make strings
コマンドを実行するだけで済みます。プロジェクトでStrings.xxx()
使用すると、現在の言語でステートメントを取得できます。
このプロジェクトには、主要なロジックの正確性を保証するための多数の単体テストが含まれています。
SwiftUIRedux: 私が書いた Redux ライブラリ。書き方のアイデアについては、以前に書いた記事「SwiftUI での Redux の実装」を参照してください。
Kickstarter-Prelude: いくつかの便利な Swift タイプの拡張機能。 Kickstarter の Kickstarter-Prelude プロジェクトからコードを取得し、Swift Package ライブラリに作成しました。
URLImage: ネットワーク画像を表示します。
LBJMediaBrowser: 画像やビデオをプレビューするために私が自分で作成したライブラリです。
このプロジェクトのユーザー登録とログイン、チャット、連絡先、個人情報はすべて Google の Firebase を通じて実装されており、実際の開発ロジックを可能な限りシミュレートしようとしています。
登録してログインする
チャット
連絡担当者
発見する
私
このプロジェクトは Google の Firebase を使用しているため、中国本土のユーザーは実行する前に VPN に接続する必要があります。
テストアカウント: [email protected] / 11111111。
このプロジェクトに新しい機能を追加していただけるのであれば、大歓迎です。 GitHub Issuesを利用してやりたい機能を書き出し、実装後にPRを提出してください。
私はコードフリークであり、コードの単純さと読みやすさに細心の注意を払っています。コードを書くときは私のスタイルに従ってください。コードに改善できる点があると思われる場合は、指摘してください。ありがとう!