Skip to content

Latest commit

 

History

History
91 lines (73 loc) · 3.86 KB

README.md

File metadata and controls

91 lines (73 loc) · 3.86 KB

🌏 Earth - 영상으로 남기는 매일의 기억

app store

앱 소개

온보딩 화면

영상 촬영 화면

피드 화면

달력 화면

날짜별 영상 화면

Image 1 Image 2 Image 3 Image 4 Image 5

구조도 📜

Entity

image 7

  • xcdatamodel: PostEntity

    • id: 엔티티간 구분
    • createdAt: 생성일을 통한 정렬 및 달력상 매핑
    • videoURl: FileManager를 통해 저장된 동영상 위치
  • Entity Codgen Manual/None 선택시

    • PostEntity + CoreDataClass : 개발자가 Entity에 대한 custom method 작성 가능, 이후 엔티티 속성이 변경되어도 해당 파일은 보존
    • PostEntity + CoreDataProperties : Entity의 attribute을 property로 매핑해줌 , 속성 변경시 자동생성
  • PersistentController

    • 전체 데이터 모델을 관리하는 NSPersistentContainer를 초기화
      • xcdatamodel에서 설정한 ManagedDataModel(schema)를 Persistent store Coordinator를 이용 Store(sqlite)에 설정
      • NSPersistentStoreDescription를 이용 Store 세부 옵션 설정
  • CoreDataManager

    • PersistentContainer로부터 mainContext(viewContext)를 가져와 엔티티를 관리
    • mainContext를 통해 create entity, dirty checking, lazy loading(faluting), flushing을 통해 저장로직을 최적화
    • store에 쿼리를 보내기 위해서는 대상이 되는 entity에 대한 NSFetchRequest를 구성
    • NSPredicate를 통해 복잡한 쿼리를 구성해 세부 fetch가 가능

Model

  • Post
    • Persistent 계층과 분리를 위해서 Application 계층에서 사용될 별도의 model을 구성
    • 해당 model은 static 메서드를 통해 PostEntity를 변환
    • model로 변환시 AVPlayer를 초기화해 프로퍼티로 저장