기획 과정 / 디자인

저희 B팀은 새로운 아이디어를 기획하고 디자인, 퍼블리싱 및 API연결 까지 맡았습니다.

<aside> 💡

기획


기획 단계에서는 태훈이와 함계 여러 아이디어를 생각했습니다.

추모리스트, 명언 모음, 성향테스트, 신문, 퀴즈, 명대사, 알림창 등 총 7개 정도의 아이디어가 나왔습니다. 이 중에서 선배님들의 의견을 반영하여 현재 있으면 가장 좋을 것 같은 아이디어로 기일 알림창을 개발 하기로 계획 하였습니다.

구체화


구체화 단계에서는 위에서 정한 기일알림창 아이디어를 세밀하게 구체화를 하였습니다.

그래서 기일 알림창 뿐만 아니라 고인과 추모관 알림을 추가로 더 띄우기로 하였습니다.

최애의 사인은 window94 모델로 디자인을 하였으므로 window94에 있는 매모장을 참고하여 알림창의 디자인을 생각했습니다.

초기 디자인


image.png

기일이 겹치는 애니메이션캐릭터가 있다면 계단형식으로 쌓이면서 알림이 계속 쌓이는 형식으로 디자인을 해봤습니다.

장점 : 알림창이 눈에 돋보임

단점 : 기일이 겹치면 화면 밖에 나갈 수 있고 window94의 디자인과 맞지 않음


image.png

계단 형식이 아닌 위로 쌓아올리는 형식으로 디자인

장점 : 글자를 왼쪽 정렬하여 계단식 알림창보다 깔끔해보임

단점 : 눈에 잘 띄지 않음


image.png

알림창 클릭시 화면 중아에 애니메이션 캐릭터의 명대사와 추모과으로 바로 방문 할 수 있도록 디자인

장점 : 그냥 기일을 알리는 것 보다 명대사가 있으니 호기심에 추모관을 방문 해보고 싶음

단점 : 많은 추모관이 등록될 텐데 한명한명 명대사를 찾아서 DB에 넣는게 번거러울 수 있음


최종 디자인


image.png

알림창이 더 돋보이도록 위에 배치하였고 추모관과 고인 알람까지 추가함 기일이 여러명 일 때 케러셀로 이름이 옆으로 이동할 예정


장점 : 알림창을 위에 배치하여 더 돋보임 깔끔하고 명확하게 알림을 전달함

단점 : 추모관과 고인에 대한 기준을 명확히 정햐야함


image.png

오늘은 ‘에이스’의 기일입니다. 라는 글자를 누르면 바로 밑에 창이 뜨고 명대사만 뜨고 추모관으로 바로 방문 할 수 있도록 디자인 함


장점 : 바로 밑에 떠서 번거럽지 않고 깔금함

단점 : 위와 마찬가지로 명대사 작성의 어려움

</aside>

퍼블리싱 / API 연결 과정

<aside> 💡

일단 기일창, 추모관 창, 고인 창 총 3개의 창을 띄우기 위해서 applicationList 파일에 아래와 같이 창 3개를 만들었습니다.

image.png

image.png

image.png


로그인 시 알림창 자동 생성

     useEffect(() => {
				if (isLogIned === 'true' || isLogIned === 'guest') {
     
     const anniversaryTask: TaskType = {
        component: (
          <Suspense fallback={null}>
            <AnniversaryWindow />
          </Suspense>
        ),
        type: 'App',
        id: 9996,
        name: '오늘의 기일',
        layer: undefined,
        appSetup: {
          Image: 'default',
          minWidth: 800,
          minHeight: 81,
          setUpWidth: 370,
          setUpHeight: 81,
        },
        visible: false,
      };

      setTimeout(() => {
        addTask(discover);
        addTask(anniversaryTask);
      }, 200);
    } else {
      setTimeout(() => {
        addTask(logIn);
      }, 200);
    }
  }, [isLogIned]);

로그인이 되었을 때 알림창을 자동으로 띄우기 위한 로직입니다. windowManger에서 uesEffect를 활용하여 isLogIned라면 알림창을 뛰우도록 코드를 만들었습니다. 추모관 창과 고인 창도 똑같은 로직으로 코드를 만들었습니다.


삼항 연산자를 활용하여 알림창 제목 옆 로고변경

  if (props.type === 'App') {
    return (
      <_.Window
        style={window}
        onMouseDown={() => setFocus(props.name)}
      >
        <_.WindowHeader {...moveManager()}>
          <_.TitleContainer>
            {props.setUpHeight>=81?
              <_.HeartImg
                src={props.name=="오늘의 기일" ? scal : Heart}
                draggable='false'
              />
              :
              
              <_.HeartImg
                src={props.name=="오늘의 추모관" ? flower:Heart}
                draggable='false'
              />
          }

이 코드는 @정현태의 도움을 좀 많이 받아서 작성을 하였습니다. props.setUpHeight >= 81 → 높이 값이 81 이상이면 첫 번째 <_.scal>를,

작으면 두 번째 <_.Heart>를 렌더링합니다. 차이점을 활용하여 구분하고 아이콘을 변경하려고 처음에는 고유하게 가지고 있는게 다른 id를 활용하여 변경하려 했으나 id가 무슨 이유에서인지 되지않아 일단은 하나의 높이를 1px를 다르게 변경하여 구분될 수 있도록 코드를 만들었습니다. 추후에 수정하여 바꾸도록 하겠습니다.


알림창 생성 시 오른쪽 위에 배치되도록 설정

const customWindow={...window, top:10, left:885 }
    useEffect(()=>{setWindow(customWindow)},[])

알림창이 원래는 중앙에 생성되었는데 저희의 디자인은 오른쪽 위에 띄우는 것이므로 layout을 불러와서 위치를 다 조절하였습니다.

</aside>

개발 진행 상황

<aside> 💡

</aside>

api 연결

<aside>

</aside>