Skip to content

몰입캠프 1주차 - 3개의 탭을 가진 안드로이드 앱

Notifications You must be signed in to change notification settings

yoonyeseul/madCampWeek1

Repository files navigation

몰입캠프 1주차 - 3개의 탭을 가진 안드로이드 앱

문석훈 : 연락처, To-do

윤예슬 : 갤러리, Diary



첫 번째 탭 : 연락처

연락처 정보 추가, 수정, 삭제 및 검색 가능



두 번째 탭 : 갤러리

이미지 추가 : 갤러리에서 이미지 하나를 가져와 추가.

레이아웃 변경 : 초기 레이아웃의 columnCount는 3이다. columnCount가 3인 경우 1로, 1인 경우 3으로 변경. GridLayout 사용.

이미지 상세 페이지: 이미지 확대, 축소, 삭제, 페이지 돌아가기 기능.

이미지 삭제: 삭제 여부를 되묻고 삭제.

이미지 해상도 문제

이미지를 불러올 때 원래 해상도를 그대로 불러오는 경우 시간이 너무 오래 걸리는 문제가 생긴다. 이미지 크기를 레이아웃에 맞춰 가져오도록 하였다. 또한 이미지 개수가 많아질 경우 갤러리 탭이 로딩되는 시간이 오래 걸리므로 이를 Thread로 만들어 이미지가 로딩될 때마다 바로 띄워지도록 하였다. Thread로 만드는 경우 Thread가 종료되기 이전에 탭을 이동하거나 같은 탭을 다시 누르는 경우 앱이 다운되는 문제가 생기므로 onDestroy()에서 Thread에 interrupt() 호출하고 wait() 하도록 했다.



세 번째 탭 : 캘린더

To-do list

앱의 내부저장소에 todo.json에 JSONObject를 아래와 같은 구조로 만들어 저장하였다.

{date: JSONArray}

각 날짜를 String으로 하여 키로 설정한 후 각 키에 값으로 JSONArray을 할당하였다. 각 JSONArray는 아래와 같은 구조의 JSONObject들의 배열이다.

{"check": Boolean,
"content": String}

To-do list 추가, 수정, 체크 기능.

Diary

앱 내부 저장소에 diary.json파일을 만들어 일기 정보 저장. JSONObject에 아래 예시와 같이 각 날짜를 key, 일기 내용을 value로 저장.

{"2022.01.03": "오늘은 코딩을 했다",
"2022.01.04": "오늘도 코딩을 했다"} 

Diary 작성

일기 추가, 편집 기능. 완료 버튼을 누르면 일기 정보를 로컬에 저장.

About

몰입캠프 1주차 - 3개의 탭을 가진 안드로이드 앱

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages