Proyek ini telah difaktorkan ulang menggunakan The Composable Architecture, dan kode terbaru ada di cabang arsitektur composable.
WeChat ditiru menggunakan SwiftUI.
Meskipun ini hanya proyek salinan, saya tetap menulisnya sesuai dengan kebutuhan produksi dan pengembangan yang sebenarnya, tidak hanya pada level UI yang sederhana.
Tujuan dari proyek ini adalah untuk menggunakan kerangka SwiftUI murni sebanyak mungkin. Jika SwiftUI belum mendukungnya, kami tidak akan mengimplementasikannya sekarang dan menunggu hingga SwiftUI mendukungnya.
Redux banyak digunakan dalam proyek React. Konsep pemrograman deklaratif di SwiftUI sangat mirip dengan React. Jadi menggunakan Redux di SwiftUI adalah sempurna. Apa itu Redux? Bagaimana cara mengimplementasikan Redux? Anda dapat membaca artikel yang saya tulis sebelumnya "Menerapkan Redux di SwiftUI"
Proyek ini menggunakan arsitektur Redux, dan file yang relevan ada di folder Redux
.
Pemrosesan multi-bahasa dari proyek ini mengacu pada metode di Kickstarter iOS. Gunakan skrip bin/strings-script
dan ExternalResources/locales.json
untuk secara otomatis menghasilkan file multi-bahasa dan tipe Strings
. Saat Anda perlu menambahkan pernyataan baru, Anda hanya perlu menambahkan terjemahan yang sesuai di locales.json
, lalu jalankan perintah make strings
. Anda dapat menggunakan Strings.xxx()
di proyek untuk mendapatkan pernyataan dalam bahasa saat ini.
Proyek ini berisi sejumlah besar pengujian unit untuk memastikan keakuratan logika kunci.
SwiftUIRedux: Perpustakaan Redux yang saya tulis. Untuk ide penulisan bisa membaca artikel yang saya tulis sebelumnya “Menerapkan Redux di SwiftUI”
Kickstarter-Prelude : Beberapa ekstensi tipe Swift yang nyaman. Saya mengambil kode dari proyek Kickstarter-Prelude Kickstarter dan membuatnya menjadi perpustakaan Paket Swift.
URLImage: Menampilkan gambar jaringan.
LBJMediaBrowser: Perpustakaan yang saya tulis sendiri untuk melihat pratinjau gambar dan video.
Pendaftaran pengguna dan login, obrolan, kontak, dan informasi pribadi proyek ini semuanya diterapkan melalui Firebase Google, mencoba mensimulasikan logika pengembangan sebenarnya sebanyak mungkin.
Daftar dan masuk
mengobrol
Kontak person
Menemukan
SAYA
Karena proyek ini menggunakan Firebase Google, pengguna di Tiongkok daratan harus terhubung ke VPN sebelum menjalankannya.
Akun uji: [email protected] / 11111111.
Jika Anda senang menambahkan fitur baru ke proyek ini, saya akan sangat menyambutnya. Silakan gunakan Masalah GitHub untuk menuliskan fungsi yang ingin Anda lakukan, lalu kirimkan PR setelah implementasi.
Saya seorang penggila kode dan sangat memperhatikan kesederhanaan dan keterbacaan kode. Harap ikuti gaya saya saat menulis kode. Jika menurut Anda ada area yang dapat diperbaiki dalam kode ini, harap tunjukkan. Terima kasih!