WWDC 2021 UIKit iOS

Jackson·2021년 6월 13일
1

WWDC2021

목록 보기
1/1
post-thumbnail

첫 WWDC 2021!

개발자를 위한 WWDC에 대해서 키워드만 알았지 실제로 본 적은 없었다. 봐야할 것이 많지만 이번 기회에 하나씩이라도 보는 재미를 키워나아가야겠다. 또한 동영상이라 내가 집중하기에도 좋을 것 같구, 영어공부도 해보는 셈 치구 말이다. 특히 이번에는 UIkit, 그 중에서도 iOS에 대해서 배운점을 적어보려고 한다.


개요

1. Productive

  • Drag and Drop

2. UI refinements

  • UIToolBar & UITabBar
  • List Headers
  • Sheet presentations
  • UIDatePicker

3. API enhancements

  • Enhanced UIButton API
  • UIContextMenuInteraction
  • SF Symbol enhancement
  • Content size category limits
  • UIColor enhancements
  • Color Picker enhancemnets
  • TextKit 2
  • UIScene state restoration
  • Scene level sharing
  • Cell configuration closures
  • Diffable data source imporvements

4. Performance

  • Cell prefetching improvements
  • Swift async/await

5. Security and Privacy

  • Location Button
  • Standard paste items
  • Private Click Measurement

각 파트 설명


1. Productive

Drag and Drop

기존에 In-App에서 드드가 된 것이 이제는 Between-Apps 로 가능하게 되었다. IPadOS는 존재하였지만 iOS가 이번에 도입이 되었다. 영상에서는 Safari에서 Message로 옮기는 것이 가능했다. WWDC 2017에 보완이 된 것 같다.


2. UI refinements

UIToolBar & UITabBar

If the new default behavior is not appropriate for your app, just create a custom appearance and assign it to the scrollEdgeAppearance property on your bar. This property was previously only available on UINavigationBar but is now also available on UIToolbar and UITabBar.

정확하게는 이해가 되지 않지만 네비게이션바에서만 되던 것이 UITab&Tool Bar에서도 가능하게 되었다.

List Headers

새롭게 추가된 두가지 헤더 UI mode.


(실제 예시)

SectionHeader를 어떤 Style로 하냐에 따라 다양한 View를 보여줄 수 있다. 이 때 사용되는 것이 UIListSepratorConfiguration 이다.

Sheet presentations

모달 뷰를 보여줄 때 절반만 보여줘서 Seprator와 같은 효과를 주는 것으로 생각된다.

UIDatePicker

이제 DatePicker를 이용할 때 직접 숫자를 터치해서 넣을 수 있다.


3. API enhancements

Enhanced UIButton API

  1. 버튼에 대해 배경을 꾸미거나 두 줄을 넣는 듯 커스터마이징이 좋아졌다.

  2. 길게 눌렀을 경우 PopUp이 가능하다.

UIContextMenuInteraction

UISubMenu에 Hierarchy한 submenu가 추가 되었다. 즉 서브메뉴안에 서브메뉴가 존재가 가능하다.

SF Symbol enhancement

기존의 SF Symbol에 더욱 다채로운 색상을 커스터마이즈 할 수 있게 되었다.

Content size category limits

App의 최소/최대 콘텐츠 사이즈를 설정할 수 있다.

UIColor enhancements

system색상이 변경되었으며 다양한 색상을 모든 App에서 적용할 수 있어졌다.

tintColor가 개선이 되었으며 변경되 UIButton과 사용하기에 적합하다.

Color Picker enhancemnets

이제 뷰컨에서 UIColorPickerViewController를 사용할 수 있다.

TextKit 2

커스터마이즈 Text를 구현 할 수 있다. (TextKit 1이 존재하는지도 몰랐지만 암튼 더 좋아졌다고 한다.)

UIScene state restoration

이 부분은 App-Cycle에 관련된 것 같은데 좀 더 개선되고 UIScene에 초점을 맞추었다. 앞으로는 Apple이 UIApplicaion에 신경을 안쓰게 하려고 하는 것으로 보인다. 멀티 Scene은 IPad, MacOS에는 좋지만 iOS는 아직 권장 하지 않는 것으로 보인다.

Scene level sharing

Siri를 이용해서 여러 디바이스에 공유를 할 수 있는 것으로 보인다.

Cell configuration closures

UICollectionView와 UITableView에서 Cell의 재사용 증진을 위한 Closure가 제공된다고 한다.

Cell을 관리하는 코드

Diffable data source imporvements

Diffable에 개선이 이루어졌다고 하는데 Diffable에 대해 아직 잘 몰라서 패스!


4. Performance

Cell prefetching improvements

UICollectionView에서 Cell을 pre-fetching하므로써 2배이상의 속도를 개선하며 향상된 부드러운 스크롤을 보여준다.

  1. 이미지들을 미리 preparing하여하고 준비함으로써 자신의 이미지가 보여줄 때를 대비한다. 이런 방식이 속도가 개선이 된다.

  1. 큰 이미지들은 작은 사이즈로 preparing하여 속도개선을 보여준다. 물론 디코드가 된 본래 사이즈를 나중에 이용할 수도 있다.

Swift async/await

비동기 처리방식이 대폭 바뀌었다. 이 부분은 해당 WWDC 2021 영상을 참조.

  • Meet async/await in Swift
  • Meet AsyncSequence


5. Security and Privacy

Location Button

현재 위치를 알 수 있게 되거나, 특정 장소를 지정할 수도 있는 듯하다.
규격에 맞다면 어느 앱에서나 가능하다. Info.plist를 사용해야 하는듯하다.

Standard paste items

특정 텍스트를 복사하는 방식을 Standard하게 UIResponder Selector로 사용하려고 정의했다. 이 4가지 방식을 사용할 때에는 Notification banner가 보이지 않도록 바꾸게 했다.

Private Click Measurement

앱-웹 으로 연결되는 ad에 대해 privacy하게 바꾸었다고 한다.


결론

이렇게 써놓으니 좀 이해가 되는 느낌이다. 26분가량 영상을 거의 2시간 가까이 옮기고 나서 그런지 몰라도 UIKit에 엄청나게 많은 것들이 나왔다는것을 알 수 있었다.

궁금하고 해보고 싶은 것이 여러개 있는데 Drag and Drop, SF Symbol enhancement, Cell prefetching improvements 정도로 꼽힌다.

이 것에 관한 것은 해당 비디오도 있으니 한번 보구 예제를 따라해봐야겠다.

0개의 댓글