[Sesac IOS] 10일차 TIL
TIL

[Sesac IOS] 10일차 TIL

10일차 수업을 듣고 새로 알게된 점과 공부할 것을 정리한 글입니다.


Learned

  • 화면 표시와 전환 (Presentation, Transition)
    • 세그웨이(Segue) : 인터페이스 빌더에서 화면 전환을 담당하는 화살표
    • iOS에서 사용하는 화면 프레젠테이션 방식은 show와 present modally 2가지가 있다.
      그 외 나머지는 아이패드에서 동작하는 방식들이다.
    • show는 네비게이션 컨트롤러에서 정보의 흐름을 따라 화면을 보여주는 역할이고
      presnet modally는 팝업 창 처럼 다른 맥락의 정보를 담은 화면을 보여주는 역할이다.
    • 스토리보드로 이전 화면에 돌아가려면 돌아가려는 화면에 unwind 액션 세그를 만들어주고
      없애고자 하는 뷰 컨트롤러의 Exit에서 컨트롤과 액션을 연결해줘야한다.
    • 기본 모달 프레젠테이션 방식 -> iOS 13 이전: Full Screen 방식, 이후 : Page Sheet
    • 아이패드에서 Page Sheet와 Form Sheet의 차이가 드러난다.
  • 뷰 컨트롤러의 생명주기와 화면 전환
    • 네비게이션 컨트롤러의 루트 뷰 컨트롤러는 최초 1번만 로드된다.
    • 모달 프레젠테이션 방식에 따라 뷰 컨트롤러의 생명주기가 다르다.
      • show와 present modally는 동작할때마다 새로운 화면이 로드된 후 보여진다.
      • 모달 방식 중 current context와 full screen은 기존 화면이 보이지 않지만
        그 외 방식은 기존 화면이 사라지지 않고 계속 보여지고 있는 상태여서
        ViewWillAppear와 ViewDidAppear 메소드가 호출되지 않는다.
  • UserDefault
    • 앱 내부에 유저의 데이터를 저장할 수 있는 애플의 기본 저장소
    • 주로 앱에 대한 유저의 설정처럼 비교적 간단하고 가벼운 데이터가 저장된다.
    • 채팅 내역처럼 무거운 데이터들은 데이터 베이스(DB)에 저장한다.
      ex) Realm, Core Data
    • 앱 내부에 데이터를 저장하기 때문에 앱을 종료해도 데이터가 유지되지만
      앱을 삭제하면 함께 사라진다.
iCloud 동기화, 백업 및 복구 기능으로 삭제후에도 데이터를 유지할 수 있다.

 

  • iOS SandBox System
    • 아이들이 놀 수 있는 모래로 된 공간에서 이름이 유래됐다.
    • 앱이 보호받은 영역(샌드박스)에서만 동작하도록 강제해서
      시스템이 조작되는 것을 막는 보안 시스템
    • 만약 이런 시스템이 없다면 앱은 사용자의 모든 리소스(카메라, 앨범 등) 에 접근할 수 있고
      앱의 약점을 이용한 공격자가 앱을 통해 사용자의 시스템을 공격할 수 있음을 의미한다.
      ex). 카톡 분석 앱
    • 앱의 사용자는 앱 내부의 데이터에만 접근이 가능하고 외부 데이터에 접근 시
      사용자로부터 접근 권한을 받아야 한다.
    • 샌드박스는 크게 3가지 디렉토리(공간)로 구성된다.
      • Bundle Container : 스토리보드, 에셋, 스위프트 파일 등의 데이터가 들어감.
      • iCloud Container
      • Data Container : UserDefault를 포함한 대부분의 유저 데이터가 들어감.
        • 4개의 공간으로 나뉜다.
        • 앱을 통해 생성한 모든 문서와 데이터가 Document 폴더에 들어간다.
          ex) 멜론 음악, 유튜브 영상 등

Data Container의 구조

 

 


이상입니다.

'TIL' 카테고리의 다른 글

[Sesac IOS] 12일차 TIL  (0) 2022.07.20
[Sesac IOS] 11일차 TIL  (0) 2022.07.18
[Sesac IOS] 9일차 TIL  (0) 2022.07.14
[Sesac IOS] 8일차 TIL  (0) 2022.07.13
[Sesac IOS] 7일차 TIL  (0) 2022.07.12