지난 번에 iOS 13에서 SwiftUI 사용기와 평가를 올렸었는데요, 이번에는 iOS 14에서 새롭게 공개 된 내용에 대해서 나름의 평가를 해보도록 하겠습니다.
1) Lazy(H/V)Stack
- 우선순위 1,2위 정도의 녀석입니다. 기존의 (H/V)Stack이 모든 컨텐츠를 한번에 로드하다보니 ScrollView 와 조합 한 List, Grid 를 제작 할 경우 퍼포먼스 문제를 일으키죠. 이걸 소개하면서 Collection을 따로 만들기보다는 ScrollView와 Stack을 조합하는 방식이 자신들이 기대하는 바라고 소개했는데... 그럼 iOS 13에 우선적으로 해줬어야하지 않나 하는 아쉬움이 진하게 남습니다. 왜냐면 이런 기능이 SwiftUI로 제품을 만들 것인지 여부를 결정하는 중요한 요소 중에 하나이기 때문이죠. 추가로, Stack Elements가 화면에 나타나는지(WillAppear) 여부를 알 수 있는 modifier가 추가됐으면 하는 아쉬움이 있습니다.
2) ScrollViewReader
- ScrollView에 포함 된 views에게 id를 부여하고, scrollTo 매소드를 통해 해당 view로 이동하는 기능입니다. 다만 아쉬운 점은, 원하는 offset 단위의 이동은 안되네요. 여전히 custom view 제작에 제약이 될 듯 합니다.
3) TabView with tabViewStyle()
- UIPageViewController라고 보시면 됩니다. 필요한 기능이였죠.
4) Multi Line TextEditor
- 필요한 기능이긴 했습니다. 아무튼 언젠가 생겨야 할 것이 생겼다 정도의 느낌이네요.
5) 새로운 PropertyWrappers
5-1) @AppStorage
- 편리한 기능입니다. 다만, 기존 오픈소스들도 다들 편해서.. 우선순위로 보면 그렇게 필수는 아닙니다.
5-2) @ScaledMetric
- Dynamic Type 설정에 따라 자동으로 변화하는 값을 만들고자 할 때 사용합니다. 설정값에 의존하여 컨텐츠를 표시하는 앱들에게는 필수기능입니다.
5-3) @StateObject
- @ObservedObject가 view들 간 공유용으로 설계된 것이 아니기 때문에, 이런 용도를 위해 추가한 것 이라네요.
6) onChange()
- @State 변화를 감지할 수 있는 modifier인데, 이거 상당히 중요한 기능이죠! 생각보다 개발하다보면 State의 변화에 따라 동작해야 하는 것들이 제법 있습니다.
7) fullScreenCover()
- 드디여 전체화면 present를 할 수 있습니다!
8) if let, switch
- Function Builder 안에서 드디어 이걸 사용할 수 있습니다.
더 많은 추가사항들이 있긴 합니다만, 제 개인적 관심사는 당장 아니어서;;; 일단 패스합니다.
그리고, iOS 13에서 여러가지 버그들이 고쳐졌는지는 시간이 없어서 다 확인은 못해봤습니다. 확인되는 대로 또 글 올리겠습니다.
간단하게 만드려면 이거만한게 없지만 커스텀 들어가면 아직은 유아이킷이 차라리 편할것같기도하네요 ㅜㅜ