문석훈 : 연락처, To-do
윤예슬 : 갤러리, Diary
연락처 정보 추가, 수정, 삭제 및 검색 가능
이미지 추가 : 갤러리에서 이미지 하나를 가져와 추가.
레이아웃 변경 : 초기 레이아웃의 columnCount는 3이다. columnCount가 3인 경우 1로, 1인 경우 3으로 변경. GridLayout 사용.
이미지 상세 페이지: 이미지 확대, 축소, 삭제, 페이지 돌아가기 기능.
이미지 삭제: 삭제 여부를 되묻고 삭제.
이미지를 불러올 때 원래 해상도를 그대로 불러오는 경우 시간이 너무 오래 걸리는 문제가 생긴다. 이미지 크기를 레이아웃에 맞춰 가져오도록 하였다. 또한 이미지 개수가 많아질 경우 갤러리 탭이 로딩되는 시간이 오래 걸리므로 이를 Thread로 만들어 이미지가 로딩될 때마다 바로 띄워지도록 하였다. Thread로 만드는 경우 Thread가 종료되기 이전에 탭을 이동하거나 같은 탭을 다시 누르는 경우 앱이 다운되는 문제가 생기므로 onDestroy()에서 Thread에 interrupt() 호출하고 wait() 하도록 했다.
앱의 내부저장소에 todo.json에 JSONObject를 아래와 같은 구조로 만들어 저장하였다.
{date: JSONArray}
각 날짜를 String으로 하여 키로 설정한 후 각 키에 값으로 JSONArray을 할당하였다. 각 JSONArray는 아래와 같은 구조의 JSONObject들의 배열이다.
{"check": Boolean,
"content": String}
To-do list 추가, 수정, 체크 기능.
앱 내부 저장소에 diary.json파일을 만들어 일기 정보 저장. JSONObject에 아래 예시와 같이 각 날짜를 key, 일기 내용을 value로 저장.
{"2022.01.03": "오늘은 코딩을 했다",
"2022.01.04": "오늘도 코딩을 했다"}
일기 추가, 편집 기능. 완료 버튼을 누르면 일기 정보를 로컬에 저장.