Giter Club home page Giter Club logo

Comments (2)

jasudev avatar jasudev commented on May 20, 2024 2

안녕하세요, 영상을 너무 잘 봤습니다 :) 아주 쉬운 예시를 통해 쉽게 설명해주시는 내용도 좋았고, SwiftUI로 만드셨다는 화려한 발표자료도 좋았습니다. 유익했어요~

그런데, 영상 중간에 제가 이해를 잘 못한 부분이 있어서 질문을 좀 드릴까 합니다. 영상 16:00에서 SwiftUI 디자인에 종속적이지 않은 컴포넌트 구조 설계 가능이라고 하셨잖아요. 그리고 environmentObject 는 말씀하신 대로 어떤 모델을 속성을 선언하는 것만으로 참조할 수 있게 해주는 프로퍼티 래퍼이구요. 다음으로 라디오 버튼을 예시로 들었는데, 이 라디오 버튼도 UIKit의 스택뷰를 사용해서 만들면 각각의 커스텀 클래스로 따로 안만들고 구현할 수는 있잖아요. 하지만 보통은 디자인이 일부 수정될 수 있으니까 유지보수나 관리의 목적으로 말씀하신대로 따로따로 만들긴 하지만요. 그러면, 같은 맥락으로 SwiftUI로 컴포넌트를 작성하는것도 라디오 버튼처럼 하나의 디자인으로 여러 형태를 커버해버리면 결국에 해당 컴포넌트가 좀 복잡해지지 않나요 ? UIKit의 스택뷰로 구현하는 것과 마찬가지로 그냥 따로 나누어서 만드는게 나은것인지 궁금합니다. 아니면, UIKit+스택뷰가 아니라 UIkit+오토레이아웃을 가정하시고 설명을 하신걸까요 ? 그러면 확실히 무조건 따로 만들어야 될 것 같긴 한데..

"SwiftUI는 디자인에 종속적이지 않은 컴포넌트 구조 설계 가능" 이라는 말이 명확히 이해가 잘 되지 않아 추가 질문 드립니다. 시간 되실 때 편하게 답변해주세요~

안녕하세요. 먼저 좋은 피드백 고맙습니다. :)
말씀하신 것처럼 UIKit에서도 데이터 바인딩 구현에 따라서는 SwiftUI와 비슷한 구조 설계는 가능할 것으로 보입니다. 다만 제가 "SwiftUI는 디자인에 종속적이지 않은 컴포넌트 구조 설계 가능"이라고 표현한 것은 SwiftUI에서는 개발자가 데이터 바인딩을 위해 별도의 로직 설계를 하지 않더라도 EnvironmentObject 래퍼 속성을 이용해서 쉽게 구현이 가능하다는 것을 표현하기 위한 내용이었습니다.

아시는 바와 같이 SwiftUI에서 모든 뷰는 View 프로토콜을 준수하는 객체로 캡슐화되어 있습니다. 따라서 EnvironmentObject를 통해서 컴포넌트를 관리, 조작하는 로직과 View를 구성하는 UI를 완전히 분리해서 설계가 가능하다는 것으로 이해하시면 좋을 것 같습니다.

https://medium.com/p/21f53f84c2c0
위 포스팅은 SwftUI에서 라디오 컨포넌트를 구성하는 하나의 예를 설명한 것입니다. 이 자료가 의미를 이해하시는데 도움이 되지 않을까 싶습니다. 컴포넌트를 구현 방법은 개발자에 따라서 다양한 방법이 있을 수 있으니 참고 용으로 해석해 주시면 좋을 것 같습니다.
감사합니다. :)

from ncdp2023.

kickbell avatar kickbell commented on May 20, 2024 1

아아 넵. 그런 의미 였군요. 답변 감사드립니다.

추천해주신 포스팅 또한 고퀄리티네요. 2편도 틈내서 잘 읽어보도록 하겠습니다. 😁

from ncdp2023.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.