yourtablecloth / TableCloth

식탁보 프로젝트
GNU Affero General Public License v3.0
886 stars 54 forks source link

[Long Term Project] 식탁보 for macOS (가칭) PoC #97

Open rkttu opened 1 year ago

rkttu commented 1 year ago

노트 이 이슈는 단기 이슈가 아닌, 리서치 목적으로 자료를 정리하기 위해 개설한 이슈입니다.

2022-09-08

134130 commented 6 months ago

MacOS는 프로젝트가 WPF로 구성되어 있어 UI를 재사용하기 어렵네요..

@rkttu UI를 Avalonia와 같은 크로스플랫폼으로 변경하실 계획이신지 아니면 완전 별도로 가져갈 것인지 혹시 생각해두신 방향이 있으실지 여쭤봅니다.

rkttu commented 6 months ago

MacOS는 프로젝트가 WPF로 구성되어 있어 UI를 재사용하기 어렵네요..

@rkttu UI를 Avalonia와 같은 크로스플랫폼으로 변경하실 계획이신지 아니면 완전 별도로 가져갈 것인지 혹시 생각해두신 방향이 있으실지 여쭤봅니다.

아직 결정된 것은 아무것도 없습니다만, macOS 샌드박스 레이어는 Swift를 사용하고, 식탁보 애플리케이션 자체는 Uno나 Avalonia, 혹은 Blazor Hybrid (MAUI)를 사용하는 것을 검토 중입니다! 😊

134130 commented 4 months ago

MacOS 방향에 대해서 결정 이 Issue에 한 번 남겨주시면 감사드리겠습니다. 제가 현재는 "macos 사용 중" + "dotnet 대신 golang을 사용"하고 있어 windows 프로젝트에 기여하긴 어렵지만, cross platform 프로젝트로 방향이 결정되시면 시간을 내어 기여도 도전해보려합니다.

최근 MacOS Virtualization Framework 바인딩을 시도하신 것 같아 조만간이라는 생각이 드네요~

rkttu commented 4 months ago

macOS 버전 (Apple Silicon만 해당)의 경우, Windows Sandbox와 동일한 기능을 제공하는 macOS용 Sandbox 개발이 필요한 상황입니다. 따라서 Virtualization.framework API가 Xamarin.Mac에는 들어있지 않아서 일단 Objective Sharpie를 이용해서 바인딩 라이브러리부터 만들어보고 있습니다. (가능한 다른 언어와 Interop으로 연결하는 부분은 최소화하고, C#과 .NET Runtime으로 어디까지 통합하도록 만들 수 있을지를 시험해보기 위해서 이렇게 진행해보고 있습니다.)

macOS Sandbox 개발이 끝나면, 식탁보 macOS UI 파트의 경우 지금 사용하는 WPF처럼 네이티브 OS와 충분히 상호작용할 수 있으면서 .NET 런타임의 장점을 살릴 수 있는 UI 프레임워크를 선택하려 합니다. 식탁보 애플리케이션의 특성 상 크로스플랫폼 UI 프레임워크는 사용이 적절할 수도, 적절하지 않을 수도 있어서 이 부분은 열린 고민으로 남겨둔 상태입니다.