WPF로 KakaoTalk PC버전 클론 프로젝트 입니다.
서버와 별도 통신 기능이 없는 순수 클라이언트 기능을 WPF로 구현한 프로젝트 입니다.
서버 통신 이외 가급적 실제 동작할 수 있도록 구현 목표를 잡았으며 이 프로젝트는 WPF를 배우는 초급, 초중급 수준의 대상으로 학습 목적으로
제작하였습니다.
저 역시 모자란 부분이 많아 잘못된 부분이 있다면 같이 함께 학습하면서 고쳐봤으면 좋겠습니다.
이 프로젝트는 다음과 같은 부분을 학습하실 수 있습니다.
- C# 기본문법을 익힐 수 있습니다.
(c# 9.0 일부 Record, init 속성, C# 8.0 일부 IAsyncEnumerable 비동기 스트림 간략 예제 포함) - 기본적인 WPF xaml에 대해 익힐 수 있습니다.
- 기본적인 WPF MVVM 패턴에 대해 익힐 수 있습니다.
- WPF UC 제작 방식에 대해 익힐 수 있습니다.
- 기본 컨트롤에 스타일 적용을 하여 커스텀한 UI 제작에 대해 알아 볼 수 있습니다.
- 커스텀한 로컬 환경설정 처리 방식에 대해 알아 볼 수 있습니다.
- Command처리 및 다양한 바인딩 처리 방식에 대해 익힐 수 있습니다.
- 간단한 커스텀 컨트롤 샘플 예제가 있어 직접 활용할 수 있습니다.
- IDE : VS 2022
- Language : C# (WPF)
Name | Framework | Build Status |
---|---|---|
WPFKakaoTalk main application project |
(Windows Only) |
None |
Name | Version |
---|---|
LogHelper Log |
self-production |
Microsoft.Toolkit.Mvvm MVVM |
7.1.2 |
Microsoft.Xaml.Behaviors MVVM |
|
Microsoft.Extensions.DependencyInjection DependencyInjection |
6.0.0 |
KakaoTalk?
Messenger serviced by Kakao, a representative Korean company
This is a KakaoTalk PC version clone project with WPF
This is a WPF project that implements pure client functions without a separate communication function with the server.
We set the goal of implementation so that it can actually operate as much as possible other than server communication. Made.
through this project You can learn basic WPF syntax, MVVM architecture pattern.
- IDE : VS 2022
- Language : C# (WPF)
Model / View / ViewModel 모두 물리적 분리 목표
View -> Common 의존 참조 (외부에서 ViewModel 주입)
ViewModel -> Common, Model, Service 의존 참조
Service -> View 의존 참조 (popup window IoC 관리)
Model 의존 참조 없음 (단독 모듈)
- 로그인 화면
- 로그인 잠금 화면
- 로그인 환경설정 [팝업]
- 메인 환경설정 [팝업]
- 프로필 정보 보기 화면 [팝업]
- 친구 리스트 화면
- 친구 검색 및 추가
- 채팅방 리스트 화면
- 채팅 화면
- 실제 채팅 기능 [서버와 통신 X]
- 채팅 화면에서 Infinite scroll 구현
- 채팅 대화 말풍선 마우스 드래그로 선택 구현 [Adorner(마우스 드래그 사각형 영역 표시), ItemsControlSelector(ListBox Item 매뉴얼하게 선택) 구현 / SelectedItems Behavior 구현 ]
- 채팅 목록 캡쳐 해서 내보내기 기능
- 채팅방 드래그 앤 드롭 으로 프로그램 외부에 플로팅 띄우기