iyOmSd 202

[SwiftUI] CarouselView 근데 이제 UIKit을 곁들인...

iOS16기준으로 적용된 글입니다 CarouselView를 만들면서 고민했던 내용을 정리해보려합니다. 이 뷰가 어떤거나면요배너같은거를 페이징하면 계속 무한으로 보여지는 아래같은 뷰에요SwiftUI로는 위와같은 뷰를 만드는데 한계가 있었어요다른 글들을 참고도 해보고 생각도 해봤지만GeometryReader + offset을 이용해서 한다던가TabView를 사용한다던가동작은 그럴싸하게 보일 수 있지만  마지막인덱스 -> 첫인덱스로 다시 돌려야하는 내부로직이 돌아갈때(무한 스크롤을 위해)자연스럽게 스크롤되지 않는 부분이 존재해요원하는 시점에 처리를 할 수 없는게 가장 큰 원인이라고 생각해요 이 부분은 아마 iOS18에서 onScrollPhaseChange가 추가되서해결 될수 있을지도 모르지만대부분 서비스는 타..

[SwiftUI] onScrollVisibilityChange 뷰 노출 이벤트

iOS18+에서부터 사용가능한 API를 간단하게알아보려합니다. 지금까지 스크롤뷰에서 특정 뷰가 노출됬다를 표시할땐onAppear으로만 체크가능했고 혹은 특정지점에 뷰를 하나 숨겨서 체크해왔엇죠!LazyStack을 쓰지않으면 로드시 모두 onAppear가 실행되서신경써야했구요! 하지만 이번에 알아볼 onScrollVisibilityChange는뷰가 최소 몇% 노출되면 액션을 처리 할 수 있는 함수에요 threshold뷰의 몇%가 보이면 정의된 action이 실행될 것인지를 정합니다.기본값은 0.5로 뷰의 반이 보이면 action이 실행되요 actionthreshold만큼 뷰가 보이거나반대로 스크롤해서 threshold만큼 뷰가 안보여졌을때실행될 작업을 정의합니다. action에 Bool값으로해당 %만큼 뷰..

[Swift] WWDC24 Demystify explicitly built modules

Demystify explicitly built modules 세션을 정리한 글입니다 Modules기본적으로 모듈은 코드 배포의 단위이며 라이브러리나 프레임워크의 인터페이스를 설명해 줍니다 Swift 대상에는 모듈을 구성하는 여러 Swift 파일이 포함되고 일반적으로 단일 대상이나 프레임워크의 모든 Swift 소스 파일은 동일한 모듈에 포함됩니다모듈의 인터페이스는 Swift에 액세스 지정자로 명시적 표시됩니다클래스와 해당 변수가 public으로 표시되어 임포터에게 보여집니다 모듈은 다른 모듈을 가져올 수도 있으며 전체 프로젝트에서 비순환 모듈 그래프를 형성합니다 Swift 컴파일러는 사용자가 작성한 외부 인터페이스를 가져와 인터페이스만 포함된 텍스트 형식의 .swiftinterface 파일로 요약합니다 ..

iyOmSd/Title: Swift 2024.11.26

[SwiftUI] Previewable, PreviewModifier 프리뷰 데이터 공유하기

Preview에서 사용가능한 개념을 알아보려합니다.Preview에서는 동적인 상태 값을 추가하는게 번거로웠었는데요#Preview { TextField(text: .constant("")) { Text("입력하세요") }}예를들어 이런 Binding코드에대한 동적인 값을 넣어주기가 힘들었죠하지만 그 부분을 해결해준게 @Previewable 매크로 입니다 Previewable #Preview { @Previewable @State var text: String = "" TextField(text: $text) { Text("입력하세요") }}#Preview 클로저 안에 넣어주기만 하면 끝이에요프리뷰에서만 해당 상태값을 사용할 수 있어요정말 간편하죠 #Pr..

[Swift] WWDC24 Bring expression to your app with Genmoji

Bring expression to your app with Genmoji세션을 정리한 글입니다.새로 생긴 genmoji의 활용법과 텍스트처럼 사용시 웹이나 백엔드와는 어떻게 상호작용하는지 알아봅니다.  Express yourselfExpressive이모티콘은 표현력이 풍부하고 텍스트 단락 전체를 단 하나의 이모티콘으로 대신할 수 있음! (👍) Versatile이모티콘 하나로 제대로 전달되지 않을 땐 적절한 조합을 찾으면 완벽해짐!  (🥒😱) Playful텍스트와 결합되면 더 강력해지죠 이모티콘도 텍스트임! (밖에비온다 우산없는데..😱😱😱) Enhances text이미지와 달리 이모티콘은 문장의 일부이며 주변 텍스트와 어울리도록 표현이 조정됩니다 (폰트적용)  Emoji enhancements..

iyOmSd/Title: Swift 2024.11.24

[SwiftUI] WWDC23 Beyond scroll views

