(TIL) 2020-09-14 기록
업데이트:
오늘 한 일
- 드디어 녹음 기능을 완성했다. 녹음하는 로직을 build 함수 안에 넣어놨더니 state가 변할 때마다 초기화를 해버려서 모든 로직을 다 provider 안에다가 넣어버렸다.
- 앞에 있는 스크린을 뒤에 반투명하게 보이게 한 채로 다른 스크린으로 라우팅을 하는 법을 찾았다. PageRouteBuilder의 opaque 파라미터에 false를 주고 라우팅 되는 스크린에서 최상위 위젯을 Material로 준 다음 type을 MaterialType.transparency로 준다. 이렇게 하면 배경은 투명하고 자식 위젯들은 투명하지 않게 된다. 여기다가 Stack을 이용해서 빈 Container를 바닥에 깔고 투명도를 적용한 색을 넣어주면 완성이다. 다만 우리 앱에서는 반투명한 것뿐 아니라 blur 처리도 해야 했기 때문에 컨테이너를 BackdropFilter 위젯으로 감싸고 filter 파라미터로 ImageFilter.blur()를 주었다.
- 그 다음에 인스타의 태그 기능을 구현하려고 했는데 인스타는 #을 쓰고 텍스트를 입력하면 그 텍스트로 시작하는 기존에 쓰인 태그들을 보여준다. 이런 Full-text search를 firestore에서는 지원하지 않기 때문에 문서의 attribute를 indexing하여 full-text search를 가능케 하는 Algolia 서비스를 이용해보기로 했다.
- 파이어 베이스의 한 콜렉션을 모두 불러와 알골리아에 인덱싱하기 위해서는 cloud functions에 node.js 함수를 배포해 실행하는 방법을 써야 한다. 이 영상에 방법이 아주 잘 나와 있었다.
내일 할 일
- 태그를 인덱싱하는 것까지는 했으니 태그를 실제로 검색하는 기능, 또 #이 입력됐을 때 공백 문자가 나오기 전까지는 계속 검색해주는 기능, 최종적으로 태그를 읽어들여서 DB에 저장하는 기능 등을 구현해야겠다. 이걸 다 하고 나면 실제로 업로드를 많이 해 보고 불러오는 기능 등을 구현할 예정이다.
댓글남기기