URLSession
Segue 를 통한 데이터 통신
default
→ 기본 설정, 메모리 캐시와 디스크 캐시 사용
→ 기본적인 네트워크 동작을 지원
→ 별도의 설정이 필요하지 않을 때 사용하기 적합한 옵션
ephemeral
→ 임시설정, 메모리 캐시는 사용하지만 디스크 캐시는 사용하지 않음
→ 모든 데이터가 임시로 저장되기에 디스크에 남지 않음
→ 개인 정보 보호 또는 보안이 필요한 상황에서 사용
background
→ 백그라운드 작업을 지원하기 위한 설정
→ 앱이 백그라운드에 있을 때도 네트워크 작업을 계속할 수 있게 해줌
→ 백그라운드 작업을 위해 추가적인 설정과 처리가 필요
URL Session Data Task
→ 작은 크기의 데이터를 서버로부터 가져올 때 사용
→ JSON, XML 등의 데이터를 요청하고 응답으로 받아올 때 사용
→ URL 요청을 실시하고 완료 시 핸들러를 호출하는 Task 형식
→ Task가 실행된 후 핸들러가 실행되기 때문에 탈출 Closure 형태로 받아와야 함
URL Session Upload Task
→ 파일을 업로드할 때 사용
URL Session Download Task
→ 파일을 다운로드 받아서 디스크에 쓸 때 사용
→ 다음 view controller 로 데이터를 전달
→ 화면 전환 시 애니메이션 적용 가능
→ segue 의 destination, source 로 구성
UIView.animate(withDuration: TimeInterval,
delay: TimeInterval,
options: UIView.AnimationOptions,
animations: () -> Void
completion: ((Bool) -> Void)?)
withDuration (필수)
→ 몇초동안 애니메이션이 진행될지 결정
ex) 2.0 → 2초동안 애니메이션 진행
delay
→ 몇 초 이후에 시작할 지 딜레이를 결정
ex) 3.0 → 3초 이후에 애니메이션을 진ㅇ행
options
→ 애니메이션의 옵션을 결정
→ 배열을 사용해 동시에 옵션 지정이 가능
➣ .allowUserInteraction : 애니메이션 도중 터치 활성화
➣ .repeat : 애니메이션 무한 반복
➣ .autoreverse : 반대로도 실행 가능 (repeat 이랑 같이 사용)
➣ .curveEaseInOut(기본값) / .curveEasein / .curveEaseOut : 속도를 지정할 수 있는 옵션
animations (필수)
→ frame / bounds / center : 뷰의 위치와 크기
→ transform : 좌표 행렬값
→ alpha : 투명도
→ backgroundColor : 배경색
→ contentStretch : 확대 / 축소 영역
→ hidden 과 같이 중간값 계산이 불가능한 속성은 애니메이션이 안됨
completion
→ 애니메이션이 다 종료된 이후에 실행되는 부분
→ 클로저 형태로 작성이 가능, 없다면 nil 값