Este projeto foi refatorado usando The Composable Architecture, e o código mais recente está no ramo composable-architecture.
WeChat imitado usando SwiftUI.
Embora seja apenas um projeto de cópia, ainda o escrevo de acordo com os requisitos reais de produção e desenvolvimento, não apenas no simples nível da interface do usuário.
O objetivo deste projeto é usar o framework SwiftUI puro tanto quanto possível. Se o SwiftUI ainda não oferece suporte, não o implementaremos agora e esperaremos até que o SwiftUI o suporte.
Redux é amplamente utilizado em projetos React. O conceito de programação declarativa no SwiftUI é muito semelhante ao React. Portanto, usar Redux no SwiftUI é perfeito. O que é Redux? Como implementar o Redux? Você pode ler um artigo que escrevi antes de "Implementando Redux no SwiftUI"
Este projeto usa a arquitetura Redux, e os arquivos relevantes estão na pasta Redux
.
O processamento multilíngue deste projeto refere-se ao método no Kickstarter iOS. Use o script bin/strings-script
e ExternalResources/locales.json
para gerar automaticamente arquivos multilíngues e tipos Strings
. Quando precisar adicionar uma nova instrução, você só precisa adicionar a tradução correspondente em locales.json
e, em seguida, executar o comando make strings
. Você pode usar Strings.xxx()
no projeto para obter a instrução no idioma atual.
Este projeto contém um grande número de testes unitários para garantir a precisão da lógica chave.
SwiftUIRedux: Uma biblioteca Redux escrita por mim. Para ideias sobre como escrever, você pode ler um artigo que escrevi antes de "Implementando Redux no SwiftUI"
Kickstarter-Prelude: Algumas extensões convenientes do tipo Swift. Peguei o código do projeto Kickstarter-Prelude do Kickstarter e transformei-o em uma biblioteca de pacotes Swift.
URLImage: exibe imagens de rede.
LBJMediaBrowser: Uma biblioteca que eu mesmo escrevi para visualizar imagens e vídeos.
O cadastro e login do usuário, chat, contatos e informações pessoais deste projeto são todos implementados através do Firebase do Google, tentando simular ao máximo a lógica real de desenvolvimento.
Registre-se e faça login
bater papo
Pessoa de contato
Descobrir
EU
Como este projeto usa o Firebase do Google, os usuários na China continental devem se conectar a uma VPN antes de executá-lo.
Conta de teste: [email protected] / 11111111.
Se você estiver feliz em adicionar novos recursos a este projeto, eu ficaria muito satisfeito. Use o GitHub Issues para escrever as funções que deseja executar e, em seguida, envie um PR após a implementação.
Sou um fanático por código e presto muita atenção à simplicidade e legibilidade do código. Por favor, siga meu estilo ao escrever código. Se você acha que há áreas que podem ser melhoradas no código, indique-as. Obrigado!