티스토리 뷰

< Data Flow Premitives >

 

 

  Swift gives you a tool called Binding, which is great for passing read/write derived values.  And technically any constant can serve as a perfectly good read-only Source of Truth as we saw with the test data driving our previews. Now there's one more I want to call out, and I mentioned a second ago that collectively your state variables and your model constitute the Source of Truth for your entire appAnd so we have this bindable object(Source of Truth + Read-write) protocol Jacob used earlier to teach SwiftUI about how to observe changes from our model.

 

  Swift 는 'Binding' 이라 불리는 도구를 우리에게 주었고, Read-write 가 가능한 derived values 를 전달하는데 탁월하죠(그림 오른쪽 아래). 그리고 기술적으론 모든 상수(Constant)는 완벽하게 좋은 Read-only 의 Source of Truth 로서 사용될 수 있어요(왼쪽 위). preview 에서 test data driving 을 다룰 때 우리가 봤었던 거에요! 이제 제가 언급하고 싶은게, 전적으로 여러분의 state 변수들과 model 은 여러분의 앱 전체에서 Source of Truth 를 구성해요. 그래서 우리의 model 에서의 변경 내용을 관찰하는 방법에 대해 Jacob 이 앞서 사용했던 프로토콜인 Bindable Object 를 우리가 가지게 되었어요. 

 

(중략)

 


 

< Managing Dependecies Is Hard >

 

제목에서도 유추할 수 있듯, 디펜던시에 대한 이야깁니다~

 

 

 

  This is really different from what you do in a traditional life framework where the views themselves persist and you try your hardest to keep them all up to date.

 

  이번 주제는 정말 달라요. 여러분이 뷰가 자기 자신을 지속하는 전통적인 라이프 프레임워크에서 해왔던 것 그리고 이 뷰들을 최신 상태로 유지하기 위해 최선을 다해 시도해야 하는 것과는 완전히 딴판이죠. 

 

 

 You may not think about it this way when you use a traditional UI framework, but every time a view reads a piece of data, it's creating an implicit dependency.

 

여러분은 아마도 이 방식에 대해 생각해보시지 않았을 수도 있을 것 같아요. 여러분이 전통적인 UI 프레임워크를 사용할 때, 뷰가 데이터 조각을 읽어들이는 모든 순간마다 암시적 디펜던시(implicit dependency)를 만들어낸다는 사실 말이죠.

 

 It's a dependency because when that data changes, the view needs to update to reflect the new value.

 

 이것은 dependency 인데 왜냐면 데이터가 바뀔 때마다 뷰는 새로운 값을 반영하기 위해 업데이트를 해야만 하기 때문이죠.

 

 

  And when it fails to, that's a bug.

 

  만약 업데이트가 실패하면, 그것은 버그가 됩니다.

 

 

 SwiftUI automatically manages dependencies on your behalf by recomputing the appropriate derived values so this never happens again.

 

  하지만 우리의 슈퍼 그레잇 엑설런트 SwiftUI 는 여러분 대신 dependency 를 관리합니다. 적절한 derived value 를 재연산해서 구현하죠. 그래서 이 버그는 다신 발생하지 않아요.

 


 

  그 다음 이야기는 뭐... 우리가 하나의 디펜던시만 관리하는 것도 아니며 우리의 앱은 매우 크고 복잡하기 때문에 버그를 우리가 관리하기 힘들며 또 인간은 같은 실수를 반복하고... 뭐 그런 얘기입니다 ㅎㅎ 그리고 뷰의 복잡성을 관리하는 것에 대해서 이야기를 합니다. 서로 다른 콜백 함수들이 호출되는 여러가지 경우의 수를 다루는 부분이었는데, 굉장히 흥미로웠어요. 글로 다루는건 한계가 있네요...

 

이후에도 SwiftUi 에서 애니메이션을 다루는 법, SwiftUI 에서 핵심적인 declarative syntax 에 대한 이야기, 지역화(Localization) 등 좋은 주제들을 많이 다루고 있습니다. 꼭 살펴보시길 바래요!!! 

 


 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함