여름방학 기간에 집중적으로 마음이 앱 개발을 진행했다!
앱 개발 기획 시 생각했던 주요 기능은 AI 상담 채팅, 진단테스트, 일기장, 게시판이 있었고
7월에 해당 기능들을 모두 구현했다.
또한 한이음 중간점검 보고서 제출 마감일이 7월 19일까지라서 중간보고서와 제작설계서를 작성했었다.
게시판
6월에 게시판 레이아웃 틀을 잡고 게시글 등록 기능을 구현했었고
7월에는 다음과 같은 기능들을 구현하여 게시판 개발을 마무리했다.
- 게시글 수정/삭제 기능
- 댓글 등록/삭제 기능
- 공감 기능
- 댓글 수, 공감 수 출력
현재 게시판은 자유게시판과 익명게시판으로 나뉜다.
추후에 진단테스트 결과에 따라 마음 온도가 낮게 나온 사용자에 대해 게시판 기능 제한을 둘 예정인데
게시판의 분류가 애매하다는 생각이 들어서 어떻게 변경할지 고민할 필요가 있었다.
진단테스트
진단테스트 문항은 JSON 파일에 저장해놓고, parsing하여 화면에 출력하도록 했다.
게시판과 마찬가지로 RecyclerView를 이용해서 구현하였는데
처음 구현하고 나서 테스트를 해보니 사용자가 선택한 응답의 체크 표시가 사라지고,
응답하지 않은 문항에 체크가 되어있는 이상한 현상이 있었다.
다행히도 이러한 현상에 대해 다룬 포스팅을 찾을 수 있었다.
https://kawaiineko.tistory.com/19
RecyclerView의 재사용 처리로 인해 이러한 현상이 발생하는 것이라고 한다.
체크한 응답이 코드상에서 저장은 되는데, 화면에 출력될 때 이상하게 나오는거라
화면에 선택했던 응답에 체크 표시를 하도록 코드를 추가함으로써 해결할 수 있었다.
AI 상담 채팅
앱의 핵심 기능이라고 할 수 있는 AI 상담 채팅 기능!
학교폭력 관련 앱이므로 앱 이용자와 전문가가 직접 상담을 할 수 있다면 좋겠지만 지금 우리가 구현하긴 힘들다고 생각되어
이것의 대체 방안으로 AI 학교폭력 상담 채팅 기능을 제공하기로 한 것이다.
Google Dialogflow 챗봇 API를 이용하여 기능 구현을 했는데
구글 서비스 계정에서 문제가 여러 차례 발생하여 Android Studio와 연동하기까지 많은 어려움이 있었다.
지금은 다행히 해당 문제를 해결하여 연동이 완료되었고
앱에서 Dialogflow에 채팅을 전송하고, 응답을 받는 코드 구현 방법을 유튜브에서 찾을 수 있어서 쉽게 구현했다.
다만, 원래 Dialogflow는 Custom payload를 이용하여 카드 형식으로 Dialogflow에 보낼 채팅을 선택할 수 있었는데
앱으로 구현할 땐 그러한 응답 형식을 구현할 수 없었다.
사용자가 메세지를 1개 보내면 그에 대한 챗봇 응답 1개만 텍스트 형식으로 받을 수 있는 로직이었기 때문이다.
따라서 웰컴 메세지 (채팅을 시작할 때 첫 메세지) 를 추가하여 사용자에게 예상 질문 목록을 보여주는 것으로 보완했다.
채팅 내역은 Firebase DB에 저장하고 불러오도록 코드를 작성하였으며
채팅 내역 전체 삭제 기능을 추가하여 편하게 웰컴 메세지를 다시 확인할 수 있도록 하였다.
기타 개발
- 사이드바 추가 (Navigation Drawer 이용)
- 로그아웃 기능 추가 (Firebase Authentication 이용)
- 앱 디자인 개선
8월에는 진단테스트 결과에 따른 기능 제한과 마음 채우기 (영상 시청) 기능 구현을 주 목표로 할 것이고
그 외 앱의 디자인 개선과 각 기능의 완성도를 높이기 위해 다양한 방법을 생각해보아야겠다.
7월 개발 일지 목록
- 7/1 (게시글 수정/삭제, 댓글 등록/조회 기능 구현)
- 7/2 (댓글 목록 레이아웃 수정, 댓글 삭제 기능 추가)
- 7/4 (Android Studio - Firebase 다시 연결)
- 7/10 (상담 채팅 레이아웃 구성, 로그인 유지 구현, 마이페이지 사용자 정보 출력)
- 7/11 ~ 7/12 (게시판 사용자 아이디 출력, 앱 테마 및 디자인 개선, 진단테스트 기능 구현)
- 7/13 (Android Studio - Dialogflow 연결 완료, 채팅 내역 Firebase DB에 저장, 불러오기)
- 7/14 ~ 7/15 (Firebase Authentication 로그아웃 기능 구현)
- 7/19 (게시판 공감 기능 추가, 사이드바 추가, 채팅 날짜 출력)
- 7/24 (게시판 댓글 개수 출력, 익명게시판 댓글 영역 삭제)
- 7/29 (진단테스트 결과 내용 추가, 채팅 전체 삭제 기능 구현, 채팅 웰컴 메세지 출력)
'[한이음 ICT 멘토링] > 월별 회고' 카테고리의 다른 글
[한이음 ICT 멘토링] 9월 : 사용자 테스트 및 디버깅, UI 개선, 한이음 공모전 참가, 논문 작성 (0) | 2021.10.05 |
---|---|
[한이음 ICT 멘토링] 8월 : 테스트 결과 기능 제한, 교화 프로그램 시청, 알림 기능, 한이음 공모전 참가 (0) | 2021.09.19 |
[한이음 ICT 멘토링] 6월 : 일기장, 게시판 기능 구현 (0) | 2021.07.27 |
[한이음 ICT 멘토링] 5월 : 개발 환경 세팅(GitHub, Android Studio, Firebase 연동), 개발 시작 (0) | 2021.06.12 |
[한이음 ICT 멘토링] 4월 : 프로젝트 개설 승인 및 개발 준비 (0) | 2021.06.12 |