2024/11 22

[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를 사용하여 이를 그리면이렇게 곡선형태를 위에 덮어쓸 수 있습..

[Swift] WWDC24 Bring your app to Siri

Bring your app to Siri세션을 정리한 글입니다.앱을 시리에 연결하는 방법을 소개합니다 IntroductionIntegrate with Siri시리를 사용하면 사용자가 기기 어느화면에서든 앱을 이용해 작업을 수행할 수 있음사용자들이 앱을 보고있을 때 신속하게 작업수행 할 수있도록 도와줌 Developing with Siri iOS 10부터 SiriKit이 도입되었습니다 덕분에 개발자는 시스템이 제공하는 인텐트를 통해 사용자가 이미 이용하는 Siri 기능을 앱에서도 사용할 수 있게 지원할 수 있습니다  iOS 16에서는 앱 인텐트가 도입되었습니다 이 새로운 프레임워크는 앱을 Siri, 단축어 Spotlight 등과 통합해 줍니다 앱이 기존 SiriKit 도메인과 겹치지 않는다면 앱 인텐트가 ..

iyOmSd/Title: Swift 2024.11.18