제트챗
이모티콘 키보드, 단일 채팅, 그룹 채팅, 로컬 메시지 세션 캐시, 친구 서클, 주야간 테마 모드를 완벽하게 지원하는 Swift5.0으로 작성된 WeChat 채팅 애플리케이션의 간단한 모방입니다.
예
채팅 | 순간 |
---|
| |
야간 모드 | 주간 모드 |
---|
| |
주요 기술 응용
- 채팅 기능은 RxSwift+MVVM 응답 아키텍처 설계를 채택하고 ViewModel을 통해 메시지 데이터를 합리적으로 전환하여 컨트롤러 계층의 비즈니스 계산을 줄입니다.
- UITableView+FDTemplateLayoutCell은 셀 높이 적응 계산 및 캐싱을 구현하여 목록 슬라이딩 부드러움을 향상시킵니다.
- WCDBSwift는 모든 세션 메시지의 빠른 캐싱을 구현합니다.
- IGList 데이터 드라이버를 기반으로 높은 프레임 속도의 친구 서클 목록 슬라이딩을 실현합니다.
- RxTheme은 야간 모드에 적응하며 시스템 모드 설정에 따라 iOS13과 호환됩니다.
- SnapKit 순수 코드 자동 레이아웃
주요 기능
- 채팅방 키보드 제어 캡슐화 처리, 이모티콘 다줄 입력 지원, iOS13 지원
- 사용자: 친구 추가, 그룹 추가, 사용자 메모 및 이름 수정, 로컬 실시간 동기화
- 채팅: 일대일 채팅, 일대다 그룹 채팅, 텍스트, 비디오, 사진 전송 및 전달, 사진 및 비디오 탐색 지원
- 대화: 최근 채팅 대화 기록을 최근 시간순으로 정렬하여 목록으로 표시
- 코너: 단일 세션에서 읽지 않은 메시지 수를 표시하고, 읽지 않은 모든 메시지 수를 표시합니다.
- 지우기: 단일 메시지 삭제, 그룹 종료, 친구 삭제, 메시지 세션 아이콘 지우기, 기록 삭제
현재 기본 기능은 완료되었습니다. 특정 기능에 대해 알아보려면 https://github.com/developerjet/JetChat에서 소스 코드를 다운로드하여 실행할 수 있습니다.
새로운 기능
- 순간: IGList는 순간 목록의 높은 프레임 속도 슬라이딩을 구현합니다.
- 다크 모드: RxTheme은 주야간 테마 모드 전환을 구현하며 시스템 모드 설정에 따라 iOS13과 호환됩니다.
- 위젯: 최근 채팅 위젯을 추가하면 위젯을 클릭하여 채팅방으로 이동할 수 있습니다. [AppGroupsID 구성 참고]
- 다국어 전환: 영어 번역이 추가되었습니다.
팁
- 이 프로젝트에 대한 더 나은 제안이나 최적화 솔루션이 있거나 흥미로운 기능을 추가해야 하는 경우 문제에 제출해 주세요.
- Xcode15 실행 오류: SDK에 'libarclite'가 포함되어 있지 않습니다. 해결 방법 https://www.jianshu.com/p/6f3798d1de0e
MIT 라이선스에 따라 라이선스가 부여됨
- 이 프로젝트에 관심이 있으시거나 도움이 되셨다면 ?별?을 눌러주시면 감사하겠습니다❤️