일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 글쓰기
- 12회차
- 유데미
- Postman
- 개발회고
- ios
- git
- 스유
- 회고
- 비동기
- iOS개발
- Swift
- ViewBuilder
- 글또x코드트리
- RxSwift
- 글또9기
- 리액트입문
- 클린코드
- 왕초보
- 글또10기
- 개인앱
- Swift알고리즘
- UIKit
- 글또
- 초보iOS개발자
- github
- 수정중
- SwiftUI
- JavaScript
- 알고리즘
- Today
- Total
목록Apple/SwiftUI (7)
playground_avec coding

WidgetKit의 존재 목적은 무엇인가? WidgetKit은 단순히 Widget 기능만 관리하는 것이 아니라, watch 앱 화면 디스플레이를 구성하는 Complication, 폰 잠금화면에서 해제했을 때 나오는 제어 센터, 등을 관리하는 apple controls를 활용하려고 할 때 WidgetKit 라이브러리를 사용해야한다. 앱의 콘텐츠를 노출할 수 있는 범위- 홈, 잠금화면: Timeline 기반- Live Activity: Push / ActivityKit- 애플 와치 컴플리케이션 : Timeline + ClockKit 그치만 여기서 다뤄 볼 주제는 홈 화면에서 사용자의 편의를 위해 위젯을 추가해 사용해 보는 부분에 대해 언급해보려고 한다.폰 화면의 바탕 배경을 지그시 누르면, 편집 화면이..

Xcode 에서 Project 생성 시 - Multiplatform > App 선택하기, iOS 의 App 선택이 아니다. Process1. WeatherData.swift 파일에서 날씨 관련 Dummy Data(더미데이터 - 임시 데이터)와 TimelineEntry 타입 안에 설정될 날짜, 도시, 기온, 날씨 설명, 아이콘, 이미지들을 설정해준다. 2. ContentView.swift 파일에서 WeatherType 이라는 Hashable 타입의 구조체를 생성해준다. → NavigationLink 나 List 같은 SwiftUI 뷰를 사용시, 고유 비교가 필요한 경우를 위해 Hashable 채택→ Hashable 을 채택해야 NavigationStack dptj .navigationDestination(..
이전에 살펴보았던, State 프로퍼티는 뷰의 상태를 저장하는 방법을 제공하며 해당 뷰에만 사용할 수 있다.즉, 하위뷰가 아니거나 State Binding 이 구현되어 있지 않은 다른 뷰는 접근할 수 없다. 상태 프로퍼티는 일시적인 것이어서 부모 뷰가 사라지면 그 상태도 사라진다.ObservableObjectObservable 객체는 여러 다른 뷰들이 외부에서 접근 할 수 있는 지속적인 데이터를 표현하기 위해 사용된다.→ 객체가 변경되기 전에 내보내는 publisher(게시자) 가 있는 객체 유형class Contact: ObservableObject { @Published var name: String @Published var age: Int init(name: String, age: Int) { ..

SwiftUI 에서 Property Wrapper들의 종류가 적지 않은 걸로 안다. 앞에는 주로 @ 표시를 붙이고 사용하는데, 그 종류를 알아보기 앞서 Property Wrapper 가 가지는 의미에 대해서 알아봐야겠다. Swift 내에서 프로퍼티가 가지는 속성과 역할을 보면, Properties - Access stored and computed values that are part of an instance or type. 저장되거나 계산되는 인스턴스 또는 타입의 일부인 value(값)에 액세스(접근) 한다. 그렇다면, 속성을 감싸서 사용할 때 감싼 걸 가지고 와서 사용할 것 같은 프로퍼티 래퍼 이 녀석은 Property Wrapper A property wrapper adds a layer of s..

앞서 ViewBuilder의 개념에서 하위 뷰 생성 클로저에 매개변수에 대한 속성으로 사용해 해당 클로저가 여러 하위 뷰를 제공할 수 있도록 해준다고 한다. 는 걸 알아봤다. 그런데 뷰빌더를 어떻게 만들어서 갖다쓰는 걸까?! custom container view 를 만들어서 레고 블록처럼 가져다 쓸수 있다고 해야할까.. 하위 뷰는 뷰 선언부를 작고 가볍게 재사용할 수 있는 블록으로 나누는 방법을 제공한다. 하위 뷰에는 한계가 있는 컨테이너 뷰의 콘텐트가 정적이기 때문에 하위 뷰가 레이아웃(Layout) 에 포함될 시점에 하위 뷰에 포함될 뷰를 동적으로 지정할 수 없다. 우선 백문이불여일타라고, 눈으로 보고, 코드부터 짜봤다. @ViewBuilder 를 생성하기 위한 조건. 1. 라는 제너릭 타입같은 놈..

클로저에서 뷰를 구성하는 사용자 정의 매개변수 속성! @resultBuilder struct ViewBuilder ViewBuilder 를 하위 뷰 생성 클로저 매개 변수에 대한 매개변수 속성으로 사용하여 해당 클로저가 여러 하위 뷰를 제공할 수 있도록 해준다. 예를 들어, contextMenu 함수는 뷰 빌더를 통해 하나 이상의 뷰를 생성하는 클로저를 허용한다. NOTE 참고로,, contextMenu 는 watchOS 6.0 - 7.0 에서 deprecated(더 이상 사용되지 않음..) 되었따.. func contextMenu(@ViewBuilder menuItems: () -> MenuItems) -> some View where MenuItems : View Text("Turtle Rock") ..