(TIL) 2020-11-06 기록

업데이트:

오늘 한 일

  • 오늘은 공개 보이스 녹음 화면 중 캡션 작성 화면을 만들었다.
  • 캡션 작성 텍스트 필드 내에 자기 자신의 프로필 사진을 띄우도록 해놨는데 이것은 TextField의 prefix 패러미터에 넣고 싶은 Widget을 넣으면 된다. 위젯이기 때문에 onClick 함수도 넣어서 기능을 다양하게 만들 수 있을 것 같다.
  • 태그 추천 기능을 거의 다 구현했다. 태그 추천 기능은 여러 가지 함수로 이루어져 있다.
    • 첫 번째, 지금 작성하고있는 텍스트가 해쉬태그를 작성 중인지 일반 글을 작성 중인지를 파악해야 한다. 이 함수는 현재 커서에서 앞쪽으로 탐색을 해서 첫 번째 #를 찾고 다시 띄어쓰기가 나오거나 텍스트의 끝에 다다를 때까지 탐색을 하여 해쉬태그의 처음과 끝 인덱스를 찾는다. 만약에 지금 #밖에 없거나, 글자 수가 0이거나, 앞으로 탐색하다가 글의 첫 부분에 도달해버렸거나, 혹은 공백 문자를 만나면 해쉬태그가 아니라고 판단하고 false를 반환한다.
    • 두 번째, 지금 해쉬태그를 작성 중인 게 맞다면 지금 작성 중인 해쉬태그를 추출해야 한다. 이것은 간단하게 #를 찾은 다음 거기서부터 해쉬태그를 찾는 정규식을 돌려서 첫 번째에 걸리는 놈을 반환하면 된다.
    • 세 번째, 해쉬태그를 추출했다면 서버에 검색하여 이 해쉬태그와 비슷한 다른 해쉬태그들을 검색해야 한다. 검색 결과를 받아오면 이것을 캐싱한다. 왜냐하면 지웠다 썼다가 하다 보면 같은 태그를 계속 검색하는 불상사가 생기기 때문이다. 그래서 모든 검색 작업 전에 캐시에 있는지 없는지 먼저 체크하고 없으면 검색 쿼리를 보낸다.
    • 네 번째, 맘에 드는 추천 해쉬태그를 찾았다면 그걸 클릭했을 때 지금 작성 중이던 해쉬태그를 그 해쉬태그로 교체해야 한다. 지금 작성 중이던 해쉬태그의 인덱스 범위를 찾은 뒤 그 부분을 rangeReplace한다. 이렇게 하면 커서가 자동으로 텍스트 필드의 첫 부분으로 가게 돼 있어서 이 부분을 자연스럽게 바꿀 필요는 있다.
    • 한 가지 구현 안 된 부분이 선택을 하고 나서 추천 드롭다운팝업이 꺼져야 하는데 이 부분이 조금 복잡해질 것 같다. 왜냐하면 overlayEntry가 현재 Overlayinsert 되면서 팝업이 뜨고 remove되면서 없어지는데 이 overlayEntry를 다른 함수나 클래스에 매개변수로 전달해서 remove를 하면 자꾸 에러가 뜬다. 이 부분은 더 연구를 해서 잘 동작하도록 만들어야 한다.

      모레 할 일

  • overlayEntry를 매개변수로 전달해서도 잘 작동되도록 손을 봐야 한다.
  • 공개보이스 화면이 다 만들어지면 필터 버튼과 해쉬태그 필터 기능을 만들어야 한다.

태그:

카테고리:

업데이트:

댓글남기기