'WWDC2017'에 해당하는 글 2건

제목: New stuff from WWDC 2017

올해 그 시기가 다시 돌아왔다. 여러분도 나와 비슷하다면 아마 최근에 몇주동안 많은 시간을 WWDC 발표에 쏟아 부었을 것이다. 릴리즈 노트를 파보고, WWDC 발표를 보고, cool new stuff으로 가지고 놀아보면서 말이다. 그리고 보통 새로운것을 처리하는 그 양이 어마어마하게 많다.

그래서 지난 2년처럼 나는 다양한 소스로부터 찾을 수 있었던 모든 것들을 리스트로 조직화하여 준비했었다. macOS/iOS/watchOS/tvOS에서 사용자가 직면하는 모든 기능들, 모든 새로운 프레임워크, API, 그리고 각각 SDK의 개선점들과 애플의 개발자 도구들이 있다.

여기있는 모든 것들의 더 많은 정보를 위해서는 섹션 위에있는 링크를 따라가서 애플의 개발자 사이트나 "What's New" 문서로 가고 developer.apple.com에 릴리즈 노트를 다운받자. 그리고 물론 새롭게 리디자인된  비공식 WWDC Mac 앱에서 여러분이 관심있는 발표들도 보자.

지난 최근년도에 노트를 확인하고싶으면(예를들어 여러분의 앱에서 iOS9 지원을 멈추려할때 확인하고 싶은 것들), 아래 포스트를 확인해보자.

macOS 10.13 High Sierra
  • Mail
    • 중요한 이메일의 스마트 하이라이트
    • 작성창(compose window)을 위한 뷰 분리
    • 적은 디스크 공간 사용하기
  • 메시지 앱: iOS/macOS간에 iCloud로 대화 동기화하기(end-to-end 암호화)
  • 노트 앱
    • 노트 핀하기
    • 테이블 지원
  • 사진 앱
    • 퍼시스턴트 사이드바
    • 모든 불러온 자료를 연대순으로 보여주기(shows all imports chronologically)
    • 증진된 얼굴 인식
    • 기기간의 사람들 동기화
    • 칼라 곡선과 칼라 선택 편집 도구
    • 사진 인쇄를 위해 더 많은 파트너
    • 메모리즈를 위한 더 많은 토픽들
    • 제3자 앱에서 사진을 편집하여 사진 앱에 다시 저장할 수 있음
    • 애니메이션이 있는 GIF를 실행하기
    • 라이브 사진 효과
  • 사파리
    • 비디오 자동재생 막기
    • 지능적 추적 보호(intelligent tracking prevention)
    • 사이트별 세팅(예를들어 어떤 사이트에대해 자동재생 활성화나 내용 차단기 비활성)
    • 자동으로 읽기 모드
  • 스포트라이트는 더 많은 종류를 찾아줌(예를들어 비행기 정보나 위키피디아에서 나온 여러 결과들)
  • 자연스러워짐, 더 자연스러워진 음향의 Siri 목소리
  • 윈도우 서버(미션 컨트롤 등) Metal 2의 상위에 탑재됨
  • APFS는 새로운 설치에대해 새로운 디폴트 파일 시스템
  • H.265(HEVC) 비디오 지원, 최신 맥에대해 하드웨어 가속이 탑재
  • 접근성
    • 새로운 화면위 접근성 키보드
    • Siri에게 타이핑하기(목소리 인터페이스를 비활성하기)
    • 이미지의 보이스오버 설명(voiceover descriptions)은 이제 이미지 내용의 설명이나 인식된 텍스트를 자동으로 포함할 것임

