- Total
목록오뚝이 개발자/SwiftUI (39)
꿈꾸는리버리
frame과 관련해서 모르는 게 많아서 이참에 정리를 해보기로 했다! 최종적으로 만들고자 하는 화면은 다음과 같다 ! frame, 왜 필요할까 ? 좌측의 기본 화면을 우측의 화면처럼 만들고 싶다 !! 어떤 코드가 떠오르는 가? 나는 다음과 같은 코드가 떠올랐다..! HStack { Text("Hello, World!") Spacer() } 그럼 이런 화면은 ? 나는 .. 이런 코드가 떠올랐다 ! VStack{ HStack { Text("Hello, World!") Spacer() } HStack { Spacer() Text("Hello, World!") } } ..! 근데 위 코드들이 가독성이 좋은 가..? NOOO !! 바로 위에서 봤던 예시는 spacer 없이 frame을 이용해서 간단하게 나타낼 수..
개발을 하다보면 이런식으로 Color 설정을 위해 긴 코드를 작성하기도 한다. 하지만 해당 색깔이 어떤 컬러인지 직관적으로 확인하기도 어렵고, 여러 컴포넌트에서 사용이 된다면 재사용성 또한 떨어진다. 게다가 만약에 dark mode와 light mode color를 구분해서 개발하고 싶다면...? 본 포스팅은 이를 위한 내용이다 ! 1) Asset에서 색을 좌) light mode , 우) dark mode 로 설정합니다. +) 이 색은 “CustomColor”라고 이름 지었습니다. 2) Asset에 추가했던 color를 불러올 수 있습니다 ! But,, 이렇게 "CustomColor"처럼 String으로 넣었을 때는 오타 발생가능성이 있을 수도 있겠죠..? 3) Color을 extension해서 cus..
나도 dark mode 를 반영한 앱을 만들어보고 싶었고 그래서 preview에서 dark mode 색을 확인해야 했다 ! Dark mode HIG 1) 기존 lightmode에서 보이는 View 2) inspector를 사용하여 Darkmode를 설정할 수 있습니다. 이렇게 darkmode를 설정하자, 좀 더 어두운 green 컬러로 좀 더 어두워지신 게 느껴지시나요 ? ( 초록색 컬러는 custom color 포스팅에서 light 모드와 dark 모드 두가지 color로 설정해놨습니다 ! ) inspector에서 설정한 대로 프리뷰 코드에서도 다크모드가 보이도록 코드가 추가된 것을 확인할 수 있습니다. 4) 추가로 프리뷰를 lightmode와 darkmode 같이 보고싶다면, 이렇게 lightmode..
Input & Event Modifiers에는 많은 녀석들이 있지만, 오늘은 onAppear vs onRecieve 이 두녀석을 비교해 보고자 한다. 1) onchange onchange 이 녀석은 View Life Cycle에 속해 있는 아이이다. 정의를 살펴보자면,, @inlinable public func onChange(of value: V, perform action: @escaping (_ newValue: V) -> Void) -> some View where V : Equatable 어떤 값이 변했을 때 action을 취하도록 하는 modifier이다. 너무 긴 running time의 action이 필요하다면 background queue를 dispatch 해야 한다. ( 이 부분은 나중..
이번 포스팅에서는 @EnvironmentObject에 대해 알아보려 한다. 만약.. @StateObject와 @ObservedObject에 대해 모른다면 이전 포스팅 내용을 보고 공부를 하고 오는 게 ..!! 왜 @EnvironmentObject가 필요? @StateObject와 @ObservedObject를 사용할 때에는 자식뷰 N에서 사용하기 위해서는 계속 자식뷰1->자식뷰2->자식뷰3 으로 ObservableObjec를 넘겨주는 작업이 필요했다. 근데 만약에 자식뷰2,3,4에서는 A가 필요없는데 자식뷰 5에서 필요하다면..? 그래도 자식뷰2,3,4를 거쳐 자식뷰5까지 A를 전달해줬어야 한다. 그래서 나타난 게 ! @EnvironmentObject ! 요 칭구는 그림에서 봐도 알겠지만, 중간 중간에 ..
UserDefault vs AppStorage : UIKit 에서 userDefault를 사용했더라면, swiftUi에서는 appStorage를 사용한다! (appStorage는 property wrappers) 새로 추가된 거라면 무언가가 좋아졌다는 의미겠쥬..? UIkit에서 유저디폴트를 저장하고 업데이트 하는 걸 개발자가 코드로 짰어야 했다면 (명령형) swiftUI에서는 그냥 appStorage 쓰면 알아서 해준다는 것 ! (선언형) UIKit 공부하신 분이 아니고 appStorage가 처음이라면 굳이 userDefault 사용법과 swiftUI 사용법을 비교하지는 않아도 ... 되지 않을까.. 우선 , appStorage가 무엇인지, 그리고 어떻게 써야 하는지를 알아야 한다고 생각합니다.. 그리..
오늘은 @StateObject와 @ObservedObject의 차이에 대해서 알아보려고 한다. @StateObject와 @ObservedObject의 등장 배경 기존의 @ObservedObject는 SwiftUI가 View를 다시 랜더링 할 때 의도하지 않은 초기화가 발생하는 문제가 존재했다. 그리고 이 문제를 해결하기 위해서 @StateObject가 나왔다 ! 다음과 같은 view를 만들어보면서 !! 둘의 차이와 언제 무엇을 사용해야 하는지 알아보자. ObservableObject -> ViewModel 만들기 우선 ObservableObject 프로토콜을 준수하여 ViewModel을 만든다. 이제 이 RiverViewModel을 바라보고 있는 객체는 @Published Attribute로 선언된 da..