새벽 시간에 완전 집중해서 개발했다!! 덕분에 많은 진전이 있었다.

슬슬 앱의 디자인적인 요소를 신경써야할거 같아서 폰트나 테마를 수정해봤고

주요 기능인 진단테스트 구현을 하루만에 거의 다 완성해서 좋다.

 

 

1. 로그인 사용자 싱글톤 패턴으로 관리

- 앱 기능 구현할 때 현재 로그인한 사용자 정보를 불러오는 경우가 많이 있는데 이것을 매번 firebase DB에서 불러오는 것이 비효율적이라는 생각이 들었음

- 최초 로그인 또는 앱에 재접속할 때 사용자 정보를 DB에서 불러와서 저장해두도록 함

- 사용자 정보가 필요할 때 해당 객체에 저장된 데이터 이용


2. 게시판 사용자 아이디 반영

- 글 작성 시 현재 로그인한 사용자의 uid를 같이 저장함

- uid를 이용해서 자신이 작성한 게시글만 수정/삭제할 수 있도록 함 (버튼 visibility 설정)

- 댓글 작성 시 현재 로그인한 사용자의 uid를 같이 저장함
- 마찬가지로 uid를 이용해서 자신이 작성한 댓글만 삭제할 수 있도록 함


3. 메인 화면 뒤로가기 버튼 클릭 시 팝업

- 메인화면에서 뒤로가기 버튼을 누르면 아무 메세지 없이 앱이 종료되는 상태였음

- 뒤로가기 버튼을 클릭하면 다이얼로그 팝업이 뜨면서 앱을 종료할지 묻고 "네"를 클릭하면 앱이 종료됨


4. 앱 디자인, 레이아웃
- style.xml을 이용해서 커스텀 폰트 적용, 버튼 기본 스타일 지정

- themes.xml에서 상속받는 테마를 Theme.AppCompat.DayNight.NoActionBar로 변경 (상단바 없앰)
- linear layout로 레이아웃 구현한 페이지들 -> constraint layout으로 다수 변경


5. 진단테스트
- 테스트 문항 데이터는 JSON 파일에 입력했고 assets 폴더에 저장함 (https://lktprogrammer.tistory.com/175 참고)
- 테스트 문항 목록을 recyclerview -> listview로 수정

- listview의 메모리 관리로 인해 스크롤하면 체크한 문항의 체크 표시가 사라지는 현상이 발생함 -> 체크 표시가 사라지지 않도록 코드 추가 작성 (https://kawaiineko.tistory.com/19 참고)
- 프로그레스바와 이미지 이동 애니메이션을 통해 테스트 진행 정도를 나타내도록 함 (프로그레스바 - https://www.youtube.com/watch?v=K5bFv_WDjVY , 이동 애니메이션 - https://www.masterqna.com/android/2980/이미지를-이동시키는-애니메이션을-만드는-방법을-질문합니다 참고)
- 모든 문항을 체크한 경우, 테스트 결과를 계산하고 DB에 저장
- 테스트 결과 화면에 점수를 출력함

 


 

앱 구상할 때 끄적였던 이미지도 간단하게 넣었고 기본 버튼 색에서 벗어나 연두색으로 버튼 기본 색상을 지정했다.

 

게시글, 댓글에 작성자의 이름이 출력되도록 반영했고 자신이 작성한 것만 수정/삭제 버튼이 존재한다.

 

메인 화면에서 뒤로가기 버튼을 클릭했을 때 팝업이 나온다.

 

진단테스트 진행 화면. 진행도에 따라 프로그레스바 값이 변한다.

 

테스트 결과 화면에 선택한 답변에 따라 계산된 점수가 표시된다.

 

+ Recent posts