언텍트 시대에 집에서 혼자(?) 늦게 뒷북치는 WWDC2021, Day2 !
짧은 감상평
What’s new in UIKit
Productivity
- OS는 따로, 개발 환경은 하나로, Gazua!
UI refinements
- 지못미, 테이블 뷰! 이제는 SwiftUI 에 밀려(?) List 라 불리게 된겐가.. ㅠ.ㅜ
API Enhancements
- pulldown? popup! SubMenus?! 들이 추가되다니!
- 안녕, roundedRect..? 아닌가, Welcome back, 인가...? ;)
- UIKit 에서 자꾸만 SwiftUI 의 냄새가 난다.. 나만 그런가..;
- 슬슬 Scene 기반으로 넘어오라는 듯.. ㅎㅎ
Security and privacy
- Location button?!
What’s new in Swift
Swift packages updates
- 엑스코드와의 통합, 묶음제공 - JSON - 도 좋아보임
- 애플의 다양한 패키지 제공. 일단 Collections, Algorithms 은 좀 챙겨봐야 하지 않을까..
- DocC 좋네.. :)
- ARC Optimize Object Lifetimes 옵션 추가
Ergonomic improvements
- 여러 SE 들을 묶었더니~ 짜잔~! SwiftUI 가 더 심플하고 강력해졌습니다~~~
- Result Builder 표준화, enum : Codable 키 설정 없이 바로 사용 가능!
Async and concurrent programming
- Actor 는 Reference type 이지만, 멀티테스킹에 맞게 '룰'을 가지고 있음. ;)
Swift6
- 커밍 쑨~ 더 안전한 컨커런시~ 근데, 컴파일러 스냅샷이 뭔가염?? ;
What’s new in Foundations
AttributedString
- 와... 마크다운으로 문서를 이쁘게 꾸밀 수 있게 되었네;;;
- 여기다 로케이션을 뿌려서 언어별로 적절히 마크다운으로 적용을 할 수 있게 되었네?!
Formatters
- 드디어! 타입에 기본 장착(?)이 되었다!!!
- 어쩐지 모르게 풍겨지는 SwiftUI 의 Modifier 향기.. ㅠ.ㅜ
- 그나저나 SwiftUI, preview 에서 locale 설정도 되는구나...;;
Grammar agreement
- 이거 너무 좋다!! ㅠ.ㅜ 단수, 복수 자동처리, 남성형, 여성형 스타일까지
- 이걸 모두 자동~ 이라고 해놓곤 스크립트를 열심히 짜야 하는 듯..(!)
Indexing!
What’s new in UIKit
Productivity
** OS는 따로, 개발 환경은 하나로, Gazua!
iPad Multitasking
- 새로운 센터드 씬 추가
- 씬을 하단에도 붙일 수 붙일 수 있음
- UIWindowScene 을 통해서 적용
Pointer band selection
- 다중 선택
Pointer accessories
- 마우스 포인터를 변경
Keyboard shortcuts - UI가 변경됨
관련 영상 : ~ iPad Apps to the next level
> Focus system
- 아이패드에서도 적용 됨.
- 키보드 이용 (Focus on Keyboard navigation 영상 참고)
Multi-touch drag & drop
- 이제 아이폰도 가능!
- WWDC17년 영상들과 동일
UI refinements
** 지못미, 테이블 뷰! 이제는 SwiftUI 에 밀려(?) List 라 불리게 된겐가.. ㅠ.ㅜ
Toolbar, tabbar visual update
contentviewscroll이 viewcontroller 에 기본적으로 property 제공됨?
List headers
.plain, .grouped,
prominentInsetGrouped : 사이드바 처럼 동작.
extraPromentInsetgrouped : 애플워치 앱처럼 볼드로 동작.
UIListSeparatorConfiguration
- 지난 업데이트 14.5 에서 추가
Sheets Presentations
- half height sheets
- Optionally non-modal
- 관련 영상 : Customize and resize sheets in UIKit
UIDatePicker - 시간도 고를 수 있게 휠 나옴~
API Enhancements
** pulldown? popup! SubMenus?! 들이 추가되다니!
** 안녕, roundedRect..? 아닌가, Welcome back, 인가...? ;)
UIButton API
- plain - gray, tinted, filled, multiful line : button configurations
- pulldown, popup 추가됨
- 맥에서 맥에 맞게 잘 모이게 동작함
- corner 도 있네.
meet the uikit button video
submenus
- 위 비디오에서 다룸
SFSymbol
- 팔레트, 멀티 컬러 추가됨
- 대표색을 고르고 설정하면 적절하게 채워짐
- Design and build SFSymbols, SF Symbols in UIKit and AppKit videos
Content size category limits
- 동적 타입 사이즈를 뷰 하이라키에 맞춰서 제약 가능
- 최소 최대 크기 설정 가능
UIColor enhancements
- system ~
Dynamic tint color : UIColor.tintColor
colorPickerController 에 지속적 선택 옵션 추가
TextKit2
- 새로운 텍스트 레이아웃 api
- UITextField 뒤에서 사용됨
- 특별한 적용 필요는 없음
- Meet TextKit2 video
UIScene state restoration
- NSUserActivity : 인터페이스 상태를 표현해 줌
- 텍스트 동작 상태 속성 추가
- 스토리보드 로드 후 상태 복구용 콜백
- 상태 복구용으로 확장 가능
- 이제 슬슬 씬 베이스로 넘어오시랍니다..;;
- Take your iPad Apps to the next level
Scene level sharing
앱 안에서 공유 가능한 것을 표현
- 시리의 share this 기능에 서용되거나
- NSSharingServicePickerToolbarItem on Mac
- Design great actions for shortcuts, Siri, and suggestions video
- qualities of a great mac cat. app video
Cell configuration closure
- 컬렉션 뷰 테이블 뷰
- 셀상태 변경에 편해짐
- 상속따윈 필요 없다
- cell.configurationUpdateHandler closure 확인
Diffable data source improvements
- apply snapshots 애니메이션 없이. - 찾아보자
Performance
Cell prefetching 기능 향상
뒤에서 동작하는 방식이 바뀌어서 퍼포먼스가 2배이상 빨라짐, 특별히 바꿀건 없음
추가된 비동기를 이용, 퍼포먼스가 더 빨라졌다 함.
Make blazing fast lists and collection views video
Swift async/await
- UI func 중 메인타야 하는 겅유, 컴파일 타임에 다 MainActor 를 적용해주게 됨
- 그 외에 UIImage preppations 계열들은 async/await 으로.
- Meet async/await in swift
- Meet asyncSeq. videos
Security and privacy
Location Button
- One-time access to location
- Meet the Location Button Vdo
표준 붙여넣기 아이템 추가됨
붙여넣기 디텍션에 여러 표준 추가
Private click
————————————
What’s new in Swift 5.5
Swift packages updates
Swift Package Index : 컨트리뷰트라네… ㅎㅎ 엑스코드에서 바로 지원된다네.
Package collections in Xcode
- 여기서 찾아서 바로 붙여넣능ㄹ 수 있음.
- json file 로 퍼블리시도 되고
- 필요에 따라서 묶어서 팀원들끼리 쉐어 가능
- 검색도 가능
Apple Package 도 있음
Swit collections
- GitHub.com/apple/swift-collections
- Deque :
- OrderedSet
- OrderedDictionary
The Algorithms Packages
- 40개 제공중.
Swift System
- 로우 레벨 인터페이스 (시스템 콜용)
Swift Numerics
- Float15 support on Apple silicon macs
ArgumentParser
- 쉘 컴프리션 스크립트 처리 등에 사용
- 터미널 앱의 옵션?
Swift on server
-
개발자 경험도 더 발전됨
- Swift DocC :: 엑스코드에서 바로 문서로 뿅~
- 비디오도 여러개 있음
빌드 향상
- 모듈을 바꿀때 더 빨리 빌드됨
- 컴파일이 시작 전에 더 빨라짐
- 재빌드 타이밍도 줄어듬
메모리 관리
- ARC 에서 Optimize Object Lifetimes 옵션 추가됨
- ARC in Swift: Basics and beyond
Ergonomic improvements
SE 문서들 이야기 - 스펙 말이지.
Result Builders : 표준화 됨 : SE-0289
enum : codable 추가됨
Property wrappers on parameters : SE-0293
… 이런건 일단 다 What’s new in SwiftUI
Async and concurrent programming
async : 문법적으로, 함수가 멈출수 있게 지원되도록 컴파일 해야 해~
await : 결과 나올때까지 기다려~~~~~
expl str conn in swift video
- try 하나로 병렬로 돌아가는 애들의 error 를 잡아서 처리를…..!!
Actor 를 통한 데이터 망가짐을 보완
- async await 으로 호출
- actor 호출시 앞에 무조건 await 이 있어야 함
- 레퍼런스 타입 임 하지만 멀티테스킹에 맞게 안전하게 사용될 수 있게 룰을 가짐~~
- ~ with swit actors video
Swift6
- 안전한 컨커런시~~~~~~
- compiler snapshot 써보기
—-
What’s new in Foundations
—-
AttributedString
- 구조체로 제공
- String과 호환
- 지역화 가능
- 안전하고 보안에 강함
AttributedString View
String(localized:…)
AttributedString(localized:…)
SwiftUI : text에서 MD 같이 동작하네?
Codable 지원.
Attributed Key
MarkdownDecodableAttributedStringKey.. ?!
Attribute Scopes
결국, 커스텀 포멧을 마크다운 같은걸 써서 해결가능 - 텍스트만으로.
Formatters
- Date formatter가 심플해짐
date 안에 formatted 가 들어감. ㅎㅎ
속도 퍼포먼스를 위해서 컴파일 시점에서부터 처리하기 위한 목표.
뭔가…. SwiftUI Modifier 같은 느낌…
날짜 사이 계산도 쉽네;;; Range 느낌.
SwiftUI preview에서 locale 설정도 되네
문자 -> date 할때도 좀 더 직관적으로 바뀜.
- 숫자에 format이 들어감 호옹..
SwiftUI Text에는 format 도 들어갔네.
Grammar agreement
- 좋아 좋아. 단수, 복수 처리
Automatic Grammar Agreement
남성형, 여성형 스타일?!
inflact options