RRW Development Log - Month 1 Week 2

XiNiHa·2021년 1월 15일
0

RRW Development Log

목록 보기
2/15

Full Sail University에서 Final Project로 진행한 복분자막걸리(Raspberry Rice Wine, RRW) 개발 과정에서 작성한 글입니다.

As I have mentioned in the last post, this week's goal was finishing the panel splitting feature and implementing actual app features. However, I have struggled with some problems with implementing the panel split feature, and decided to remove the feature.

I have successfully adjusted the architecture to change panels to be only used for display purposes and move all the tab management logic to the wrapper. It was a base work for implementing the splitting feature - I thought that handling tab management on the wrapper side will make all the things much simpler.

After finishing that, I have started to implement the splitting feature. However, as I said before, some problems have existed with the architecture design so I was unable to implement the feature in the desired way. The problem was that I chose to use the CSS Grid to implement the whole layout. When using CSS Grid, it was almost impossible to implement split panels that have different sizes and numbers.

Let me show you an example: imagine the app starts with a 3x3 grid. If the user tries to horizontally split the first cell of the second row into three sections, then also tries to horizontally split the third cell of the second row into two sections, it becomes tricky to implement it with CSS Grid. To implement this correctly, each split edge should form a row and every other cell should be rearranged with the new row index. The code complexity increases extremely hard in this case: it would even be easier to use absolute layout with hand-computed values. There were also many other problems, such that the cells in the same row with the same number of split sections can't have different sizes.

Reimplementing the whole layout in Flexbox would resolve all the issues. However, since the splitting feature was not a core feature of the application, I simply decided to remove it. Although I always have wanted to implement this kind of stuff in my hand, I was unable to put more time into such a minor part.

Next week, I will start implementing the script editor. I will especially focus on providing comfort UX: smooth workflow with reasonably placed hotkeys. I really hope to get some progress next week.

0개의 댓글