Overview

기능 정의

화면 1

  1. 화면
  • 내비게이션 아이템 타이틀은 “앨범” 입니다.
  • 컬렉션뷰를 이용해 앨범의 대표 이미지를 보여줍니다.
    • 컬렉션뷰의 이미지는 정사각형 모양으로, 내부의 이미지는 기존 이미지 비율을 유지합니다.
    • 앨범의 대표 이미지는 해당 앨범의 가장 최신 사진입니다.
    • 이미지 아래 앨범 이름을 보여줍니다.
    • 앨범 이름 아래 앨범에 포함된 사진의 개수를 보여줍니다.
  1. 기능
  • 애플리케이션 처음 진입 시 사진 라이브러리 접근권한이 없다면 사진 라이브러리에 접근 허용 여부를 묻습니다.
    • 수락 시 디바이스의 사진에 접근하여 기본 앨범(카메라롤, 즐겨찾기, 셀피 등)과 사용자 커스텀 앨범을 가져옵니다.
    • 비수락 시 컬렉션뷰에 사진이 나타나지 않으며, 오류로 인한 애플리케이션 강제종료가 되지도 않습니다.
  • 컬렉션뷰 셀을 선택하면 화면2로 전환됩니다.

화면 2

  1. 화면
  • 내비게이션 아이템의 타이틀은 이전 화면에서 선택된 앨범 이름입니다.
  • 컬렉션뷰의 이미지뷰는 정사각형으로, 내부 이미지는 기존 이미지 비율을 유지합니다.
  • 화면 하단에는 사진 정렬 방법을 선택하기 위한 툴바가 있습니다.
  1. 기능
  • 사진 다중 선택 기능
    • 내비게이션 바의 ‘선택’ 버튼을 누르면 버튼의 타이틀이 ‘취소’로, 내비게이션 아이템의 타이틀이 ‘항목 선택’으로 바뀝니다.
    • 컬렉션뷰 셀(사진)을 선택하면 선택된 사진의 윤곽선과 투명도가 변해 선택되었음을 나타냅니다.
    • 선택된 사진 장수가 내비게이션 아이템의 타이틀에 즉각 반영됩니다.
    • ‘취소’ 버튼을 누르면 선택된 사진이 해제되고 초기 상태로 되돌아갑니다.
  • 사진 정렬 기능(사진 날짜 기준)
    • 초기 설정은 최신 사진이 제일 위에 오는 정렬입니다.
    • 툴바의 버튼을 누르면 최신순/과거순 토글로 사진의 순서가 바뀝니다.
    • 툴바의 버튼을 누르면 현재 상태에 따라 버튼의 타이틀이 변경됩니다.
  • 공유 기능
    • 공유 버튼은 기본적으로 비활성화되어있습니다.
    • 사진이 선택 모드에 들어가 선택된 사진이 1장 이상일 때만 활성화됩니다.
    • 선택된 사진을 이미지로 공유하는 창을 띄웁니다.
  • 삭제 기능
    • 삭제 버튼은 기본적으로 비활성화되어있습니다.
    • 사진이 선택 모드에 들어가 선택된 사진이 1장 이상일 때만 활성화됩니다.
    • 이미지 선택 후 활성화된 버튼을 탭하면 선택된 사진을 삭제합니다.
  • 컬렉션뷰 셀을 선택하면 화면3으로 전환됩니다.

화면 3

  1. 화면
  • 내비게이션 아이템의 타이틀은 이전 화면에서 선택된 사진 생성 일자 및 시각입니다.
  • 화면에 이미지뷰로 이미지를 이미지 원래의 비율대로 화면 가득 표시해줍니다.
  1. 기능
  • 즐겨찾기❤️ 기능
    • 사진이 즐겨찾기 찾기 되어있는지 아닌지를 표시합니다.
    • 토글 기능으로 즐겨찾기 여부를 설정할 수 있으며, 에셋에 반영하여 iOS 기본 ‘사진’ 애플리케이션에서도 즐겨찾기 여부를 확인할 수 있습니다.
  • 공유 기능
    • 현재 보이는 사진을 이미지로 공유하는 창을 띄웁니다.
  • 삭제 기능
    • 현재 화면에 보이는 사진을 삭제하며, 에셋에 반영하여 iOS 기본 ‘사진’ 애플리케이션에서도 삭제 여부를 확인할 수 있습니다.
    • 사진을 삭제완료하면 이전 화면으로 되돌아갑니다.
  • 사진 확대/축소 기능
    • 사진을 핀치 제스쳐를 사용하여 확대/축소할 수 있습니다.
    • 사진을 터치하거나 확대/축소하면 툴바와 내비게이션바가 사라집니다.
    • 다시 사진을 터치하면 툴바와 내비게이션바가 나타납니다.

추가사항

  • 모든 화면에 PHPhotoLibraryChangeObserver 프로토콜을 구현해 디바이스의 사진/삭제/편집이 즉각 애플리케이션의 화면에 반영하도록 합니다.
  • OperationQueue를 활용하여 많은 양의 사진을 불러올 때 화면이 멈추지 않도록 처리합니다.