โปรเจ็กต์นี้ได้รับการปรับโครงสร้างใหม่โดยใช้สถาปัตยกรรมที่เขียนได้ และโค้ดล่าสุดอยู่ในสาขาสถาปัตยกรรมที่เขียนได้
WeChat เลียนแบบโดยใช้ SwiftUI
แม้ว่าจะเป็นเพียงโครงการคัดลอก แต่ฉันยังคงเขียนมันตามข้อกำหนดการผลิตและการพัฒนาจริง ไม่ใช่แค่ในระดับ UI ธรรมดา
เป้าหมายของโปรเจ็กต์นี้คือการใช้เฟรมเวิร์ก SwiftUI ล้วนๆ ให้มากที่สุด หาก SwiftUI ยังไม่รองรับ เราจะยังไม่ใช้งานตอนนี้และรอจนกว่า SwiftUI จะรองรับ
Redux ใช้กันอย่างแพร่หลายในโครงการ React แนวคิดของการเขียนโปรแกรมแบบประกาศใน SwiftUI นั้นคล้ายกับ React มาก ดังนั้นการใช้ Redux ใน SwiftUI จึงสมบูรณ์แบบ รีดักซ์คืออะไร? จะใช้งาน Redux ได้อย่างไร? คุณสามารถอ่านบทความที่ฉันเขียนก่อน "การใช้ Redux ใน SwiftUI"
โปรเจ็กต์นี้ใช้สถาปัตยกรรม Redux และไฟล์ที่เกี่ยวข้องอยู่ในโฟลเดอร์ Redux
การประมวลผลหลายภาษาของโครงการนี้อ้างอิงถึงวิธีการใน Kickstarter iOS ใช้สคริปต์ bin/strings-script
และ ExternalResources/locales.json
เพื่อสร้างไฟล์และประเภท Strings
หลายภาษาโดยอัตโนมัติ เมื่อคุณต้องการเพิ่มคำสั่งใหม่ คุณเพียงแค่เพิ่มคำแปลที่เกี่ยวข้องใน locales.json
แล้วดำเนินการคำสั่ง make strings
คุณสามารถใช้ Strings.xxx()
ในโปรเจ็กต์เพื่อรับคำสั่งในภาษาปัจจุบันได้
โปรเจ็กต์นี้มีการทดสอบหน่วยจำนวนมากเพื่อรับรองความถูกต้องของตรรกะที่สำคัญ
SwiftUIRedux: ไลบรารี Redux ที่เขียนโดยฉัน สำหรับแนวคิดในการเขียน คุณสามารถอ่านบทความที่ฉันเขียนก่อน "การใช้ Redux ใน SwiftUI"
Kickstarter-Prelude: ส่วนขยายประเภท Swift ที่สะดวกสบายบางตัว ฉันนำโค้ดจากโปรเจ็กต์ Kickstarter-Prelude ของ Kickstarter และทำให้มันกลายเป็นไลบรารี Swift Package
URLImage: แสดงภาพเครือข่าย
LBJMediaBrowser: ไลบรารีที่ฉันเขียนเองเพื่อดูตัวอย่างรูปภาพและวิดีโอ
การลงทะเบียนผู้ใช้และการเข้าสู่ระบบ แชท ผู้ติดต่อ และข้อมูลส่วนบุคคลของโปรเจ็กต์นี้ทั้งหมดดำเนินการผ่าน Firebase ของ Google โดยพยายามจำลองตรรกะการพัฒนาจริงให้มากที่สุดเท่าที่จะเป็นไปได้
ลงทะเบียนและเข้าสู่ระบบ
แชท
ผู้ติดต่อ
ค้นพบ
ฉัน
เนื่องจากโปรเจ็กต์นี้ใช้ Firebase ของ Google ผู้ใช้ในจีนแผ่นดินใหญ่จึงควรเชื่อมต่อกับ VPN ก่อนใช้งาน
บัญชีทดสอบ: [email protected] / 11111111
หากคุณยินดีที่จะเพิ่มคุณสมบัติใหม่ให้กับโครงการนี้ ฉันยินดีเป็นอย่างยิ่ง โปรดใช้ GitHub Issues เพื่อเขียนฟังก์ชันที่คุณต้องการทำ จากนั้นจึงส่ง PR หลังการใช้งาน
ฉันเป็นคนที่คลั่งไคล้โค้ดและให้ความสำคัญกับความเรียบง่ายและความสามารถในการอ่านโค้ดเป็นอย่างมาก โปรดทำตามสไตล์ของฉันเมื่อเขียนโค้ด หากคุณคิดว่าโค้ดยังมีส่วนที่สามารถปรับปรุงได้ โปรดชี้ให้เห็น ขอบคุณ!