일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TCA
- uikit
- spritekit
- 웹
- SwiftUI
- 멋사
- 영남대
- 스위프트
- cs
- 대외활동
- 멋쟁이사자처럼
- widget
- composable architecture
- Protocol
- 운영체제
- 알고리즘
- c++
- 후기
- 문법
- 1일1알골
- 컴퓨터그래픽스
- Swift
- 위젯킷
- 스유
- 백준
- dispatchqueue
- 네트워크
- widgetkit
- swift concurrency
- 리액트
- Today
- Total
목록스유 (5)
맛동산이
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bo0esH/btr9NiktM7h/3T4sCJqlROkVEbBnZBC0G1/img.png)
SwiftUI에서 기본적으로 제공하는 화면전환 방식은 기존의 UIKit과 동일하게 Naviagtion, Tap 그리고 sheet가 있다. 즉 present방식과, push방식이 있다는 말이다. 1. NavigationLink를 이용한 화면 이동 NavigationLink를 사용하면, 버튼이나 텍스트 등을 탭하여 다른 뷰로 이동할 수 있다. 해당방식은 Push이다. 예시코드 swiftCopy code struct ContentView: View { var body: some View { NavigationView { VStack { NavigationLink(destination: DetailView()) { Text("Go to Detail View") } } } } } struct DetailView:..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/C3goz/btr9OxHUXqV/KEWy3R0fOANCISnzS9dYok/img.png)
항상 공부는 질문에서 시작된다. 왜 SwiftUI의 첫번째 구문에 var body: some View 인가 에 대해서 그러면 some이라는 키워드가 뭔가에 대해서 궁금해서 공부를 하게 되었더니, Opaque타입이라는 게 있었다. Opaque타입을 이해하면 some을 알수있다나 뭐라나. 그래서 공부하게 되었다. opaque타입을 이해하기 위해서는 우선적으로 generic을 이해할 필요가 있다. generic(지네릭) 지네릭은 함수를 호출할때 type을 type parameter를 통해서 정해주게 된다. 즉 지네릭은 함수를 호출할때, 호출자가 placeHolder의 해당 타입을 추론해서 정해주는 역할을 하게 된다. 여기서의 placeHolder란 로된것을 의미하며, 매개변수를 받는 것을 의미한다. 지네릭에서..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/blchg6/btr62HzOBGU/IroydFk4zbwxGmdlBtydek/img.png)
회전하는 애니메이션이나, 혹은 변경되는 애니메이션을 추가하고 싶을때 사용하고 싶어서 애니메이션에 대해서 공부를 해보자! animation(_: , value: ) 우선 animation은 instance Method이다. animation은 modifier의 일종이며, 동일하게 어떠한 뷰를 받았을때, 해당 애니메이션을 처리한 새로운 뷰를 리턴하게 된다. 따라서 animation의 구현부는 다음과 같다. func animation( _ animation: Animation?, value: V ) -> some View where V : Equatable Animation은 두개의 파라미터를 받게된다. animation : animation은 어떠한 animation을 수행할것인지에 대한 파라미터이다. va..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b2qToL/btr6eTvbUSf/JxOVvxKspKKf3g8EYUsj90/img.png)
먼저 SwiftUI는 반응형프로그래밍을 하기 위한 프레임 워크라는것을 이해하면 좋다. 기존의 MVC가 아닌 MVVM으로 프로그래밍을 할때 중요한것은 ViewModel과 View가 어떻게 연결되어있고, 서로 관찰하는지에 대해서 고민을 해야하며, 해당 데이터 바인딩을 어떻게 해줄지가 중요하다. 기존의 UIKit에서는 이러한 문제점을 RxSwift라는 3th party library를 사용해서 해결하였는데, (최근에는 콤바인등… ) SwiftUI는 기본적으로 잘 설계되어 있어서 이러한 데이터 플로우에 대해서 이해하는 것이 굉장히 중요하다고 생각한다. 따라서 오늘은 ObservableObject, ObservedObject, StateObject에 관해서 공부를 해보자! ObservableObject Obser..
Source of Truth란??? SwiftUI에서의 Source of Truth란 데이터의 일관성과 정확성을 유지하는 중요한 개념을 의미한다. SwiftUI앱 내에서 사용자 인터페이스(UI)는 데이터 모델에 바인딩 되어있다. 이말은 기존의 UIKit과 다르게 SwiftUI는 데이터모델인 @State에 UI가 바인딩되어 있기 때문에 UI는 데이터 모델의 변경에 의해서 자동으로 반응하고, 변경된다. 하지만 이렇게 UI를 변경하는 상태가 여러곳에서 복사되고 변경되고 사용되어 진다면, 이는 사용자 경험(UX)의 일관성이나 정확성 유지에 굉장히 취약해 진다. (사이드 이팩트가 발생함) 따라서 SwiftUI에서는 SwiftUI에서는 보통 @State, @Binding, @ObservedObject, @Envir..