iyOmSd 202

[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

[Swift] WWDC24 Meet Swift Testing

Meet Swift Testing 세션을 정리한 글입니다. Swift Testing은 새로운 오픈 소스 패키지로 Swift를 사용해 코드를 테스트할 수 있습니다Swift Testing은 Swift용으로 만들어져 동시성 및 매크로와 같은 최신 기능을 도입했습니다 Linux와 Windows 등 모든 주요 플랫폼을 지원합니다 Building blocks@Test 속성이 첫 번째 구성 요소입니다함수가 테스트임을 나타내죠 이것을 추가하면 Xcode가 인식하고 옆에 Run 버튼을 표시합니다테스트 함수는 @Test 속성을 가진 일반적인 Swift 함수입니다전역 함수일 수도 있고 유형의 메서드일 수도 있습니다비동기 또는 예외로 표시하거나 필요한 경우 전역 액터로 격리할 수 있습니다 @testable 속성을 사용해서 테..

iyOmSd/Title: Swift 2024.11.14

[Swift] WWDC22 Meet Transferable

Meet Transferable세션을 정리한 글입니다. Transferable공유 및 데이터 전송을 위해 어떻게 모델을 직렬화하고 역직렬화하는지 설명하는 Swift 우선 선언형 방식입니다 Anatomy of Transferable실행 중인 두 애플리케이션을 가정해 봅시다그리고 사용자가 복사 및 붙여넣기 ShareSheet, 단순 드래그 또는 다른 앱 기능을 통해 한 앱에서 다른 앱으로 어떤 정보를 전달한다고 하죠서로 다른 두 앱 간에 무언가를 보낼 때 이 모든 바이너리 데이터가 넘어갑니다이 데이터를 보낼 때 중요한 부분은 해당 데이터가 무엇인지를 결정하는 것입니다그건 텍스트나 영상, 가장 좋아하는 여성 엔지니어 프로필 또는 전체 아카이브일 수 있죠 그리고 데이터의 용도를 설명하는 UTType도 있고요 다..

iyOmSd/Title: Swift 2024.11.13

[SwiftUI] WWDC24 Enhance your UI animations and transitions

Enhance your UI animations and transitions 세션을 정리한 글입니다. TransitionsiOS 18에는 새 확대/축소 전환 효과가 있습니다 이 새 전환 효과를 사용하면 탭하는 셀이 수신 뷰로 바뀝니다 단순한 시각적 모습이 아니라 지속적으로 상호 작용하므로 처음부터 또는 전환 중에 탭하고 드래그해서 이동할 수 있게 됩니다확대/축소 전환 설정두 가지 작업을 해야 합니다첫 번째, 원한다는 표현을 합니다즉, 표시된 뷰에 navigationTransitionStyle 편집자를 추가하고 확대/축소 전환을 지정합니다두 번째로, 이 편집자를 소스 뷰에 연결하여 시스템이 확대/축소할 뷰를 알 수 있게 합니다두 위치 모두에서 동일한 식별자와 네임스페이스를 지정합니다 UIKit으로 전환적용..

iyOmSd/Title: Swift 2024.11.12

[Swift] WWDC24 Consume noncopyable types in Swift

Consume noncopyable types in Swift 세션을 정리한 글입니다. Copyingstruct Player { var icon: String}func test() { let player1 = Player(icon: "🐸") //1 var player2 = player1 //2 player2.icon = "🚚" //3 assert(player1.icon == "🐸")}위와같은 코드가있을때 1단계식보면플레이어1 🐸 생성플레이어2도 1과 동일하게 생성, 플레이어1의 복사본을 만든다는 의미 (player1 = player2 = 🐸)플레이어2의 아이콘변경시 플레이어1로부터 독립적인 플레이어를 변경하는것임 (player1 = 🐸, player2 = 🚚)하지만 Player가 참..

iyOmSd/Title: Swift 2024.11.11

[Swift] WWDC24 Explore Swift Performance(2)

Putting it together주요기능 구현 살펴보기Dynamically sized typeC 구조체의 크기는 항상 고정적이지만 Swift 유형의 크기는 런타임에 결정될 수 있습니다 두 가지 경우가 있습니다 첫째, SDK의 많은 유형은 미래의 OS 업데이트에서 저장된 속성이 추가되거나 변경될 수 있으며 Foundation의 URL 같은 유형도 여기에 포함되죠 따라서 이러한 유형의 레이아웃은 컴파일 타임에 알려지지 않는 것으로 취급해야 합니다 두 번째로 제네릭 유형의 유형 매개변수는 어떤 가능한 표현의 어떤 유형으로든 대체될 수 있어야 하므로 마찬가지로 레이아웃을 모르는 것으로 취급해야 합니다 두 번째 규칙에는 예외가 있는데 유형 매개변수가 특정 클래스로 제한되면 클래스 유형의 표현을 가져야 한다는 것..

iyOmSd/Title: Swift 2024.11.10

[Swift] WWDC24 Explore Swift Performance(1)

WWDC24 Explore Swift Performance를 보고 정리한 글입니다! 🙇‍♂️ C언어에서는 깔끔한 기계어 코드를 얻을 수 있지만 Swift는 그렇게 간단하지 않습니다.코드를 잘 못 작성하면 메모리가 완전 난잡해집니다.대신 Swift는 C에서 제공하지 않는 다양한 추상화 기능과 클로저, 제네릭 등을 지원합니다 이러한 추상화 기능은 간단하게 구현되어 있지 않으며 명시적으로 malloc을 호출하듯이 명확한 비용을 알 수 없습니다What is Performance?만약 어떤 도구가 있어서 프로그램을 그 도구에 집어넣으면 하나의 숫자가 출력되고 그 숫자로 프로그램의 성능을 모두 알 수 있다면 얼마나 좋을까요Safari의 성능 점수가 9.2라고 출력되는것 같이 표시하고싶지만 그렇게 할 수는 없습니다..

iyOmSd/Title: Swift 2024.11.09

[SwiftUI] WWDC24 SwiftUI essentials 정리

wwdc24 SwiftUI essentials 정리로 노트하기 편한 음슴체를 사용했습니다! 🙇‍♂️ SwiftUI의 핵심기능Fundamentals of views뷰를 특별하게 만드는 3가지 특징Declarative 선언적선언적 프로그래밍과 명령형 프로그래밍은 상호배타적이지 않음선언적 코드를 사용하면 예상되는 결과에 집중가능명령형은 상태변경하거나 기존 선언구성요소가 없을때 유용함SwiftUI는 두가지모두를 수용함뷰는 단지 선언적 설명이므로 뷰하나를 여러개 뷰로 나누어도 앱성능이 저하되지않음Compositional 구성적재배열하는건 쉽다ViewBuilder클로저를 사용하여 컨테이너의 하위항목을 선언함 스유 모든 컨테이너뷰에서 사용되는 패턴이는 뷰모디파이어에서 중요한역할 함뷰에 수정사항을 적용하고 뷰의 모든..

[Swift] Xcode16 빌드시 CUICatalog initWithName:fromBundle:error: 런타임 에러

안녕하세요오늘은 간단한 에러처럼 보이지만 디버깅하기 힘든 에러를 접한 경험을 공유하려합니다!Xcode16이 나와서 swift6을 대응하려다가 만난에러입니다! Xcode15를 사용했을때 문제없이 빌드됬고 시뮬레이터, 실기기 모두 정상동작하는 상태에서 Xcode16을 다운받고 빌드했을 때 iOS16, iOS18인 기기에서는 문제없이 잘 동작했으나 iOS17인 경우에 런타임에서 죽는 현상을 발견했습니다. 원인도 모르겠고 정말 막막해서 엄청 알아보던 와중 드디어 한줄기의 빛처럼 발견한 글이 있었습니다.정확한 원인과 답은 찾지못했지만 모듈이름과 뭔가 연관있다라는 추측을 내포하는 글을 발견했습니다. 제 경우도 이에 해당할지도 모른다는 희망을 갖고 모듈이름을 바꾸고 적용한뒤에 실행했습니다.저는 "UI" 모듈을 사..

iyOmSd/Title: Swift 2024.11.07

[Swift] Python을 이용한 Excel -> Json 맵핑 스크립트 만들기

다국어를위해 로컬라이징을 사용하거나 어떠한 단어 혹은 정책들은 액셀로 관리하는 경우가 많은데요개발자 입장에서는 이파일을 보고복사해서 형식에 맞게 다시 옮겨적어서 전처리 과정을 거쳐서 데이터로 사용해야합니다.물론 이과정에서 누락 혹은 실수가 일어나서 휴먼에러가 도중에 생기기도하죠 이러한 과정을 자동화 시켜서 알아서 파일을 뽑아줄 수 있도록 스크립트를 작성해볼거에요전 파이썬을 잘모르기때문에..기본 코드는 지피티 선생님이 도와주셨습니다! 👏 우선 파이썬을 설치해야겟죠 터미널을 실행시키고 파이썬 라이브러리 설치합니다pip3 install pandas openpyxl 실행은 아래와 같은 명령어로 이뤄집니다(경로 체크해주세요!)python3 # python3 excelToJson.py Keyword.xlsx 액..

iyOmSd/Title: Swift 2024.09.29