제목: 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 증진사항은 앱간의 드래그 앤 드롭을 지원한다는 점이다.
- Session 203 Introducing Drag and Drop 만약 아이패드를 지원하고 있다면 이 세션에서 드래그 앤 드롭을 지원하는 기초를 설명하니 보자.
- Session 223 Drag and Drop with Collection and Table View 테이블뷰나 컬랙션뷰에 드래그 앤 드롭을 추가하는 나머지 API이다.
여러분이 시간이 있다면 아래 세션은 더 깊은 내용을 담고 있다.
자연어 처리(NLP, Natural Language Processing), 기계 학습(ML, Machine Learning), 증강 현슬(AR, Augmented Reality)
애플이 밀고 있는 이번년도의 또다른 큰 테마는, 우리 앱에서 NLP, ML, AR을 쉽게 사용할 수 있게 만들고 있다는 점이다. 또한 애플은 개인정보, 속도, 낮은 지연율에 대한 이점을 강조했는데, 클라우드 기반 서비스 없이 기기에서 가능하기 때문이다.
- Sesion 208 Natural Language Processing and Your Apps 활자를 처리하기위해 언어학과 기계학습을 합쳐 사용한다. 활자의 언어를 식별하고, 음성의 부분을 토큰화하고 식별하며, 이름과 위치 태그를 만든다. "lemmatization"이 무엇인지 찾아내서 텍스트를 검색할때 왜 이것을 사용했는지 찾아낸다.
- Session 703 Introducing Core ML 기계학습으로 무엇을 어떻게 할 수 있는지 보여주는 흥미로운 소개이다. 한번 보자.
- Session 710 Core ML in depth 좀 더 깊게 파볼 준비가 되면 보자.
-
Session 506 Vision Framework: Building on Core ML Face detection, Image registration (alignment), Rectangle detection, Barcode detection, Text detection, Object Tracking
스위프트
스위프트 에볼루션 과정이 공개로 됨으로서 새로운 스위프트4를 보기위해 WWDC까지 기다릴 필요가 없어졌다. 그럼에도 잘 정리해 놓았다.
- Session 402 What’s New in Swift Ole Begemann’s Swift 4 playground의 발표와 스위프트3.2에서 스위프트4로 마이그레이션 하기.
- 이번년도 큰 뉴스는 새로운 키패스/키 벨류 옵저브 기능에 대한 것과 JSON 인코딩 디코딩을 위한 Codable 프로토콜이 있다.
개발 툴
Xcode9는 스위프트를 크게 돕기위해 리팩토링 지원에대한 업데이트를 보고 있는것 같다.
- Session 401 Localizing with Xcode 9 새로운 수두 언어, 여러개를 다루기위해 Stringdict 파일들을 import/export, 테스트 스킴은 이제 특정 언어나 지역을 정할 수 있고 테스트를 실행하기위해 지역화된 스크린샷을 붙일 수 있다.
- Session 403 What’s New in Signing for Xcode and Xcode Server 나에게 큰 뉴스였던것은 더이상 Xcode 서버를 사용할 때 macOS 서버에 설치하지 않아도 된다는 것이다.
- Session 404 Debugging with Xcode 9 무선 개발(Wireless development)과 뷰 컨트롤러는 이제 뷰 디버거(View debugger)를 가진다. Xcode를 디버깅하는 Xcode를 디버깅하는 Xcode를 디버깅하는... 그런 영화 인셉션같은 데모가 있었다.
- Session 405 GitHub and the New Source Control Workflows in Xcode 9 여러분의 Github 계정(2FA를 지원한다)을 추가하고 클론하자.
- Session 406 Finding Bugs Using Xcode Runtime Tools 새로운 Undefined Behavior과 Main Thread Checkers.
- Session 409 What’s New in Testing 비동기 테스팅, 퍼포먼스, 엑티비티와 스크린샷에서 그룹핑 테스트.
- Session 414 Engineering for Testability 어떻게하면 테스트가능하게 리팩토링할 수 있는지에대한 팁을 준다.
디자인과 접근성
애플이 계속해서 개선하고 강조하는 부분으로, 모두를 위한 앱 디자인과 제작에서 필요한 점을 볼 수 있다.
- 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.
- Session 806 Design for Everyone 여러분의 앱 접근성을 만들기위한 실질적인 디자인 팁들.
보안과 네트워킹
- Session 701 Your Apps and Evolving Network Security Standards 좋은 방법, TLS v1.3을 테스트하기위한 도입, App Transport Security 사용하기
- Session 702 Privacy and Your Apps 사파리의 지능적 트래킹 보호. DeviceCheck - 영속 데이터의 2비트에 저장하여 앱 삭제나 완전히 리셋하여도 기기에서 앱을 살아남게 해준다.
- Session 707 Advances in Networking, Part 1 애플은 iOS10.3 이례로 Explicit Congestion Notification으로 실험해왔고 iOS11에서 완전히 적용될 것이다. 이 전송층은 성능을 올릴 수 있어 사용자 공간으로 가고있다. 다중-경로 TCP(WiFi+셀룰러)를 지원한다(URLSession과 사용하기 쉽다).
- Session 709 Advances in Networking, Part 2 이제 URLSession은 연결을 기다릴 수 있다 - reachability 테스트가 필요 없다! URLSessionTask 일정을 만들 수 있다(earliestBeginDate). UIProgressView로 과정을 알린다.
- Session 708 Best Practises and What’s New in User Notifications 락스크린에서 노티피케이션 내용이 숨겨져있을때 보여지는 방법을 커스터마이징할 수 있다.
-
Session 718 Introducing Core NFC
앱 스토어
여러분이 앱내구매(IAP, In App Purchase)를 사용한다면 앱스토어에서 바뀌게될 부분을 주목하자. 아래 두 세션을 추천하고 싶다.
- 몇몇 멋진 개선이다: 올해 후반기에 TestFlight 제한이 10,000명 사용자로 올라갈 것이다. 더이상 iTunes Connect에서 앱 아이콘을 관리할 필요가 없다. 앱 부제목과 프로모셔널 텍스트 필드가 있다. 20 API까지 올렸다. 단계별 배포(phased release).
미디어
요점은 MusicKit이 Apple Music API에 접근할 수 있게 된 것과 Photos API가 바뀐 부분이다. 이미지 피커(image picker)는 과정에서 사라졌으며, 따라서 사용자는 허가를 묻지 않고 이미지를 선택할 수 있다.
이 블로그는 공부하고 공유하는 목적으로 운영되고 있습니다. 번역글에대한 피드백은 언제나 환영이며, 좋은글 추천도 함께 받고 있습니다. 피드백은
- 블로그 댓글
- 페이스북 페이지(@나는한다번역)
- 이메일(canapio.developer@gmail.com)
- 트위터(@canapio)
으로 보내주시면 됩니다.
'Swift와 iOS' 카테고리의 다른 글
[번역]WWDC 2017에서 새로운 것들 (0) | 2017.08.14 |
---|---|
[번역] 여러분이 놓친 리액티브 프로그래밍에 대한 이야기 (0) | 2017.01.01 |
(번역) 픽셀아트(Pixel Art)를 만들어보자 - 입문용 (with Cocos2d iOS Framework) (0) | 2015.07.17 |
[iOS] iOS에서 푸시 받는거 놓히지 않기 - Push Notification (0) | 2015.07.04 |
[iOS] 맥에서 구글 드라이브를 이용한 URL 앱 배포 (adhoc) (4) | 2015.05.06 |
WRITTEN BY
- tucan.dev
개인 iOS 개발, tucan9389
,