kyunggyuyeol / WPFKakaoTalk

카카오톡PC 버전 WPF Clone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WPFKakaoTalk

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)
  • Framework : .Net6 / Windows Only

사용 라이브러리

  • 로그 관련
    • LogHelper / 자체 제작
  • MVVM 관련
    • Microsoft.Toolkit.Mvvm / ver : 7.1.2
    • Microsoft.Xaml.Behaviors
  • DependencyInjection 관련
    • Microsoft.Extensions.DependencyInjection / ver : 6.0.0

솔루션 구조

Model / View / ViewModel 모두 물리적 분리 목표

View -> Common 의존 참조 (외부에서 ViewModel 주입)
ViewModel -> Common, Model, Service 의존 참조
Service -> View 의존 참조 (popup window IoC 관리)
Model 의존 참조 없음 (단독 모듈)

구현 기능

  • 로그인 화면
  • 로그인 잠금 화면
  • 로그인 환경설정 [팝업]
  • 메인 환경설정 [팝업]
  • 프로필 정보 보기 화면 [팝업]
  • 친구 리스트 화면
  • 친구 검색 및 추가
  • 채팅방 리스트 화면
  • 채팅 화면
  • 실제 채팅 기능 [서버와 통신 X]
  • 채팅 화면에서 Infinite scroll 구현

앞으로 구현 기능

  • 채팅 목록 캡쳐 해서 내보내기 기능
  • 채팅방 드래그 앤 드롭 으로 프로그램 외부에 플로팅 띄우기

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.

Environment

  • IDE : VS 2022
  • Language : C# (WPF)
  • Framework : .Net6 / Windows Only

library to use

  • Log
    • LogHelper / self-made
  • MVVM related
    • Microsoft.Toolkit.Mvvm/ver: 7.1.2
    • Microsoft.Xaml.Behaviors
  • DependencyInjection related
    • Microsoft.Extensions.DependencyInjection/ver: 6.0.0

캡쳐 화면

로그인

image

잠금 화면

image

메인 환경설정

image

메인 환경설정 > 프로필

image

친구 리스트

image

친구 검색

wpfKakaoTalk_FriendFilter

친구 검색 및 친구 등록

image

프로필 보기 및 친구 이름 변경

image

채팅방 리스트

image

채팅1

wpfKakaoTalk_Chat

채팅2

image

About

카카오톡PC 버전 WPF Clone


Languages

Language:C# 100.0%