SwiftUI
-
SwiftUI - compositingGroupSwiftUI 2024. 3. 28. 18:57
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 compositingGroup에 대해 알아보겠습니다 🙋🏻 compositingGroup? compositingGroup은 SwiftUI에서 사용되는 뷰 모디파이어로 iOS 13 이상, 즉 SwiftUI를 쓰는 환경이라면 다 적용해볼 수 있어요! 이름에서도 알 수 있듯이 뷰들을 합성된 그룹으로 합쳐 래핑해주는 역할을 가집니다. func compositingGroup() -> some View 정의는 요러합니다. 뷰를 반환하는 여느 뷰 모디파이어와 동일하니 어려울것이 없어요! compositingGroup은 뷰가 렌더링되기 전 해당 뷰의 상위 뷰들에서 발생하는 투명도 및 블렌드 모드같은 컴포지팅되는 효과들을 적용시켜줍니다. compositingGro..
-
SwiftUI - AppStorageSwiftUI 2024. 3. 7. 19:10
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI에서 사용되는 AppStorage에 대해 학습해보겠습니다 🙋🏻 이번 포스팅의 내용은 UserDefaults를 안다는 가정하에 진행하며, 내용은 짧습니다ㅎㅎ AppStorage? AppStorage는 UserDefaults로 부터 값을 반영하고 값 변경에 대한 뷰를 무효화하는 프로퍼티 래퍼로 사용되는 구조체입니다. iOS 14이후부터 사용할 수 있고 구현된 정의는 아래와 같습니다. 즉, 쉽게 생각하면 UserDefaults의 SwiftUI용이라고 보면 됩니다. @frozen @propertyWrapper struct AppStorage 기본적인 이니셜라이저 형태는 이러해요. init( wrappedValue: Value, _ key: String, ..
-
SwiftUI로 동적 뷰 레이아웃 구성하기SwiftUI 2024. 1. 18. 18:33
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI로 동적 뷰 레이아웃을 구성하는 방법에 대해 소개해볼까 합니다 🙋🏻 본격적으로 알아보기에 앞서 어떤걸 해보고 싶은지 한번 스포하고 갈께요! 요런 뷰를 구성해보려 하거든요! 😃 언뜻보기에는 간단해보이나, 세부 조건들이 있어요. 1️⃣ 해당 칩스(뱃지)에 들어간 Text의 길이만큼 칩스가 다 노출되어야함 2️⃣ 화면을 벗어나거나 짤리면 안됨 3️⃣ Text의 길이가 길어서 배치할 수 없으면 다음 행으로 이동하여 배치 4️⃣ 스크롤 없이 화면에 모두 노출해야함 이런 Text 길이에 따라 유동적으로 칩스 뷰를 배치하는 그런 구현을 해보려고 합니다! 여러분들이라면 이 뷰를 어떻게 구현하실것 같으신가요? 🤔 음... 그냥 LazyVGrid 적절히 잘 쓰면 되..
-
SwiftUI에서 shadow와 blur 사용하기SwiftUI 2024. 1. 8. 19:30
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 자주 사용하고 있었는데 한번도 글로 정리해보지 않았던 shadow와 blur 모디파이어에 대해 정리해보겠습니다 🙋🏻 주의 ⚠️ 내용 다소 짧음! 공식문서들을 기반으로 알아볼거에요! 그럼 shadow부터 가시죠 🚀 shadow SwiftUI에서 shadow 모디파이어는 뷰에 그림자를 추가해줍니다. 조금 더 뷰가 입체적으로 보일 수 있기에 저는 다른 뷰들과 조금 영역을 구분되어 보여줄때 자주 사용합니다! SwiftUI를 적용할 수 있는 iOS 13.0 이상 버전이라면 사용 가능합니다. func shadow( color: Color = Color(.sRGBLinear, white: 0, opacity: 0.33), radius: CGFloat, x: CGFloat ..
-
SwiftUI - trim & maskSwiftUI 2023. 12. 21. 19:20
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI의 trim과 mask에 대해 학습해보려고 합니다 🙋🏻 우선 이 두개의 모디파이어를 학습해보려는 이유는 간단했어요! 도형이나 이미지를 잘라서 표시하거나 진행 상황에 따라 가려진 부분을 점진적으로 채워나가려는 구현을 알아보다가 이 두가지를 찾았습니다. trim과 mask의 결과뷰는 비슷해보이지만 동작하는 방식에서 차이가 있기에 우선 둘 다 어떻게 사용하는것인지 알아보시죠! 먼저 trim부터 알아보겠습니다. trim(from:to:) trim 메서드는 도형의 특정 부분을 잘라내 보여주는 역할을 해줍니다. 해당 메서드는 Shape 프로토콜을 준수하는 모든 도형에 사용할 수 있어요! trim 메서드의 정의는 이렇습니다. func trim( from sta..
-
SwiftUI에서 VoiceOver 사용하기SwiftUI 2023. 11. 23. 10:25
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI에서 VoiceOver를 적용하고 사용하는 방법에 대해 알아보려합니다 🙋🏻 이번 포스팅에서는 VoiceOver가 무엇이고 SwiftUI에서 어떻게 적용 및 사용되는지 알아보고 어떤 모디파이어들이 사용될 수 있는지 알아볼께요 😀 근데 갑자기 VoiceOver를 왜? 키오스크 및 모바일앱 장애인 접근성 제고를 위한 정당한 편의 제공 < 전체 < 보도자료 < 보도자 모든 국민의 건강, 삶의 질 향상을 위해 노력하는 보건복지부 홈페이지입니다. www.mohw.go.kr 정부에서 하라고 합니다ㅎ 요약하자면 이렇습니다. 【모바일앱】 ○ 모바일앱은 스마트폰, 스마트패드, 스마트워치 등 모바일기기에 탑재되는 응용소프트웨어로, 키오스크와 마찬가지로 고시에 따른 접..
-
BorderlessButtonStyle의 활용SwiftUI 2023. 10. 19. 08:35
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI의 버튼을 다룰때 스타일을 지정할 수 있는데요. 그 중 BorderlessButtonStyle을 알아보고 그 스타일을 어떻게 실전에서 적용하는 경우가 있을지 코드로 구현해보겠습니다 🙋🏻 우선 BorderlessButtonStyle에 대해 공식문서를 통해 알아볼까요? BorderlessButtonStyle 정말 해당 스타일의 의미는 보더 즉, 테두리를 적용하지 않은 버튼 스타일입니다. 기본적으로 Button의 buttonStyle 모디파이어를 통해 버튼 스타일을 제공하고자 할때, static 변수로 .borderless가 있기에 쉽게 사용할 수 있습니다. 이게 끝이에요 설명은 사실! 그럼 디자인적인것 외에 현업에서 이 BorderlessButtonS..