wwdc

· iOS/Swift
Generic 모델링에서 시작합니다. 아래와 같은 Animal 프로토콜이 있을 때, 이를 사용하는 Farm struct의 메서드에서 Animal의 Concrete 타입으로 대체될 타입파라미터적합성을 따르도록 적용할 수 있습니다. protocol Animal { associatedtype Feed: AnimalFeed func eat(_ food: Feed) } struct Farm { func feed(_ animal: A) { // ... } } 혹은 아래처럼 후행 where절에서 프로토콜 적합성을 지정할 수 있습니다. where절은 디테일하게 requirement와 타입 관계를 작성할 수 있게 해줍니다. struct Farm { func feed(_ animal: A) where A: Animal {..
· iOS/Swift
https://developer.apple.com/videos/play/wwdc2022/110352/ Generic 모델링에 some/any를 적용하는 방법을 설명한 WWDC22 영상입니다. Farm을 시뮬레이션 하기 위한 예시. 추상화 도구들을 사용하기 전의 Concrete 타입의 예시부터 작성. Concrete 타입으로 먼저 모델링 Cow 구조체는 Hay(건초) 타입의 매개변수를 받는 eat()이라는 메서드가 존재하고, Hay 구조체는 Alfalfa 종류의 작물을 재배하기 위한 grow()라는 static 메서드가 존재. Alfalfa 구조체는 Alfalfa인스턴스에서 Hay를 수확할 수 있는 harvest() 메서드가 존재. Farm 구조체는 Cow에게 먹이를 줄 수 있는 feed() 메서드가 있음..
· iOS/iOS Dev
https://developer.apple.com/news/?id=z6fu1dcu List of APIs that require declared reasons now available - Latest News - Apple Developer Apple is committed to protecting user privacy on our platforms. We know that there are a small set of APIs that can be misused to collect data about users’ devices through fingerprinting, which is prohibited by our Developer Program License Agreement. To develope..
· iOS/Swift
이번 WWDC23의 Expand on Macros 세션의 전반부 정리. (https://developer.apple.com/wwdc23/10167) Swift Macro는 컴파일러를 수정하지 않고 Swift 패키지에 배포할 수 있는 방식으로 boilerplate코드를 제거하고 Swift에 고유 언어기능을 추가 가능. 4가지 목적 1. Macro를 사용할 때 매우 명확해야 할 것. 2종류의 Macro. FreeStanding Macro: 코드에서 다른 항목을 대신함. #(pound)기호로 시작 Attached Macro: 코드 선언에서 attribute로 사용됨. @(at)기호로 시작 Swift는 이미 #과 @를 사용해서 특정 컴파일러 동작을 나타내고 있지만, Macro로 이를 확장할 수 있게 만듦. #이..
· iOS/iOS Dev
CryptoKit Documentation: https://developer.apple.com/documentation/CryptoKit (WWDC19)Cryptography and your apps: https://developer.apple.com/videos/play/wwdc2019/709/ (Cryptography and your apps 세션의 Introducing Apple CryptoKit 파트의 정리) CryptoKit에서 할 수 있는 것 Hash 함수: SHA-256, SHA-384, SHA-512 Symmetric-Key Cryptography Message Authentication Code: HMAC Authenticated Encryption: AES-GCM(Chacha20Poly..
· iOS/iOS Dev
(Xcode 15부터는 최소 버전이 iOS12 입니다🤩 개발자의 Inner peace!) 그리고 Xcode의 용량이 대폭 줄어들었습니다! (하지만 시뮬레이터들 미포함 용량입니다) Xcode Download 이제 개발자 사이트에서 Xcode를 다운로드 받을 때, 함께 받을 시뮬레이터를 선택해서 받을 수 있습니다. Code Completion 코드 자동완성이 좀 더 똑똑해졌다고 합니다. 예시로 PlantSummaryRow라는 Swift파일을 생성하고, 해당 파일에서 struct를 작성할 때 파일명을 자동완성에서 추천해줍니다. 일부 completion이 표시되는 방식을 개선. 기본 인수가 있는 함수를 호출할 때, 원하는 매개변수를 정확히 가져오는 것이 불편했던 것이 개선되었습니다. 기본 인수의 가능한 모든 순..
· iOS/Swift
What’s new in Swift - WWDC23 - Videos - Apple Developer Join us for an update on Swift. We'll show you how APIs are becoming more extensible and expressive with features like parameter packs... developer.apple.com if/else문의 향상 복잡한 조건을 기반으로한 let 변수를 초기화하려면 아래와 같은 복잡한 삼항 표현식이 나올수도 있습니다(있나!?). let bullet = isRoot && (count == 0 || !willExpand) ? "" : count == 0 ? "- " : maxDepth (R1, R2) func evalu..
Platforms State of the Union을 훝고 갑니다. 추후 각 세션 정리 예정입니다. Swift Swift Macros Boilerplate 코드를 좀 더 깔끔하게 만들어 줄 수 있는 방법입니다. 위처럼 @가 붙은 attribute일 수도 있고, 독립적으로 #이 붙은 형태일 수도 있습니다. 이 #URL Macro는 URL을 초기화하여 언래핑시켜주는 코드인데, 해당 Macro에서 Expand Macro를 통해 확인이 됩니다. 그 뿐만 아니라 유효한 URL String인지도 컴파일 타임에 체크해주고, 올바른 코드를 작성할 수 있도록 커스텀 피드백을 할 수 있게 해줍니다. fetchContent(_:completion:) 함수에 async/await을 사용하고 싶을 땐, 위처럼 @AddAsync..
iOS 앱 개발자의 축제! WWDC23의 날짜가 공지되었습니다! https://developer.apple.com/kr/wwdc23/ WWDC23 Apple 개발자 커뮤니티와 함께 온라인으로 개최되는 Apple 세계개발자회의에 참여하세요. developer.apple.com
WWDC22의 Platforms State of the Union 영상 뿐만 아니라 200여개의 모든 세션 영상에 한글자막이 추가되었습니다. https://developer.apple.com/news/?id=lw8dnr3l WWDC22 video subtitles now in more languages - Latest News - Apple Developer You can now watch the Keynote, Platforms State of the Union, and nearly 200 sessions from this year’s Apple Worldwide Developers Conference with Japanese, Korean, and Simplified Chinese subtitles...
WWDC22(Platforms State of the Union)에서 기타 변경점을 정리해봅니다. 개별 세션 및 Release Note의 내용을 참조한 내용들도 있으며, 글은 계속 수정될 수 있습니다. Pasteboard Behavior 변경 iOS14, 15에서는 다른 앱에서 복사한 것을 붙여넣기 할 때 상단에 배너로 표시하고 사라졌는데요. iOS16에서는 붙여넣기 할 때 확인을 위한 경고창을 표시하도록 변경되었습니다. 권한요청 경고창처럼 1회성으로 뜨는 것이 아닌, 붙여넣기를 할 때마다 보여집니다. (개인정보를 남용하는 앱들로부터 사용자를 보호하고자 하는 애플의 마음은 이해가 되지만, 활용하는 앱에서 따라서는 사용자 경험이 불편해질 수도 있겠다는 걱정이 조금 드네요) iPadOS DriverKit M..
WWDC22에서 App Store Connect의 변경점을 정리해봅니다. 여러 항목을 하나의 제출로 그룹화 (이 내용은 실제 앱스토어 커넥트에서 변경된 사항을 직접봐야 감이 올거 같네요) 여러 Review item을 하나의 제출로 그룹화할 수 있게 되었습니다. Review item의 수나 유형에 상관없이 24시간 내에 검토가 됩니다. 심사 후 Review item은 승인(Accept)되거나 거부(Reject)되는데, 제출한 모든 Review item이 승인이 될 때까지 Review submission이 승인되지 않습니다. 거부된 Review item을 심사 제출하기 위한 2가지 방법이 있습니다. 첫번째는 거부된 Review item을 수정한 뒤 다시 심사 제출을 하는 방법입니다. 두번째 방법은 거부된 i..
WWDC22(Platforms State of the Union)에서 추가된 App Intents, Passkey의 내용을 정리해봅니다. 개별 세션의 내용을 참조한 내용들도 있으며, 글은 계속 수정될 수 있습니다. App Intents Framework 앱의 기능을 시스템에서 사용가능하게 해서 사용자가 Siri와 단축어로 앱을 자동화하여 사용할 수 있게 해줍니다. 사용자가 사용자화 단축어로 앱들의 기능들을 재조합할 수 있게 해줍니다. 기존엔 사용자가 직접 단축어를 시리에 추가해야 사용할 수 있었지만, iOS16에서는 App Intents Framework로 이를 자동화시켰습니다. App Intents가 단축어와 합쳐져 App 단축어가 됨. 사용자가 별도 설정없이 Siri에서 사용 가능. Siri뿐만 아니..
WWDC22(Platforms State of the Union)에서 Swift의 변경점을 정리해봅니다. 개별 세션의 내용을 참조한 내용들도 있으며, 글은 계속 수정될 수 있습니다. WidgetKit WatchOS용 앱에서 사용하던 WidgetKit을 이제 iOS의 잠금화면용 Widget에서도 사용할 수 있게 되었습니다. 애플워치의 Complication을 iOS로 확장시켰습니다. 모든 위젯은 iOS, WatchOS에서 모두 작동. 기존 WatchOS용 WidgetKit을 그대로 사용할 수 있습니다. 플랫폼의 차이를 자동으로 관리합니다. 잠금화면의 위젯색상을 조정해서 가독성을 높였습니다. 기존 WatchOS에서 사용했던 것처럼 3가지 타입이 있습니다. Circular, Retanglar, Inline. ..
WWDC22(Platforms State of the Union)에서 SwiftUI의 변경점을 정리해봅니다. 개별 세션의 내용을 참조한 내용들도 있으며, 글은 계속 수정될 수 있습니다. Navigation Stack 새 내비게이션 API. 가장 알맞은 네비게이션 스타일을 쉽게 표현하게 해줍니다. 선택사항을 쉽게 저장하고 복구할 수 있고, 네비게이션 스택의 내용 전체를 대체할 수도 있습니다. 이 기능으로 인해 앱 실행단계 설정, 사이즈 클래스간의 전환 관리, 딥링크 응답 같은 동작을 쉽게 처리가 가능합니다. NavigationSplitView 선택사항을 추적하는 Sidebar, NavigationStack이 포함된 뷰입니다. Sidebar 선택사항이 변경되면 콘텐츠도 변경시켜 줍니다. Scene API 맥..
SwiftyCody
'wwdc' 태그의 글 목록