Este proyecto ha sido refactorizado utilizando The Composable Architecture y el código más reciente se encuentra en la rama de arquitectura componible.
WeChat imitó usando SwiftUI.
Aunque es solo una copia del proyecto, todavía lo escribo de acuerdo con los requisitos reales de producción y desarrollo, no solo en el nivel simple de la interfaz de usuario.
El objetivo de este proyecto es utilizar el marco SwiftUI puro tanto como sea posible. Si SwiftUI aún no lo admite, no lo implementaremos ahora y esperaremos hasta que SwiftUI lo admita.
Redux se usa ampliamente en proyectos React. El concepto de programación declarativa en SwiftUI es muy similar al de React. Entonces usar Redux en SwiftUI es perfecto. ¿Qué es Redux? ¿Cómo implementar Redux? Puedes leer un artículo que escribí antes "Implementación de Redux en SwiftUI"
Este proyecto utiliza la arquitectura Redux y los archivos relevantes están en la carpeta Redux
.
El procesamiento en varios idiomas de este proyecto se refiere al método en Kickstarter iOS. Utilice el script bin/strings-script
y ExternalResources/locales.json
para generar automáticamente archivos en varios idiomas y tipos Strings
. Cuando necesite agregar una nueva declaración, solo necesita agregar la traducción correspondiente en locales.json
y luego ejecutar el comando make strings
. Puede usar Strings.xxx()
en el proyecto para obtener la declaración en el idioma actual.
Este proyecto contiene una gran cantidad de pruebas unitarias para garantizar la precisión de la lógica clave.
SwiftUIRedux: una biblioteca Redux escrita por mí. Para obtener ideas sobre cómo escribir, puede leer un artículo que escribí antes "Implementación de Redux en SwiftUI".
Kickstarter-Prelude: algunas extensiones convenientes de tipo Swift. Tomé el código del proyecto Kickstarter-Prelude de Kickstarter y lo convertí en una biblioteca de paquetes Swift.
URLImage: muestra imágenes de la red.
LBJMediaBrowser: una biblioteca que escribí yo mismo para obtener una vista previa de imágenes y videos.
El registro de usuario y el inicio de sesión, el chat, los contactos y la información personal de este proyecto se implementan a través de Firebase de Google, tratando de simular la lógica de desarrollo real tanto como sea posible.
Regístrese e inicie sesión
charlar
Persona de contacto
Descubrir
I
Debido a que este proyecto utiliza Firebase de Google, los usuarios de China continental deben conectarse a una VPN antes de ejecutarlo.
Cuenta de prueba: [email protected] / 11111111.
Si está dispuesto a agregar nuevas funciones a este proyecto, lo agradecería mucho. Utilice Problemas de GitHub para escribir las funciones que desea realizar y luego envíe un PR después de la implementación.
Soy un fanático del código y presto gran atención a la simplicidad y legibilidad del código. Siga mi estilo al escribir código. Si cree que hay áreas que se pueden mejorar en el código, indíquelo. ¡Gracias!