위젯의 배경에 투명도를 부여해서 단순 불투명한 배경을 만드는 것이 아니라 아래와 같은 블러처리 같은 느낌을 구현해보고자 했습니다. (애초에 다크모드에 따른 위젯의 기본 배경도 변경되고 이는 바꿀 수 없습니다. 대신, 위에 색을 가진 뷰를 하나 얹는 것이죠...) 결론적으로 얘기하면 써드파티의 앱이 구현하도록 지원하지 않고 있습니다. 비슷한 질문은 여러 포럼에서 등장하였지만, 지원하지 않는 기능라고 답변을 주고 있었습니다. 뿐만 아니라 위젯의 배경자체를 투명하게 만들 수 없었습니다. (위젯 자체의 기본 배경을 라이트모드는 하얀색, 다크모드는 검정색으로 지원하고 있었습니다. 또한, background 와 관련된 modifier 를 어디에 위치시키든 조정할 수 없었습니다🥲) Blurred widget back..
ViewBuilder Closure에서 View를 구성하는 custom parameter attribute 그럼이제 앞에서 말한 예를들어 HStack View Builder 는 무엇이냐! 다음은 HStack 의 이니셜라이저입니다. @inlinable public init(alignment: VerticalAlignment = .center, spacing: CGFloat? = nil, @ViewBuilder content: () -> Content) 어... body 라는 단어는 뭔가 있나요? 왜 var body 만 가능해요? body 를 사용하지 않으니 protocol 을 채택하지 못한다고 에러가 나오네요! body 는 암시적으로 @ViewBuilder 로 선언되어있기 때문에 클로저에서 뷰를 구성할 수..
내용 Podcasts New&Noteworthy(최신 및 추천 항목) 아이템을 길게 누르면 등장하는 이것에 대해서 알아보자! 앞서, Menu 구조체를 통해서 위와 비슷한 메뉴창을 구현해보았습니다. SwiftUI) Podcasts 클론코딩 - Menu 구현 그런데, Menu 와 동일한 menu 창을 띄우지만 해당 뷰가 불투명한 배경을 가진채 부각되는 점이 다릅니다. 그래서 HIG 에서 안내해준 Context Menu 라고 판단했습니당! Context Menu 에 대해서 HIG 로 알아보자! 🔥 HIG - Context Menus iOS 13 이후부터 인터페이스를 복잡하게 만들지 않고, onscreen items 와 관련된 추가 기능에 액세스할 수 있도록 할 수 있습니다. Context menus 는 Pee..
GeometryReaderTutorial-iOS Apple Developer 에서 제공하는 SwiftUI 튜토리얼를 진행하면서 GeoametryReader 에 대해서 다음과 같이 설명하는 것을 읽었습니다. GeometryReader 는 무엇일까요? 🧬 To provide relative size information of a parent view to its child views, you can use a GeometryReader. : 상위 뷰의 상대적 크기 정보를 하위 뷰에 제공하려면 GeometryReader 를 사용할 수 있습니다. 왜 사용하나요? 저희가 VStack, HStack, ZStack 과 같은 View Builder 에 하위뷰들을 넣게되면 별도의 설정없이 화면에 자동으로 보여줍니다. 이..
내용 SwiftUI 사용해서 Podcasts(팟캐스트) 앱의 클론코딩을 진행했다. 아래의 Menu 를 구현해보자! 해당 컴포넌트는 Menu 이다. 개발자 문서를 통해서 알아보자. Menu A control for presenting a menu of actions. Overview 다음 코드는 세 개의 버튼으로 구성된 Menu 와 세 개의 버튼을 포함하는 하위 메뉴를 보여줍니다. // action 은 커스텀 메서드입니다. Menu("Actions") { Button("Duplicate", action: duplicate) Button("Rename", action: rename) Button("Delete…", action: delete) Menu("Copy") { Button("Copy", action..
내용 ForEach 로 리스트를 구성하던 중 랭킹이 필요했다. 랭킹은 해당 topShows(array 데이터) 의 index 로 다루면 되기 때문에 데이터에 포함시키지 않았다. 그런데 다음과 같은 경고가 등장했다. 무엇일까? 🔥 Non-constant range: argument must be an interger literal Non-constant range: not an integer range 둘다 일정하지 않는 범위(상수 범위가 아니다.)라면서 경고를 던집니다. topShows 현재 이니셜라이저를 통해서 초기화 받는 var 로 선언되어 있습니다. .indices : 오름차순의 컬렉션을 subscribe 하는데 유효한 인덱스 해결? id 파라미터를 등록해주었더니 경고가 사라졌습니다. struct ..
- 서버통신
- WWDC22
- async/await
- configurable widget
- CloneCoding
- WWDC
- Notification
- MOYA
- WidgetKit
- YPImagePicker
- Swift
- github
- Protocol
- UserDefaults
- Firebase
- MVVM
- 2022 KAKAO TECH INTERNSHIP
- RxCocoa
- urlsession
- Algorithm
- OpenSourceLibrary
- APNS
- containerBackground
- projectsetting
- IOS
- Objective-C
- SwiftUI
- watchOS
- Widget
- rxswift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Total
- Today
- Yesterday