iOS11
  • 리디자인된 컨트롤 센터
    • 단일 페이지, 애니메이션
    • 3D 터치로 보여지는 더 많은 컨트롤들
    • 몇 영역은 커스터마이징 가능함
    • 토클이 가능함(예를들어 셀룰러 데이터, 핫스팟, 에어드랍)
  • 앱 변경의 새로운 디자인
    • 새로운 애니메이션
    • 더이상 첫번째 앱으로 홈 화면을 보지 않아도 됨
  • 락스크린에서 지나간 노티피케이션 접근가능(상단의 노티피케이션 패널은 이제 락스크린처럼 동일함)
  • 더이상 홈스크린의 독에 있는 앱들은 이름을 보이지 않음
  • 비밀번호 화면, 사진 앱 숫자 입력 화면, 숫자 키보드의 디자인이 바뀜
  • 이제 탭바는 약간 더 볼드된 문자와 채워진 기호(glyph)를 사용함
  • 가로 모드에서 탭바는 좁아지고 레이블은 오른쪽에 나타남
  • 다양한 앱에서 큰 볼드 헤딩으로 새로운 헤더 디자인(iOS10의 음악 앱같은)
  • 멀티터치로 디래그 앤 드롭 지원
    • iPhone과 iPad앱 안에서나 혹은 앱 간의
  • 파일 앱 – 파인더 앱처럼 태그, 좋아요, 중첩된 폴더, 클라우드 저장소 등. (iCloud Drive 앱을 대체하게됨)
  • 애플 뮤직
    • 공유된 "up next"
    • 여러분의 친구들이 무엇을 듣는지 보여줌
    • 여러분의 프로필을 구성하고 다른사람들과 공유되고 싶은 것을 정하기
  • 앱스토어: 완전히 리디자인된 앱
  • 캘린더: 새로운 디자인
  • 카메라: QR 코드 지원
  • 홈: NFC & QR코드를 이용한 페어링으로 스피커(여러 방의 오디오 – AirPlay 2), 스프링클러, 수도꼭지를 지원
  • 지도
    • 쇼핑몰이나 공항에서 층 도면
    • 제한 속도 표시
    • 차선 안내
    • 한손 줌(구글 맵처럼 더블탭+드래그업/다운)
    • 모의-AR 비행 모드 (소스)
  • 메시지
    • 리디자인된 앱 서랍
    • 앱 서랍으로 넘어간 Digital Touch
    • iOS/macOS간의 대화를 자동으로 동기화하기(end-to-end 암호화)
    • 개인 대 개인 지불을 위한 애플 패이
    • 새로운 "Echo"와 "스포트라이트" 화면 효과
    • 옛날 대화를 자동으로 지우는 것을 선택함
  • 노트
    • 노트를 핀하기
    • 목록 화면에서 노트를 잠그기(스와이프 액션)
    • 테이블을 지원
    • 선/그리드 스타일을 선택하기 (source)
    • 한 라인내 그리기
  • 사진
    • 메모리즈를 위한 더 많은 주제
    • 메모리즈를 세로로 재생 가능
    • 애니메이션된 GIF 재생
    • 라이브 포토를 자르기
    • 라이브 포토를 위해 키프레임 선택하기
    • 라이브 포토 효과: 루프, 바운싱, 뮤드, 긴 노출
    • iOS의 사진으로부터 쉽게 와치 페이스(photo or kaleidoscope)를 만들 수 있는 옵션
    • 비디오는 HEVC 포맷(2배까지 압축됨)으로 저장되고, 사진은 HEVC 기반의 HEIF 포맷으로 저장됨
    • iOS9에서처럼 "편집" 버튼이 우측 상단으로 돌아감
  • 팟캐스트: 새로운 디자인
  • 사파리
    • 지능적 추적 보호(intelligent tracking prevention)
    • 세팅에서 "경험적 피처드" 메뉴는 완성되지 않은 새로운 API 가능
    • 추적 보호와 카메라/마이크 접근을 비활성 가능
  • 설정
    • 백그라운드 앱 갱신은 WiFi 연결에서만 동작되도록 세팅할 수 있음
    • 새로운 "계정과 비밀번호" 패널("메일"과 "사파리"에서 확장됨)
    • 리디자인된 "저장공간과 iCloud 사용" 패널("iPhone 저장공간으로)
    • "일반/스포트라이트 검색"이 "Siri" 패널로 합쳐짐
    • 재구성된 "알림" 섹션
    • 이제 모든 앱에대해 항상 "사용하는 동안" 위치 허가를 선택할 수 있음
    • "끄기" 버튼이 일반 메뉴에 있음
    • 시스템 수준에서의 소셜 네트워크 로그인이 제거됨(Twitter, Facebook 등)
  • Siri
    • 자연스러워짐, 더 자연스러워진 음향의 목소리
    • 여러 결과, 추가의 질문들
    • 번역(베타) –영어에서 프랑스어, 독일어, 이탈리아어, 스페인어, 중국어
  • Siri 지능
    • 더 많은 곳에서 다 많은 종류의 제안
    • 기기간에 동기화된 당신의 정보 (end-to-end 암호화)
  • TV 앱: Amazon Prime은 내년에 추가될 것임
  • 접근성
    • "스마트 뒤집기(smart invert)" 모드
    • "Siri에게 타이핑하기" 옵션(목소리 인터페이스를 비활성)
    • 자동으로 호출 답변을 선택하기
    • 이미지의 보이스오버 설명(voiceover descriptions)은 이제 이미지 내용의 설명이나 인식된 텍스트를 자동으로 포함할 것임
    • 추가로 큰 텍스트 모드에서, 탭바의 탭을 길게 누르면 탭 이미지와 레이블이 커져서 팝업되어 표시됨
  • 운전중에는 방해하지 마라(Do Not Disturb while Driving) – 운전을 자동으로 감지하여 알림을 끔
  • 긴급 SOS 기능(전원 버튼을 5번 누르고 슬라이더를 슬라이드 하기)
  • 기존의 기기에서 새 아이폰을 자동으로 설정
  • AirPods을 위한 커스텀 액션 구성
  • 가까이에 다른 기기로부터 WiFi 비밀번호 요청하기
  • QR 코드를 스캔하여 WiFi 로그인하기
  • 내장된 문서 스캐너
  • 화면 녹화(컨트롤 센터로부터 접근)
  • 프린트를 지원하는 앱에서 PDF 생성하기
  • PDF, 스크린샷, 스캔한 문서에 표시하기(그리기)
  • 스크린샷을 찍고나서 구석에 썸네일이 나타나고, 그것을 탭하여 편집, 주석, 공유할 수 있음
  • 새로운 비디오 플레이 컨트롤
  • 셀 시그널에대해 점 대신 바
  • 한손 키보드 옵션 (더 좁아진 키들과 한쪽에 비워진 공간을 남김)
  • 적게 사용된 앱을 자동으로 지우고 필요하면 다시 복구하는 옵션
  • health 데이터는 iCloud에 동기화될 수 있음
  • FLAC 오디오 지원
  • 앱스토어, iTunse Store, 캘린더의 새로운 아이콘
  • 앱스토어는 iPad와 Mac 앱을 위해 정보 페이지를 보여줌(아마 버그같다?)
  • 앱스토어는 유료 앱을 사려할때 애플패이 스타일의 창을 보여줌
  • 홈 스크린에서 앱을 실행할때 다른 애니메이션
  • 기기를 잠금해제할때 다른 애니메이션
  • 알림 텍스트에서 하이라이트된 링크? (source)
  • 3D 터치 없는 기기에서 쉽게 알림 열기? (source)
  • iPhone5 & 5c, iPad4를 위한 드롭 지원
  • 옛날 32비트 앱을 위한 드롭 지원

iPad
  • 리디자인된 앱 독
    • 더 Mac스러운 디자인
    • 앱 안에 있을때 밀어올릴 수 있음
    • 앱은 독에서부터 슬라이드오버(slide-over)까지 드래그될 수 있음
    • 한 앱에서 최근에 사용한 파일에 접근
    • 오른쪽에 핸드오프/제안된 앱을 보여줌(비활성가능)
  • 슬라이드오버를 위한 새로운 디자인
  • 더 새로운 iPad는 분할 뷰에서 2개의 앱을 보여줄 수 있고, 세번째는 슬라이드 오버에서 보여줄 수 있음(그럼 네번째는 PiP에서?)
  • PiP 창은 유연하게 크기조절가능함 (source)
  • 앱 전환자를 위한 새로운 디자인
    • 분할 뷰 앱 페어링을 보존하고 미션 컨트롤 종류처럼 보임
    • 컨트롤 센터와 합쳐짐
  • 키보드자판 위에서 쓸어올려 구두점/숫자에 접근하기
  • 키보드 단축키(Cmd+Shift+3/Cmd+Shift+4)로 스크린샷 찍기
  • 화면에서 팬슬을 팹하여 새로운 노트와함게 노트앱 열기, 혹은 어느 기간안에 이전에 열린 노트 열기
  • 손글씨 인식 & 식별 (확실하진 않지만 iPad만?)
  • 컨트롤 센터에서 손전등 (source)

watchOS4
  • Siri 와치 페이스(Siri watch face)
  • Kaleidoscope 와치 페이스
  • 토이스토리 와치 페이스
  • 뉴스 앱
  • 독 증진
    • 새로운 수직의 디자인
    • 좋아요 모드(이전처럼)이나 최근 모드(iOS처럼) 사이에서 선택할 수 있음
    • iPhone에서 음악을 켜면 자동으로 가장 앞단의 앱으로서 '지금 재생중'을 보여줌
  • 홈 화면을 hex 그리드 대신 가나다 순으로 정렬된 앱 리스트로 보이게 할 수 있음
  • 이제 편집 모드 동안에 crown을 이용하여 구성된 와치 페이스을 스크롤 할 수 있음
  • 컨트롤 센터에서 손전등/안전 라이트
  • iPhone과 페어링하기위한 새로운 UI
  • 바뀐 비밀번호 화면 (굵어진 숫자, 애니메이션, 클릭)
  • 설정에서 위치 서비스 활성화
  • 몇몇 앱에서 다른 누군가에게 시계를 보여줄때 화면은 위아래로 자동으로 회전할 것임
  • 액티비티: 도전, 목표, 축하 등으로 개별화된 알림
  • 심박수: 이력 차트
  • 메일: 제스처(?)
  • 지도: 제안, 최근
  • 음악
    • 리디자인된 UI
    • 당신이 좋아하는 음악을 자동으로 동기화
    • 음악의 위치를 보여줌(iPhone/watch)
    • 시계에 특정 음악을 업로드 할 수 있음
  • 폰: 손수 숫자를 입력하기위한 키패드 (전화받는 도중에도 물론)
  • 타이머: 타이머가 끝나면 다시하기 버튼
  • 날씨: 공기 상태
  • 워크아웃(workout)
    • 새로운 UI – 워크아웃 시작하기 더 쉬워짐
    • 각 타입의 워크아웃은 마지막 목표 설정을 기억함
    • 한 세션에서 여러 워크아웃을 쉽게 할 수 있음
    • 앱으로부터 음악을 컨트롤 할 수 있는 기능
    • 자동으로 방해하지 마시오로 전환
    • 자동으로 재생목록을 재생하는 옵션
    • 개선된 풀장 수영(Pool Swim) 워크아웃
    • 높은 밀도의 인터벌 훈련(High Intensity Interval Training)
  • NFC를 통해 몇몇 운동 장비와 연동
  • 여러 센서나 스포츠 기기와 소통하기위한 코어 블루투스(예를들어 포도당 센서)
  • 개인 대 개인 지불을 위한 애플패이
  • 더 능력있는 카메라 컨트롤 (?)

tvOS4
  • 홈 화면 동기화 – 여러 애플 TV에 설치된 앱과 홈 화면 레이아웃을 동기화하기
  • 자동 어둡게 모드 – 시간에따라 자동으로 모드를 변경
  • AirPlay2 – 여러 방에 오디오 지원
  • AirPods은 이제 자동으로 여러분의 애플 TV와 페어된다.
  • TV 앱: Amazon Prime은 올해 후반기쯤에 추가될 것임

Foundation & Core frameworks
  • Core Data
    • 코어 스포트라이트와 더 통합됨 (NSCoreDataSpotlightDelegate)
    • 새로운 인덱싱 API(NSFetchIndexDescription, NSFetchIndexElementDescription, R-tree 인덱스)
    • com.apple.CoreData.SQLDebug 환경 변수는 4로 설정할때 SQL 쿼리를 디버깅한다고 할 수 있음
    • NSURLNSUUID 속성 타입
    • 다른 프로세스(예를들면 앱 익스텐션)에서의 변화를 추적하기위한 영속 이력 API(NSPersistentHistoryTrackingKey)
  • Core Location
    • CLGeocoder: CNPostalAddress와 통합됨
    • 쇼핑몰이나 공항에서 정밀한 인도어 위치가 가능함
    • 더 정확한 방향의 계산
  • NSArchiverNSUnarchiver는 디프리케이트됨
  • NSDistributedNotificationCenter: 옵저버들이 구독 취소를 할 필요가 없어짐
  • NSError: 새로운 NSLocalizedFailureErrorKey 정보 키
  • NSJSONSerialization: JSON 더미 속에서 알파뱃 순으로 정렬된 키들을 출력할 수 있음(NSJSONWritingSortedKeys)
  • NSLinguisticTagger: 증진된 API로서, 유력한 언어를 인지함
  • NSURL: 얼마나 빈 공간을 사용가능하게 만들 수 있는지 확인함(volumeAvailableCapacityForImportant/OpportunisticUsage)
  • NSURLSession
    • 적용가능한 연결성 API(waitsForConnectivity)
    • 스케줄링 API(earliestBeginDate)
    • 진행 추적(ProgressReporting)은 UIProgressViewNSProgressIndicator에서 사용할 수 있음
    • 증진된 스케줄링을위해 크기 힌트를 요청하기: countOfBytesClientExpectsToSend/Receive
    • Brotli 컨텐트 인코딩을 지원
  • NSXPCConnection: NSProgress 지원
  • 기존에있던 임의의 몇 API는 이제 에러 처리에대해 바뀌기도하고 문자열 대신에 URL을 받음

macOS SDK
  • High Sierra는 32비트 앱을 지원하는 마지막 배포판임
    • 2018년 1월부터 MAS에 제출되는 새로운 앱은 64비트 지원을 필요로함
    • 2018년 6월부터 모든 앱(새것&업데이트)은 64비트만 될 것임
  • AirPlay2 – 여러 방에 오디오 지원
  • Core ML 프레임워크 – 기계 학습
  • 이제 iOS에서 가능하던 Core Spotlight를 Mac에서도 가능함
  • Metal 2
    • 더 나은 성능과 새로운 API
    • 디버깅과 프로파일링 도구
    • 기계학습을 지원
    • 외부 그래픽 카드 접근을 위한 API
    • VR 지원(스팀, 유니티, 언리얼 VR SDK가 Mac으로 옴)
  • 사진 프로젝트 확장(PHProjectExtensionController) – 커스텀 인쇄 프로젝트나 웹 겔러리를 만들기 등
  • Vision 프레임워크 – 이미지 분석과 인식
  • NSAccessibilityCustomRotor – 사용자를 위한 선택 리스트를 제공(예를들면 섹션이나 링크들)
  • NSApplication: 파일이나 URL을 열기위해 나온 새로운 application(_:open:) 콜백(이전의 NSAppleEventManager기반 API를 대체함)
  • NSButton: 내용물은 애니메이터 프록시를통해 애니메이션될 수 있음
  • NSColor
    • systemBlue와같이 새로운 시스템 칼라 셋
    • NSColor.red와같은 표준 칼라들은 이제 sRGB 프로파일을 사용함
    • 어셋 카탈로그로부터 칼라를 불러오기위한 NSColor(named: ...)
  • NSCollectionView: iOS에서처럼 프리패칭하기
  • NSDrawer: 디프리케이트됨 :(
  • NSFontAssetRequest 잃어버린 시스템 폰트를 비동기로 다운로드하기위함
  • NSLevelIndicator: 새로운 모습, 스타일, 구성 옵션들. 값은 애니메이션 될 수 있음
  • NSMenuItem: allowsKeyEquivalentWhenHidden
  • NSSegmentedControl: 정돈(alignment)과 배치(distribution) 속성
  • NSTableView: 디폴트로 스스로 크기조절하는 행 사용(오토레이아웃을 사용하여)
  • NSWindowTab: title, tooltip, accessory view같은 탭들을 더욱 커스터마이징할 수 있는 옵션들
  • Core Image: 찍힌 이미지의 depth map 접근하기
  • MapKit
    • 새로운 "muted" 맵 타입
    • MKAnnotationView.displayPriority는 어떤 지도 주석이 더 중요한지 정해줌
    • 주석 모으기(MKAnnotationView.clusteringIdentifier, .collisionMode, MKClusterAnnotation)
    • MKMapView.dequeueReusableAnnotationView(withIdentifier:for:): UITableView에서처럼 항상 주석을 반환하는 변형
  • WKWebView: 커스텀 URL 스킴, 쿠키 관리, 스넵샷, 내용 필터링을 위한 새로운 API
  • 스위프트 호환성을 위한 정재된 API
    • 스위프트의 전역에 print()와 충돌을 피하기 위해 print라 정의된 몇몇 메소드들 이름 변경(예를들어 printView, printWindow)
    • 몇몇 전역 상수는 강타입 클래스 속성으로 이동됨(예를들어 NSSharingService.composeEmail)
    • 몇 클래스에서 nullability 수정
    • NSApplication.shared같은 ObjC 클래스 속성들
    • contentViewfirstResponder같은 몇몇 속성들이 이전에는 assign(스위프트에서는 unowned(unsafe))이었는데 이제 weak로 됨
  • iCloud 문서 공유하기
    • NSDocument 앱을위해 무료로 됨
    • NSDocument.share, allowsDocumentSharing
  • 파일 메뉴에서 볼 수 있는 새로운 "Share" 서브메뉴(NSDocumentController.allowsAutomaticShareMenu, standardShareMenuItem)
  • 복구가능한 상태를 인코딩하는것을 비동기로 완료할 수 있음(encodeRestorableState(with:backgroundQueue:))
  • 터치바 API 개선
    • 새로운 칼라 피커 컨트롤
    • NSGroupTouchBarItem은 시스템 경고로서 같은 버튼을 사용하는 옵션
    • NSGroupTouchBarItem은 공간이 충분하지 않을때 압축 설정을 하는 옵션
    • RTL 언어 지원
    • playground에서 터치바 랜더링
  • HEVC와 HEIF 지원
  • 시스템 수준의 소셜 네트워크 로그인이 디프리케이트됨(Twitter Facebook등)

iOS SDK
  • 뷰컨트롤러는 이제 상단에 선택적으로 검색 필드와함께 표준의 큰 타이틀 헤딩을 표시할 수 있음
    • 헤딩을 다루기위한 prefersLargeTitles, largeTitleDisplayMode
    • 검색필트를 다루기위한 searchControllerhidesSearchBarWhenScrolling
  • 레이아웃 시스템 변화
    • UIView
      • 뷰는 이제 "safe area insets"을 가진다(safeAreaInsets, safeAreaLayoutGuide, insetsLayoutMarginsFromSafeArea)
      • RTL 언어를 위해 추가된 directionalLayoutMargins
    • UIViewController
      • 추가된 safeAreaLayoutGuideadditionalSafeAreaInsets
      • 추가된 systemMinimumLayoutMarginsviewRespectsSystemMinimumLayoutMargins
      • preferredScreenEdgesDeferringSystemGestures는 시스템 패널에서 사용자가 스와이프한 엣지가 어딘지 정의함
      • topLayoutGuide, bottomLayoutGuide, automaticallyAdjustsScrollViewInsets는 디프리케이트됨
    • UIScollView
      • 추가된 adjustedContentInsetcontentInsetAdjustmentBehavior
      • 추가된 frameLayoutGuidecontentLayoutGuide 레이아웃 가이드
    • UITableView
      • separatorInsetReference(.fromCellEdges.fromAutomaticInsets)
  • 다이나믹 타입 개선
    • UIFontMetrics는 커스텀 폰트의 크기를 조정할 수 있게 해줌(예를들어 다이나믹 타입 설정에따른 버튼 사이즈)
    • constraintEqualToSystemSpacing(below/after:)는 정확하게 스케일한 거리 제약을 정의함
    • spacingBaselineToBaseline은 시각적 포멧 언어를위한 옵션임
    • UIStackView를 위한 spacingUseSystem
  • 드래그 앤 드롭을 위한 새로운 API
  • AirPlay2 – 여러 방에 오디오 지원
  • AR이 가능한 앱을 쉽게 만들수 있는 ARKit(iPhone 6s나 더 최신/iPad Pro나 더 최신)
  • Core ML프레임워크 – 기계 학습
  • Core NFC – NFC 태그를 읽기위한
  • DeviceCheck 프레임워크 – 시스템 재설치후에 보존하는 기기를 위한 플래그 세팅
  • FileProvider 프레임워크 – 파일 프로바이더 익스텐션을 위한 새로운 API
  • IdentityLookup – 알수없는 사람이 보낸 SMS을 걸러내는 Message Filter 익스텐션에서 사용됨
  • IOSurface – macOS에서나온 프레임버퍼 프레임워크
  • Metal 2 – 더 나은 성능, 기계학습 지원, 디버깅 & 프로파일링 툴, 더욱 통합된 API
  • MusicKit – 사용자의 애플 뮤닉 라이브러리에 접근하기위함
  • macOS에서 온 NSXPConnection
  • 앱내에서 PDF를 보여주기위한 PDFKit
  • macOS에서 온 ProcessInfo.ThermalState API
  • Quick Look Preview 익스텐션(QLPreviewingController)
  • 썸네일 익스텐션(QLThumbnailProvider)
  • Vision 프레임워크 – 이미지 분석과 인식
  • UIBarItem.largeContentSizeImage – 탭 바 아이콘을 길게 누를때 접근성 HUD에서 보여지는 이미지
  • UIDocumentBrowserViewController – 앱 파일들을 브라우징하기위한 새로운 UI(로컬이나 클라우드에서)
  • UINavigationItem.titleViewUIBarButtonItem.customView는 이제 오토레이아웃을 사용하여 그들의 크기를 정할 수 있음
  • UIScreen.maximumFramesPerSecond는 새로운 iPad를 위한 ProMotion 지원
  • UIStackView.setCustomSpacing(after:)
  • UITabBar
    • 이제 탭바는 약간 더 볼드된 문자와 채워진 기호(glyph)를 사용함
    • 가로 모드에서 탭바는 좁아지고 레이블은 오른쪽에 나타남
    • 추가로 큰 텍스트 모드에서, 탭바의 탭을 길게 누르면 탭 이미지와 레이블이 커져서 팝업되어 표시됨(큰 버전의 아이콘이나 벡터 이미지를 추천함)
  • UITableView
    • 시작/끝 스와이프 액션이 구성가능함(UISwipeActionsConfiguration, UIContextualAction)
    • 디폴트로 셀과 헤더/풋터에대해 스스로 크기조절하는 오토레이아웃 사용
    • UICollectionView에서처럼 performBatchUpdates(_:completion:)
  • HealthKit
    • 체성분분석기(waist circumference)나 인슐린 레벨같은 새로운 헬스 데이터 타입(HKQuantityTypeIdentifier)
    • tai chi나 mixed cardio같은 새로운 워크아웃 타입(HKWorkoutActivityType)
    • 워크아웃 앱은 워크아웃 세그먼트를 표시할 수 있음(HKWorkoutEventType.segment)
    • 워크아웃 앱은 사용자의 워크아웃 루틴을 읽고 작성할 수 있음(HKWorkoutRoute)
  • MapKit
    • 새로운 "muted" 맵 타입
    • 맵 컨트롤은 이제 일반 뷰처럼 맵으로부터 분리되어 사용할 수 있고, RTL을 인지함
    • MKMarkerAnnotationView: "표시" 모양과함께 새로운 디폴트 주석 뷰
    • MKAnnotationView.displayPriority는 더 중요한 지도 주석을 명시함
    • 주석 모으기(MKAnnotationView.clusteringIdentifier, .collisionMode, MKClusterAnnotation)
    • MKMapView.dequeueReusableAnnotationView(withIdentifier:for:): UITableView에서처럼 항상 주석을 반환하는 것
  • SFSafariViewController
    • 몇몇 추가적인 구성 옵션들
    • 사파리와 다른 앱들은 이제 쿠키들과 웹사이트 데이터에대해 다른 컨테이너를 얻음
    • 사파리에서 웹사이트 데이터를 지우는것은 앱에서의 것도 지운다
  • SiriKit
    • 새로운 목록들과 노트 도메인(TODO 리스트, 노트, 할일 목록를 생성하고 관리하기)
    • 새로운 시각적 코드 도메인(지불을위해 QR 코드를 표시하고 연락처 정보를 교환하기)
    • Ride Booking과 지불을위한 추가사항
  • WKWebView: 커스텀 URL 스킴, 쿠키 관리, 스넵샷, 내용 필터링을위한 새로운 API
  • 앱을위한 iCloud 키체인 패스워드 자동완성
  • iCloud 문서 공유
  • 새로운 NFC 접근 허가(+ NFCReaderUsageDescription)
  • 위치 접근
    • 위치 접근이 어떻게 사용자에게 표시될지에대한 몇가지 변경(화살표 아이콘과 파란색 바)
    • 사용자는 이제 "사용하는 동안"을 항상 선택할 수 있고, 이것을 다룰 수 있어야 함
    • 앱들은 반드시 NSLocationWhenInUseUsageDescription을 포함하고 선택적으로 NSLocationAlwaysAndWhenInUseUsageDescription을 포함함
  • 사진 접근
    • 사진을 저장만 하기위해 write-only 지원을 물어볼 수 있음(NSPhotoLibraryAddUsageDescription)
    • 사용자에게 사진 라이브러리를 모두 접근하지 않고 한 사진만 선택하도록 요구하려면 UIImagePickerController를 사용할 수 있음
  • HEVC와 HEIF를 지원
  • 캡처된 이미지(CIImage에서 kCIImageAuxiliaryDepth)와 비디오(AVDepthData)의 depth map에 접근하기
  • 시스템 수준에서의 소셜 네트워크 로그인이 제거됨(Twitter, Facebook 등)
  • 32비트 앱 지원이 누락됨(iOS11 개발 타겟을 타겟으로하는 앱은 64비트만 지원가능)

watchOS SDK
  • Core Bluetooth
  • Core ML 프레임워크 – 기계학습
  • macOS로부터 온 ProcessInfo.ThermalState API
  • macOS로부터 온 NSXPCConnection
  • WKExtension
    • enableWaterLock – 앱 내 워터 락 버튼(water lock button)을 구현하기 위함(워크아웃 앱과 위치 추적 앱만을 위함)
    • isAutorotating – 자동 회전 기능은 사용자가 손목을 바깥쪽으로 틀면 나옴
    • isFrontmostTimeoutExtended – 어떤 앱이 화면상에서 8분까지 잡혀있으면 그 시간을 연장할지 시스템에게 요청하는 것(watchOS 3.2에서는 디폴트 타임아웃이 2분으로 바뀌었었음)
  • WKInterfaceController
    • 수직으로 스크롤되는 페이지 지원(WKPageOrientation.vertical)
    • 선택된 페이지에서 페이지된 인터페이스를 시작하기(pageIndex 파라미터)
    • 특정 포지션에 리스트를 스크롤하기(scroll(to:at:animated:))
    • 스크롤 이벤트에대한 콜백(interfaceOffsetDidScrollToTop/Bottom, interfaceDidScrollToTop)
  • WKInterfaceGroup: 이제 그룹은 오버랩' 레이아웃을 가질 수 있음
  • WKSnapshopRefreshBackgroundTask: reasonForSnapshop – 왜 스넵샷이 필요했는지 알려줌
  • HealthKit
    • 체성분분석기(waist circumference)나 인슐린 레벨같은 새로운 헬스 데이터 타입(HKQuantityTypeIdentifier)
    • tai chi나 mixed cardio같은 새로운 워크아웃 타입(HKWorkoutActivityType)
    • 워크아웃 앱은 워크아웃 세그먼트를 표시할 수 있음(HKWorkoutEventType.segment)
    • 워크아웃 앱은 사용자의 워크아웃 루틴을 읽고 작성할 수 있음(HKWorkoutRoute)
    • 워크아웃 앱은 crown + 사이드 버튼을 함께 눌러서 "하드웨어 일시정지" 제스처에 응답할 수 있음(HKWorkoutEventType.pauseOrResumeRequest)
  • SiriKit
    • 단일-프로세스 런타임 – UI와 앱 코드는 이제 단일 프로세스에서 돌아갈 것이고 성능을 증진함
    • 위치를 사용하는 앱은 이제 와치에서 직접 위치 접근을 물어볼 수 있음
    • SpriteKit과 SceneKit 뷰들은 전체 화면 모드에서 보여질 수 있음(구석에 시간이 계속 나타나겠지만)
    • 한줄의 오디오 녹음 – 커스텀 컨트롤을 사용하며, 시스템 다이얼로그는 아님
    • 백그라운드 오디오 녹음 모드(마이크 지시자가 보임)
    • 워크아웃 앱이 아닌 것들을 위한 백그라운드 위치 추적 모드(위치 아이콘이 보임)

tvOS SDK
  • AirPlay2 – 여러 방에 오디오 지원
  • Core ML 프레임워크 – 기계 학습
  • iOSSurface – macOS로부터 온 프레임버퍼 프레임워크
  • Metal 2 – 더 나은 성능, 기계학습 지원, 디버깅 & 프로파일링 툴, 더욱 통합된 API
  • macOS에서 온 NSXPConnection
  • macOS에서 온 ProcessInfo.ThermalState API
  • Vision 프레임워크 – 이미지 분석과 인식
  • Core Image: 찍힌 이미지의 depth map접근하기
  • MapKit
    • 새로운 "muted" 맵 타입
    • 맵 컨트롤은 이제 일반 뷰처럼 맵으로부터 분리되어 사용할 수 있음
    • MKMarkerAnnotationView: "표시" 모양과함께 새로운 디폴트 주석 뷰
    • MKAnnotationView.displayPriority는 더 중요한 지도 주석을 명시함
    • 주석 모으기(MKAnnotationView.clusteringIdentifier, .collisionMode, MKClusterAnnotation)
    • MKMapView.dequeueReusableAnnotationView(withIdentifier:for:): UITableView에서처럼 항상 주석을 반환하는 것
  • 더 나은 폰트 크기조절을 위한 UIFontMetrics와 오토레이아웃 추가사항 (iOS를 보라)
  • TVML 템플릿
  • 웹 인스팩터에서 TVML 지원
  • RTL 언어 지원
  • 앱은 조용한 알림을 사용해 백그라운드에서 깨어날 수 있음
  • 리소스 번들 사이즈 제한이 4GB로 늘어남
  • HEVC와 HEIF 지원

개발자 툴
Xcode9
  • 완벽하게 다시작성된 소스 에디터
    • 스위프트로 작성됨
    • 더 빨라짐
    • 더 많은 폰트 구성 옵션들
    • 3가지 커서중 하나 선택하기(수직, 수평, 블락)
    • Cmd-+ 텍스트 크기
    • 코드를 침범하지 않은채 이슈 풍선이 나타나며, 원클릭으로 여러 이슈를 고칠 수 있음
  • 완전히 새로운 리팩토링 시스템
    • C, ObjC, C++, 스위프트를 지원
    • 코드위에 올리면 부분을 하이라이트하고, 클릭하여 다양한 추출(extractions)처럼 변형/리팩토링을 적용할 수 있음
    • 모든 파일에서 이름 재정의
    • 키보드 단축키를 정할 수 있음
    • 엔진은 오픈소스화 될 것이며, Xcode는 자동으로 여러분에의해 만들어진 변형을 불러올 것임
  • 더 빨라진 인텍서(indexer)
    • 최대 35배까지 "빠르게 열림"
    • 최대 50배까지 빠르게 검색됨
  • 새로운 빌드 시스템(옵트-인 미리보기)
    • 스위프트로 쓰여짐
    • 2.5배까지 빨라진 빌드
    • ObjC/스위프트가 섞인 프로젝트의 빌드가 빨라짐
    • 코드 커버리지 테스팅이 빨라짐
    • 빌드동안 인덱싱을 계속 할 수 있음
  • 스위프트 3.2와 4.0을 포함함
    • 스위프트 버전은 타겟별로 선택할 수 있으며, 한 앱은 두 버전으로 빌드된 모듈을 포함할 수 있음
  • 마크다운 에디터가 통합됨
  • Github이 통합됨
    • 저장소 검색 & 워크플로우 클론
    • 새 저장소를 생성하기위해 프로젝트를 푸시하기
    • github.com에서 "open in Xcode"
    • 새로운 소스 컨트롤 네비게이터
  • 설정에서 계정 패널은 더이상 알고있는 git 저장소 목록을 보여주지 않음
  • 시뮬레이터 증진
    • 동시에 여러 시뮬레이터가 돌아감
    • 이제 시뮬레이터는 디바이스 형태를 다시 가지게됨(Xcode 6에서 없어졌음?)
    • 전원버튼같은 하드웨어 버튼을 누를 수 있음
    • 모서리 스와이프를 지원
    • 유연하게 스케일가능함(해상도가 아니라 크기를 변경)
    • 시뮬레이터의 비디오를 녹화하기
    • 시뮬레이터에 어떤 것을 보내기위해 시스템-와이드 공유 익스텐션(예를들어 사진/비디오, 지도 위치, URL, 앱 등)
  • 무선 디버깅 – WiFi나 이더넷을 통해 원격으로 기기에 앱을 실행하기
    • Quicktime, Safari 인스팩터, 콘솔 등에서도 지원함
  • Xcode는 이제 파일을 이동할때 폴더-그룹 동기화를 유지할 것임
  • 런타임 세니타이저(runtime sanitizers)
    • Main Thread Checker는 백그라운드 스레드에서 UI에 접근하는지 감지함
    • Undefined Behavior Sanitizer는 C/ObjC에서 정의되지 않은 행동 버그를 감지함
    • Address와 Thread Sanitizer의 증진
  • 뷰 디버거(view debugger) 증진
    • 계층의 부분으로 뷰컨트롤러를 보여줌
    • SceneKit과 SpriteKit 화면을 이해함
  • Crashes Organizer는 Spotlight에의해 인덱스된 로컬 .dSYMs 사용을 선택할때 심볼화되지 않은 로그를 심볼화할 것임
  • 문서 브라우저에서 검색이 증진됨
  • Xcode server(CI)는 이제 Xcode에 내장됨
  • Xcode의 여러 복사본은 동시에 돌아감(그러나 9개 이하)
  • 테스트 개선점
    • UI 테스트는 이제 여러 앱으로 뻗어나갈 수 있음
    • 3배에서 10개까지 빠른 UI 테스트
    • 새로운 UI 테스팅 API(예를들어 XCUIScreen.screenshot())
    • 테스트 빌드는 동시에 여러 기기에서 돌아감(xcodebuild를 사용하여)
  • 배포를 위한 서명: 자동 서명하기와 더 커스터마이징가능한 서명하기
  • 어셋 카탈로그(asset catalogs)
    • 어셋 카탈로그에 칼라를 추가할 수 있음
    • 앱 아이콘을 위한 앱 얇게하기(app thining)
    • 어셋 카탈로그는 "preserve vector data" 옵션으로 PDF 포멧의 이미지를 담을 수 있음. 이것은 앱에 벡터 양식을 올릴 수 있으며, 다양한 문맥에서 아이콘을 크게 키울때 사용될 수 있음
    • HEVC와 HEIF 어셋을 지원
  • 스위프트에서 프로토콜에의해 요구되는 모든 메소드 추가를 수정
  • 300개 이상의 새로운 진단, 분석, 수정이 있음
  • 새로운 "Strip Swift Symbols"는 바이너리에서 스위프트 심볼을 strip하는 설정을 만들어, 그 크기를 줄임(디폴트로 활성화됨)됨
  • IB에서 constraint가 선택되면 그 엘리먼트의 위치를 변경할 수 있고, 그 상수는 업데이트 될 것임
  • 개선된 템플릿 메크로 시스템(?)

Swift 4
  • 줄어든 바이너리 사이즈
  • 더 나아지고 예측가증한 성능
  • 마이그레이션이 필요하지만, 아주 조금
  • String 개선
    • 사용하기 더 쉬워짐(예를들어 다시 컬랙션이 됨 .characters를 호출할 필요가 없음, 쉬워진 슬라이싱)
    • 더 나은 성능
    • 더 올바른 유니코드 지원(예를들어 이모티콘 다룰때)
    • 다열- 문자열 리터럴("""...""")
    • CharacterunicodeScalars를 가짐
    • 문자열 슬라이스는 이제 새로운 타입인 Substring을 가짐(StringProtocol을 통해 String과함께 더욱 기능을 공유함)
  • DictionarySet 개선점
    • 키-값 쌍의 시퀀스로부터 딕셔너리를 생성하기
    • 깃셔너리와 셋을 같은 타입의 값으로 필터링하기
    • 딕셔너리 값들을 새로운 딕셔너리로 맵핑하기
    • 그룹화된 시퀀스를 딕셔너리로
    • 디폴트 값과 함께 Dictionary 서브스크립팅 하기
  • Codable – 인코딩/디코딩을 위한 새로운 API(예를들면 JSON에서)
  • \Person.name – 운 강타입 키패스
  • NSRange에서/으로부터 Swift.Range 변환
  • observe(keyPath) { observed, change in ... } – 블럭기반 KVO
  • private 속성/메소드는 같은 파일내의 익스텐션에서 접근가능
  • associatedtype을위한 where
  • @objc는 이제 대붑ㄴ의 경우에 명시적으로 추가될 필요가 있음
  • MutableCollection.swapAt(x, y)
  • 일부분 범위(5..., ...5)
  • 제네릭 서브스크립트(파라미터나 리턴값도 제네릭이 될 수 있음)
  • 클래스와 프로토콜 요구사항 합치기: var x: UIView & Animatable
  • 독점적 메모리 접근(exclusive access to memory) – 다른 곳에서 수정되는 값에 올바르게 접근하는지 체크하는 컴파일러 체크와 런타임 체크
  • Swift Package Manager의 다양한 개선사항들

ObjC
  • 스위프트에서처럼 배포타겟보다 최신의 API 사용을 감지함(@available)

App Store & iTunes Connect
  • 앱스토어를 우한 앱 아이콘은 이제 바이너리에서 어셋 캍탈로그안에서 배포될 것임
  • 앱 이름은 30자까지 제한됨
  • 앱 이름 아래 새로운 부제목 필드가 생김(또한 30자)
  • 설명은 이제 새 버전을 제출할때만 편집할 수 있게될것임
  • 새로운 프로모셔널 텍스트 필드(170자) – 설명의 시작부분에 보여지며, 언제든지 편집할 수 있음
  • 앱의 프리뷰 비디오를 3개까지 올릴 수 있고, 자동으로 재생될 것임(이때는 소리없이)
  • 단계별 배포(phased releases) – 자동 다운로드으로 설정한 사용자들은 한주마다 점차 앱을 받음
  • 인앱구매는 앱과는별개로 앱스토어에서 판촉될 수 있음
  • 평점은 더이상 모든 업데이트마다 자동으로 리셋되지 않음(여러분이 직접 리셋할 수 있음)
  • (아직 엄격하게 제약하진 않았지만)리뷰를 요구할때 SKStoreReviewController만 사용할것을 강력하게 추천함 (1.1.7)
  • 실행가능한 코드를 다운받는 프로그래밍 IDE는 이제 몇 조건과 함께 앱스토어에서 가능함 (2.5.2)
  • TestFlight 외부 테스터 제한이 1만명으로 올라갈 것임

Safari
  • CSS stroke 지원
  • variable fonts 지원
  • 드래그 앤 드롭 이벤트
  • WebCrypto API 업데이트
  • 컨텐트 블락커(content blockers)에서 if-top-urlunless--top-url 규칙
  • Brotli 컨텐트 인코딩을 지원

다른것들
  • Swift Playgrounds 2.0
    • 구독 모델로 플레이그라운드 컨텐트의 제공 호스팅
    • 스위프트4와 iOS11 SDK, 카메라, AR API 지원
    • 통합된 문서
    • 8가지 새로운 지역화
  • Business Chat (preview) – iMessage로 여러분의 고객이 여러분에게 연락할 수 있도록 해주는 회사를 위한 서비스
  • HomeKit 프로토콜은 이제 모두에게 무료로 공개됨(비영리 목적)
  • iCloud 저장소 플랜은 가족 모두와 공유될 수 있음


이 블로그는 공부하고 공유하는 목적으로 운영되고 있습니다. 번역글에대한 피드백은 언제나 환영이며, 좋은글 추천도 함께 받고 있습니다. 피드백은 

으로 보내주시면 됩니다.



WRITTEN BY
tucan.dev
개인 iOS 개발, tucan9389

,
제목: WWDC 2017 Viewing Guide

다른 년도, 다른 WWDC 그리고 더욱 많은 세션들을 이해하기위해서 준비했다. 이 글에서는 이번년도 가장 흥미있는 세션을 위한 나의 가이드를 공유한다.

기계학습, 드레그 앤 드롭, Xcode9
제일 먼저 Platform state of the union이 좋다.
  • Platforms State of the Union 아직 이 세션을 보지 않았다면, 여기에는 iOS, macOS, tvOS, watchOS의 전반적인 변화들을 발표한다.

이것들은 넘겨보지 말자
개인적으로 내가 가장 좋아하는 것들인데, 여러분은 그냥 넘겨볼 수도 있겠지만 시간을 투자해보는 것도 의미있는 일이 될 것이다.

앱 프레임워크
수많은 좋은 세션들이 여기에 있다. 나는 watchOS, tvOS, macOS 세션까지 넣지는 않았다. 여기에 내가 뽑은 리스트이다.
  • Session 201 What’s New in Cocoa Touch WWDC의 스타같은 팀, Eliza Block와 Josh Shaffer이 돌아와 Cocoa Touch의 바뀐점을 요약해준다.
  • Session 204 Updating Your App for iOS 11 통합된 서치바, 리프레시 컨트롤, 오토레이아웃 지원과함께 새로나온 큰 타이틀 네비게이션 바(large title Navigation bar)를 다룬다. 새로운 레이아웃 마진(layout margin)은 뷰컨트롤러의 루트뷰 세팅에대한 가이드를 하고(이제 시스템 최솟값을 바꿀 수 있다) 세이프 영역(safe area)는 상단, 하단 레이아웃 가이드를 대신한다. 또한 뷰컨트롤러는 더이상 스크롤뷰의 contentInset으로 더러워지지 않는다. 테이블뷰 셀은 이제 디폴트로 스스로 크기변경이 가능하고 더 쉽게 스와이프 액션을 넣을 수 있다.
  • Session 206 Introducing Password AutoFill for Apps 여러분의 웹 서비스에 로그인 기능이 있다면 쉽게 구현 가능해 보인다. 여러분의 사용자는 iOS 키체인에 증명서를 저장하게 된다.
  • Session 210 What’s New in Core Data 이번년도의 커다란 코어데이터 뉴스는 Core Spotlight 통합과 Persistent History Tracking을 지원한다는 점이다. 후자는 영속 저장소를 갱신하고있는 여러 컨텍스트와 여러 익스텐션의 이슈를 대상으로 한다. 포그라운드로 돌아오는 앱은 일부로 다시 불러오게 하지 않고서 변경사항들을 패치할 수 있다.
  • Session 214 What’s New in SiriKit 아마 예상한것처럼 극적인 변화는 아닐 것이나, 리스트와 노트를 위한 새로운 계획을 받았고 비주얼 (QR) 코드를 보여주는 것도 곧 나올 것이다.
  • Session 219 Modern User Interaction on iOS 애플에서는 이것을 지향하지는 않을 수 있지만, 여러분은 이제 컨트롤센터, 노티피케이션, 액션을 넘은 슬라이드가 발생하기 전에 스크린의 모서리에서 일어나는 시스템 스와이프를 가로챌 수 있다.
  • Session 225 What’s New in Safari View Controller 여러분의 앱에 더 매칭시키기위해 바(bar)와 틴트 칼라(tint color)를 커스터마이징 한다. 드레그 앤 드롭에대한 지원을 탑재한다. 이제 각 앱은 사파리 브라우저와 별개로된 고유의 쿠키 저장소(jar)를 얻었다. 취소나 닫기를 위해 완료(done) 버튼을 변경하고, 공유 시트로부터 활성화를 배제한다.
  • Session 230 Advanced Animations with UIKit 프로퍼티 애니메이터를 사용하는 것에대한 좋은 요약이고, CALayer의 cornerRadius 속성은 이제 애니메이션 가능한 점에대한 좋은 팁이다.
  • Session 235 Building Visually Rich User Experiences 세션 230를 이은 코어 애니메이션의 좋은 팁과 트릭이다.
  • Session 237 What’s New in MapKit 지도에서 여러분의 데이터를 표현할 수 있는 새로운 맵 타입. 새로운 MKMarkerAnnotationView는 주석들이 겹칠때 이것을 묶어준다.
  • Session 241 Introducing PDFKit on the iOS CoreGraphics 위에 만들었지만 현대의 스위프트와 Objective-C API를 지원한다. PDF 문서를 더 쉽게 보고 주석을 달기위해 만들어졌다.
  • Session 242 The Keys to a Better Text Input Experience 높이를 변경하거나 커스텀 인풋 뷰를 넣은 키보드를 다루는 여러 방법을 소개한다. 사용자가 선택한 키보드가 어떤것인지 앱이 기억하게 만들 수 있다. iOS는 똑똑하게도 자동으로 따옴표와 대쉬를 바꿔준다.
  • 개발바들을위해 애플은 동적 타입을 지원하여 계속해서 밀고있다. iOS11에서 큰 변화로는, 모든 스타일이 이제 여분의 큰 접근성 크기로 커진다(예전에는 바디 스타일만 가능했다). 또한 애플은 UIFontMetrics를 사용하여 커스텀 폰트도 쉽게 지원할 수 있게 만들었다. 어셋(asset) 카탈로그에서 PDF vector asset은 이제 벡터 데이터를 저장할 수 있게 설정할 수 있다.

드래그 앤 드롭
이번년도의 커다란 UIKit 증진사항은 앱간의 드래그 앤 드롭을 지원한다는 점이다.

여러분이 시간이 있다면 아래 세션은 더 깊은 내용을 담고 있다.
자연어 처리(NLP, Natural Language Processing), 기계 학습(ML, Machine Learning), 증강 현슬(AR, Augmented Reality)
애플이 밀고 있는 이번년도의 또다른 큰 테마는, 우리 앱에서 NLP, ML, AR을 쉽게 사용할 수 있게 만들고 있다는 점이다. 또한 애플은 개인정보, 속도, 낮은 지연율에 대한 이점을 강조했는데, 클라우드 기반 서비스 없이 기기에서 가능하기 때문이다.

스위프트
스위프트 에볼루션 과정이 공개로 됨으로서 새로운 스위프트4를 보기위해 WWDC까지 기다릴 필요가 없어졌다. 그럼에도 잘 정리해 놓았다.

개발 
Xcode9는 스위프트를 크게 돕기위해 리팩토링 지원에대한 업데이트를 보고 있는것 같다.

디자인과 접근성
애플이 계속해서 개선하고 강조하는 부분으로, 모두를 위한 앱 디자인과 제작에서 필요한 점을 볼 수 있다.
  • Session 110 Convenience for You is Independence for me Todd Stabelfeldt (aka the Quadfather)는 8살때부터 사지마비가 왔는데, 접근성 제작으로 다른 앱 디자인을 만들어 그의 발표에서 영감을 얻자. 만약 여러분 앱의 접근가능함에 의심이 된다면 그가 손으로 사용하는 스위치 컨트롤 시연을 보자 (가끔 혀를 쓰기도 한다).
  • Session 215 What’s New in Accessibility iOS11 사용자를 위해 나온 일반적인 접근성 기능 몇개가 크게 개선되었다. 여러분은 이제 텍스트로 시리와 인터렉트할 수 있다. 모든 시스템은 동적 타입을 위해 감사(audit)할수 있게 되는데, 이제 모든 스타일에 최고로 큰 접근성 크기를 사용할 수 있다(여러분의 UI에서 테스트해보라!). 이제 VoiceOver은 이미지 안에 있는 텍스트를 인지해서 말할 수 있고, 컨테이너 타입(container type) 지원이 개선되었다. 마지막으로 당신이 드래그 앤 드롭 지원을 고려하고 있다면 접근성을 고려하는 것도 잊지 말자.
  • Session 803 Designing Sound Highly entertaining talk on using sound including how some of the familiar Apple system sounds are created.

보안과 네트워킹

앱 스토어
여러분이 앱내구매(IAP, In App Purchase)를 사용한다면 앱스토어에서 바뀌게될 부분을 주목하자. 아래 두 세션을 추천하고 싶다.
  • 몇몇 멋진 개선이다: 올해 후반기에 TestFlight 제한이 10,000명 사용자로 올라갈 것이다. 더이상 iTunes Connect에서 앱 아이콘을 관리할 필요가 없다. 앱 부제목과 프로모셔널 텍스트 필드가 있다. 20 API까지 올렸다. 단계별 배포(phased release).

미디어
요점은 MusicKit이 Apple Music API에 접근할 수 있게 된 것과 Photos API가 바뀐 부분이다. 이미지 피커(image picker)는 과정에서 사라졌으며, 따라서 사용자는 허가를 묻지 않고 이미지를 선택할 수 있다.



이 블로그는 공부하고 공유하는 목적으로 운영되고 있습니다. 번역글에대한 피드백은 언제나 환영이며, 좋은글 추천도 함께 받고 있습니다. 피드백은 

으로 보내주시면 됩니다.


WRITTEN BY
tucan.dev
개인 iOS 개발, tucan9389

,