تمت إعادة هيكلة هذا المشروع باستخدام البنية القابلة للتركيب، وأحدث كود موجود في فرع البنية القابلة للتركيب.
تم تقليد WeChat باستخدام SwiftUI.
على الرغم من أنه مجرد مشروع نسخة، إلا أنني ما زلت أكتبه وفقًا لمتطلبات الإنتاج والتطوير الفعلية، وليس فقط على مستوى واجهة المستخدم البسيطة.
الهدف من هذا المشروع هو استخدام إطار عمل SwiftUI النقي قدر الإمكان. إذا لم يدعمها SwiftUI بعد، فلن نقوم بتنفيذها الآن وننتظر حتى يدعمها SwiftUI.
يستخدم Redux على نطاق واسع في مشاريع React. مفهوم البرمجة التعريفية في SwiftUI يشبه إلى حد كبير React. لذا فإن استخدام Redux في SwiftUI يعد أمرًا مثاليًا. ما هو ريدوكس؟ كيفية تنفيذ ريدوكس؟ يمكنك قراءة مقال كتبته قبل "تنفيذ Redux في SwiftUI"
يستخدم هذا المشروع بنية Redux، والملفات ذات الصلة موجودة في مجلد Redux
.
تشير المعالجة متعددة اللغات لهذا المشروع إلى الطريقة المتبعة في Kickstarter iOS. استخدم البرنامج النصي bin/strings-script
و ExternalResources/locales.json
لإنشاء ملفات متعددة اللغات وأنواع Strings
تلقائيًا. عندما تحتاج إلى إضافة عبارة جديدة، ما عليك سوى إضافة الترجمة المقابلة في locales.json
، ثم تنفيذ أمر make strings
. يمكنك استخدام Strings.xxx()
في المشروع للحصول على العبارة باللغة الحالية.
يحتوي هذا المشروع على عدد كبير من اختبارات الوحدات لضمان دقة المنطق الرئيسي.
SwiftUIRedux: مكتبة Redux كتبتها بنفسي. للحصول على أفكار حول الكتابة، يمكنك قراءة مقال كتبته قبل "Implementing Redux in SwiftUI"
Kickstarter-Prelude: بعض الامتدادات الملائمة من نوع Swift. لقد أخذت الكود من مشروع Kickstarter-Prelude الخاص بـ Kickstarter وقمت بتحويله إلى مكتبة Swift Package.
URLImage: عرض صور الشبكة.
LBJMediaBrowser: مكتبة قمت بتأليفها بنفسي لمعاينة الصور ومقاطع الفيديو.
يتم تنفيذ تسجيل المستخدم وتسجيل الدخول والدردشة وجهات الاتصال والمعلومات الشخصية لهذا المشروع من خلال Firebase الخاص بـ Google، في محاولة لمحاكاة منطق التطوير الفعلي قدر الإمكان.
التسجيل وتسجيل الدخول
محادثة
الشخص الذي يمكن الاتصال به
يكتشف
أنا
ونظرًا لأن هذا المشروع يستخدم Firebase من Google، فيجب على المستخدمين في بر الصين الرئيسي الاتصال بشبكة VPN قبل تشغيله.
حساب الاختبار: [email protected] / 11111111.
إذا كنت سعيدًا بإضافة ميزات جديدة إلى هذا المشروع، فسأرحب بذلك كثيرًا. يرجى استخدام مشكلات GitHub لكتابة الوظائف التي تريد القيام بها، ثم إرسال تقرير العلاقات العامة بعد التنفيذ.
أنا مهووس بالرموز وأولي اهتمامًا كبيرًا لبساطة التعليمات البرمجية وسهولة قراءتها. يرجى اتباع أسلوبي عند كتابة التعليمات البرمجية. إذا كنت تعتقد أن هناك مجالات يمكن تحسينها في الكود، فيرجى الإشارة إليها. شكرًا!