kode-team / easylogic.studio

Fantastic Web Design Tool
https://editor.easylogic.studio
MIT License
495 stars 54 forks source link

Convert to TypeScript #71

Closed easylogic closed 3 years ago

easylogic commented 4 years ago

타입스크립트로 전환을 해보자. (이건 언제 할지 모르고... 구조를 먼저 안정화 시켜야 한다.)

전환을 하면서 전체 구조를 리팩토링 하자.

  1. EventMachine과 UIElement 를 합친다. UIElement 하나로 정의하고 EventMachine 의 기능은 UIElement 에 녹여낸다.

  2. 모노레포 형식으로 바꾸고 몇몇가지 모듈로 동작을 따로 관리한다.

    • core : UIElement 와 이벤트 시스템, store 를 관리한다.
    • editor : 에디터를 이루는 기본 UI 구조와 메세지 전송 구조, History 구조를 설계한다.
    • item: 아이템을 관리한다. (Project, Artboard, Layer 를 관리한다)
    • timeline : 애니메이션 관련 기능을 관리한다.
    • parser : 각종 속성 parser 와 interpolation 함수를 관리한다.
    • color
    • css
    • value parser
    • renderer: editor 로 관리되어진 아이템을 원하는 영역으로 그리기 전 단계로 만드는 역할을 한다.
    • canvas: renderer 로 준비된 데이타를 실제로 그리기 영역에 적용 한다. UI 인터랙션에 대한 응답을 처리한다.
    • exporter: renderer 로 준비된 데이타를 내보내기 하는 기능
  3. 중첩된 구조의 UI 만드는 기법에 대해서 연구한다. 예를 들어 Tab 같은건 Tab 이라는 컨테이너가 있고 내부에 태을 하나씩 정의 할텐데

<Tab>
    <Tab.Content title="tab 1">{content}</Tab.Content>
</Tab>

Tab 은 Tab.Content 를 가지는 구조이고 , Tab.Content 는 나의 기준에서 만들어진 컴포넌트라 생성하는 방식이 다르다. 다만 하위로 넣어줄 수는 있지 않을까? 구조를 잘 생각해보자.

easylogic commented 3 years ago

이건 한참 걸릴 듯 하니 일단 리팩토링을 어느 정도 한 다음에 진행하는게 좋을 듯 하다.

easylogic commented 3 years ago

이건 지금 당장 안될 듯 하니 일단 닫겠습니다.