Giter Site home page Giter Site logo

wpfkakaotalk's Introduction

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)

📁 What's included?

Name Framework Build Status
WPFKakaoTalk
main application project
NET7
(Windows Only)
None

📕 library to use

Name Version
LogHelper
Log
NETFramework45
self-production
CommunityToolkit.Mvvm
MVVM
8.1.0
Microsoft.Xaml.Behaviors
MVVM
Microsoft.Extensions.DependencyInjection
DependencyInjection
7.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.

Environment

  • 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 구현 ]

☑️ 앞으로 구현 기능

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

📷 Screenshots

로그인

image

잠금 화면

image

메인 환경설정

image

메인 환경설정 > 프로필

image

친구 리스트

image

친구 검색

wpfKakaoTalk_FriendFilter

친구 검색 및 친구 등록

image

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

image

채팅방 리스트

image

채팅1

wpfKakaoTalk_Chat

채팅2

image

wpfkakaotalk's People

Contributors

tyeom avatar tjdskaqks avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.