일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TCA
- dispatchqueue
- 영남대
- composable architecture
- SwiftUI
- swift concurrency
- 알고리즘
- 스위프트
- Protocol
- 네트워크
- 웹
- 컴퓨터그래픽스
- 문법
- uikit
- 백준
- 운영체제
- 1일1알골
- 후기
- 위젯킷
- 스유
- 리액트
- 멋사
- widget
- cs
- spritekit
- widgetkit
- c++
- Swift
- 대외활동
- 멋쟁이사자처럼
- Today
- Total
목록앱/SwiftUI (31)
맛동산이
항상 공부는 질문에서 시작된다. 왜 SwiftUI의 첫번째 구문에 var body: some View 인가 에 대해서 그러면 some이라는 키워드가 뭔가에 대해서 궁금해서 공부를 하게 되었더니, Opaque타입이라는 게 있었다. Opaque타입을 이해하면 some을 알수있다나 뭐라나. 그래서 공부하게 되었다. opaque타입을 이해하기 위해서는 우선적으로 generic을 이해할 필요가 있다. generic(지네릭) 지네릭은 함수를 호출할때 type을 type parameter를 통해서 정해주게 된다. 즉 지네릭은 함수를 호출할때, 호출자가 placeHolder의 해당 타입을 추론해서 정해주는 역할을 하게 된다. 여기서의 placeHolder란 로된것을 의미하며, 매개변수를 받는 것을 의미한다. 지네릭에서..
SwiftUI는 UIKit과 다르게 모든 뷰가 Struct로 선언되어 있다. 왜 그렇게 해야하며, 그렇게 설계한 이유가 궁금해서 공부하게 되었다. 먼저 염두해야하는 내용은 SwiftUI는 선언형 프로그래밍이라는것이다! 선언형프로그래밍은 함수형프로그래밍의 좀더 좁은 범위다. 그러면 늘 그렇듯 먼저 알아야하는 내용에 대해서 공부하자. 구조체와 클래스의 차이점 먼저 구조체와 클래스의 차이는 다음과 같다. 상속 가능여부 클래스는 상속이 가능하지만, 구조체는 상속이 불가능하다. 형식의 차이 클래스는 참조타입이지만, 구조체는 값 타입이다. 구조체는 메모리영역에서 stack영역에 저장이 되며, 클래스는 참조타입이기 때문에 heap영역에 저장이 된다. 값타입의 구조체는 값을 변경하려고 하면, 새로운 메모리를 할당하고 ..
회전하는 애니메이션이나, 혹은 변경되는 애니메이션을 추가하고 싶을때 사용하고 싶어서 애니메이션에 대해서 공부를 해보자! animation(_: , value: ) 우선 animation은 instance Method이다. animation은 modifier의 일종이며, 동일하게 어떠한 뷰를 받았을때, 해당 애니메이션을 처리한 새로운 뷰를 리턴하게 된다. 따라서 animation의 구현부는 다음과 같다. func animation( _ animation: Animation?, value: V ) -> some View where V : Equatable Animation은 두개의 파라미터를 받게된다. animation : animation은 어떠한 animation을 수행할것인지에 대한 파라미터이다. va..
Source of Truth란??? SwiftUI에서의 Source of Truth란 데이터의 일관성과 정확성을 유지하는 중요한 개념을 의미한다. SwiftUI앱 내에서 사용자 인터페이스(UI)는 데이터 모델에 바인딩 되어있다. 이말은 기존의 UIKit과 다르게 SwiftUI는 데이터모델인 @State에 UI가 바인딩되어 있기 때문에 UI는 데이터 모델의 변경에 의해서 자동으로 반응하고, 변경된다. 하지만 이렇게 UI를 변경하는 상태가 여러곳에서 복사되고 변경되고 사용되어 진다면, 이는 사용자 경험(UX)의 일관성이나 정확성 유지에 굉장히 취약해 진다. (사이드 이팩트가 발생함) 따라서 SwiftUI에서는 SwiftUI에서는 보통 @State, @Binding, @ObservedObject, @Envir..