Margins and safe areaScrollView에 패딩을 넣으면 ScrollView가 인셋되긴 하지만 스크롤할 때 콘텐츠가 잘림ScrollView 자체를 인셋하는 대신 ScrollView의 콘텐츠 여백을 확장하려고 합니다새로 생긴 safeAreaPadding 수정자를 쓰면 됩니다.이건 일반 padding 수정자와 똑같이 동작하기는 하지만 콘텐츠가 아니라 안전 영역에 패딩을 넣기 때문에 ScrollView가 전체 너비에 적용되어 다음 아이템이 살짝 엿보이게 됩니다 safe area는 앱이 작동하는 기기에 주로 있고 safeAreaPadding이나 safeAreaInset 수정자 같은 API에도 있을 수 있습니다 ScrollView는 safe area를 분할해 콘텐츠에 적용하는 여백으로 만듭니다여기..

[Swift] WWDC24 Explore machine learning on Apple platforms

Explore machine learning on Apple platforms세션을 정리한 글입니다.  공간 컴퓨팅을 위한 제스처 인식, 이미지 캡처 시 인물 사진 모드 지원, 건강을 위한 심전도 및 심박수 모니터링,등 수많은 혁신적인 기능의 근간에는 첨단 머신 러닝과 AI 모델이 있습니다 머신 러닝과 AI 덕분에 이 모든 기능을 구현할 수 있으며, 이러한 기능을 구동하는 모델은 온전히 기기에서만 실행됩니다따라서 사용자 데이터를 기기에 보관하여 개인정보 보호를 강화하는 동시에 빠르고 효율적으로 상호 작용하는 경험을 제공할 수 있습니다온디바이스 머신 러닝은 Apple Silicon의 강력한 성능 덕분에 가능합니다   Apple InteligenceApple Intelligence를 통해 흥미로운 발전이 이..

iyOmSd/Title: Swift 2024.11.22

[SwiftUI] WWDC24 Work with windows in SwiftUI

Work with windows in SwiftUI세션을 정리한 글입니다. 윈도우는 앱 콘텐츠를 담는 컨테이너입니다위치를 재조정할 수 있는 것처럼크기를 조절하거나닫을 수 있습니다 설명할 개념은 iPadOS, visionOS macOS와 같은 멀티 윈도우 플랫폼에 적용됨(이 세션에서는 visionOS를 중심으로 다루니 참고하세요!)  Fundamental개별 윈도우를 통해 앱의 여러부분 동시 사용가능동일 인터페이스, 인스턴스로 강력한 성능 갖음크기조절과 위치재종 배율 조정이 가능 visionOS에서 볼륨 윈도우 스타일로 윈도우에 3D 콘텐츠를 포함할 수 있습니다여러 윈도우 사용도 좋지만 TabView 같은 단일 최상위 뷰로 환경을 단순화 가능   각 id에 맞는 윈도우를 열 수 있음 이 예시에 두 가지 새..

[Swift] WWDC23 Debug with structured logging

Tour Debug Console위의 로그에 관련 추가정보를 보고싶다면 왼쪽하단의 메타데이터 옵션버튼을 누르고 선택하면됨로그아래에 메타데이터가 배치되는걸 볼 수 있음 해당로그를 선택하고 스페이스 바를 눌러 빠르게 정보를 볼 수 있음 새 디버그 콘솔의 진짜 강점은 필터링 기능입니다 1.필터바에 직접 필터를 입력해도 됨2.특정 타입로그에 대한 필터에 빠르게 접근하여 확인할 타입선택가능(debug, info, notice ,error, lldb, stdio, 등)3.필요하거나 불필요한 로그를 우클릭하면 유사한 로그를 숨기거나 보여주는 옵션을 제공합니다특정 로그 집합을 더 자세히 다루거나 뷰에서 제거할 수 있음  Live debugging문제상황발생시 문제원인 찾는 예시를 보여주며 진행합니다이부분은 텍스트로 간..

iyOmSd/Title: Swift 2024.11.20

[SwiftUI] WWDC24 Swift Charts: Vectorized and function plots

Swift Charts: Vectorized and function plots세션을 정리한 글입니다. 이제 Swift Charts를 사용하면 앱에 수학 함수를 플롯 작업하며 데이터 이상의 요소를 시각화할 수 있습니다 2개의 새로운 API를 소개합니다LinePlot은 단일 함수를 시각화하고 AreaPlot은 두 함수 사이의 영역을 채웁니다 예시로각 요소에 대한 BarMark를 사용하여 태양광 패널의 용량 밀도를 시각화하는 히스토그램을 만들었습니다이 히스토그램(막대차트)은 그 용량 밀도가 정규 분포일 수 있음을 나타냅니다 (정규분포: 평균점을 기준으로 좌우대칭인 형태의 자료형태) 정규 분포 곡선의 점을 계산하는 함수를 정의하고LinePlot API를 사용하여 이를 그리면이렇게 곡선형태를 위에 덮어쓸 수 있습..