JetChat
Uma imitação simples do aplicativo de bate-papo WeChat escrito em Swift5.0, que suporta perfeitamente teclado emoticon, bate-papo único, bate-papo em grupo, cache de sessão de mensagem local, círculo de amigos, modos de tema diurno e noturno
Exemplos
bater papo | Momentos |
---|
| |
Modo noturno | modo diurno |
---|
| |
Principais aplicações técnicas
- A função de bate-papo adota o design de arquitetura responsiva RxSwift + MVVM e faz a transição razoável dos dados das mensagens por meio do ViewModel para reduzir o cálculo de negócios da camada Controlador.
- UITableView + FDTemplateLayoutCell implementa cálculo e cache adaptativo de altura de célula, melhorando a suavidade do deslizamento da lista
- WCDBSwift implementa cache rápido de todas as mensagens da sessão
- Com base no driver de dados IGList, realize o deslizamento da lista de círculos de amigos com alta taxa de quadros
- RxTheme se adapta ao modo noturno e é compatível com iOS13 seguindo as configurações do modo do sistema
- Layout automático de código puro SnapKit
Funções principais
- Processamento de encapsulamento de controle de teclado da sala de bate-papo, suporta entrada multilinha de emoticons e suporta iOS13
- Usuário: adicione amigos, adicione grupos, modifique notas e nomes de usuários, sincronização local em tempo real
- Bate-papo: bate-papo um para um, bate-papo em grupo um para muitos, suporta texto, vídeo, envio e encaminhamento de imagens, navegação de imagens e vídeos
- Conversa: registros recentes de conversas de bate-papo, exibidos em uma lista classificada pelo horário mais recente
- Canto: exibe o número de mensagens não lidas em uma única sessão, exibe o número de todas as mensagens não lidas
- Limpar: exclua uma única mensagem, saia do grupo, exclua amigos, limpe ícones de sessão de mensagens, exclua registros
Atualmente, as funções básicas foram concluídas. Para aprender sobre as funções específicas, você pode baixar o código-fonte e executá-lo em https://github.com/developerjet/JetChat.
Novos recursos
- Momentos: IGList implementa deslizamento de alta taxa de quadros da lista de Momentos
- Modo escuro: RxTheme implementa alternância de modo de tema diurno e noturno e é compatível com iOS13 seguindo as configurações do modo de sistema
- Widget: adicione um widget de bate-papo recente. Clique no widget para ir para a sala de bate-papo [observe a configuração do AppGroupsID].
- Troca de vários idiomas: a tradução em inglês foi adicionada
Pontas
- Se você tiver sugestões e soluções de otimização melhores para este projeto ou precisar adicionar algum recurso interessante, envie-as em problemas.
- Erro de execução do Xcode15: SDK não contém 'libarclite', solução https://www.jianshu.com/p/6f3798d1de0e
Licenciado sob as licenças do MIT
- Se você está interessado neste projeto ou ele te ajuda, espero que você possa me dar uma ?Estrela?, muito obrigado❤️