728x90

WWDC 16

[WWDC24] 키노트

안녕하세요. 늦었지만 WWDC24 키노트 정리할게요. (제가 관심 있는 플랫폼 & 주제만 정리할 예정...) # visionOS 21. 공간 사진 가능  # iOS 181. 홈 화면에서 위젯 위치를 자유롭게 설정 가능 (드디어..) 2. Controls API를 사용해서 제어센터와 잠금화면에 써드파티 앱 추가 가능 3. 앱 잠금기능, 앱 숨김 기능 추가 4. TapToCash 기능 추가 (NameDrop처럼 가까이 있는 아이폰으로 송금 가능) 5. Game Mode 추가 (백그라운드 작업을 최소화하여 높은 프레임율 유지) # macOS Sequoia1. iPhone 미러링 (맥에서 아이폰 조작 가능. 키보드 입력도 가능. 아이폰 알림이 맥 알림으로 뜸.) 2. 화면 정렬 단축키 사용 가능 (윈도우처럼!)..

WWDC 2024.07.14

[WWDC21] Distribute apps in Xcode with cloud signing

안녕하세요. 오느른 Xcode에서 App Store Connect에 앱 업로드하는 방법과 cloud signing 관련해서 가볍게 알아볼게요. 공부하기 싫어서 억지로 하는거 아님...ㅎ # Xcode to App Store Connect우선 App Store Connect가 뭔지 알아야겠죠? TestFlight를 사용하든 AppStore에 배포를 하든 우선 Xcode를 통해 App Store Connect에 앱 빌드를 업로드해야 해요.  # Distribution AppApp Store Connect에 앱을 업로드하려면 Archive를 먼저 해야 합니다.  Archive는 metadata를 포함한 앱의 developer-signed release build를 생성합니다. Archive가 완료되면 자동으로..

WWDC 2024.06.10

[WWDC21] Explore structured concurrency in Swift

안녕하세요. 이번엔 structured concurrency에 대해 공부해 볼게요. # Structured ProgrammingStructured Concurrency에 대해 알아보기에 앞서 Structured Programming이란 무엇일까요? Structured Programming이란 위에서 아래로 동작이 흘러가는 프로그래밍 방식을 의미합니다.  기존 비동기 코드는 Structured programming 하곤 거리가 멀었어요. 비동기 동작 결과가 completion handler로 전달되기 때문에 언제 데이터가 올지 모르며 error throw를 할 수 없고 동일한 비동기 동작을 수행하기 위한 반복문을 사용할 수 없었어요.  # async/await을 사용한 비동기 코드async/await을 사..

WWDC 2024.05.28

[WWDC21] Meet AsyncSequence

안녕하세요. AsyncSequence가 뭔지 WWDC 영상 보면서 알아볼게요. # AsyncSequence async/await은 저번에 'Meet async/await in Swift'에서 알아봤어요. AsyncSequence는 특정 element에 대해 비동기적이고 순차적인 반복 액세스를 제공합니다. 이를 위해 for-await-in 또는 for-try-await-in 구문을 사용합니다. (for-await-in 구문을 사용하면 다음 element가 준비될 때까지 suspend하고, 다음 element가 준비되면 resume 합니다.) # Iterating Sequence, AsyncSequence AsyncSequence가 컴파일러에서 어떻게 동작하는지 가볍게 살펴볼게요. 일반적인 Sequence를..

WWDC 2024.03.13

[WWDC21] Meet async/await in Swift

안녕하세요. 예전에 봤던 async/await WWDC 영상 다시 보고 내용 정리 해 볼게요! 여러 번 봐서 그런가 별로 어렵진 않더라구요? 흐흐.. # async/await 사용 전 asyc/await가 없던 시절 비동기 처리를 하려면 completion handler나 delegeate를 사용했어야 했습니다. ㅇㄱㄹㅇ completion handler 방식은 복잡해질수록 indent 때문에 코드 가독성이 떨어지고 handler를 까먹고 호출하지 않아서 동작이 멈추는 경우가 생길 수 있습니다. #asyc/await 사용 async/await를 사용하면 위 코드를 이렇게 줄일 수 있어요. [참고] thread blocking async API가 호출되면 thread는 비동기처리가 완료되기 전까지 unbl..

WWDC 2024.03.09

[WWDC22] NavigationStack, NavigationSplitView

안녕하세요. 이번엔 WWDC22의 'The SwiftUI cookbook for navigation'를 보고 iOS 16부터 새롭게 추가된 NavigationStack과 NavigationSplitView에 대해 공부할게요. # NavigationStack 기존 NavigationView에서 코드로 화면을 전환시키려면 아래처럼 NavigationLink 마다 별도의 binding을 해줘야 했습니다. iOS 16부터 추가된 NavigationStack, NavigationLink의 new API, 그리고 new 수식어인 navigationDestination를 사용하면 쉽게 구현이 가능합니다. @State 프로퍼티인 path 정보를 수정함으로써 deep linking도 가능합니다. # NavigationS..

WWDC 2024.03.02

[WWDC20] State, Binding, StateObject, ObservedObject

안녕하세요. 이번에는 WWDC20의 'Data Essentials in SwiftUI' 영상을 보고 내용 정리해 볼게요. (WWDC에서 예시로 든 샘플앱은 제가 나름대로 만들어서 github에 올려두었으니 참고해 주세요!) https://github.com/phillip5094/WWDC-Example/tree/main/WWDC20/WWDC20-BookClub # 개요 앱을 만들 때는 크게 3가지를 고려해야 합니다. 1) View에서 필요한 데이터가 무엇인가 2) View에서 데이터를 어떻게 조작하는가 3) 데이터는 어디서 오는가 (=> source of truth) 고려사항을 해결하기 위해서 앞으로 설명할 State, Binding, StateObject, ObservedObject 같은 것들이 사용됩니..

WWDC 2024.02.19

[WWDC20] App essentials in SwiftUI

안녕하세요. 이번엔 WWDC20 'App essentials in SwiftUI' 영상을 보고 SwiftUI의 App, Scene, View를 알아가는 시간을 가져볼게요. # Views, scenes, and apps ## Views 앱 화면에 보이는 모든 것은 View에 속해있습니다. ## Scenes 특정 플랫폼에선 전체 화면을 서로 다른 영역으로 쪼개서 앱을 표시합니다. SwiftUI에선 서로 다른 영역을 Scene이라고 부릅니다. Window는 Scene의 콘텐츠를 화면에 표시합니다. iPadOS의 경우 아래처럼 여러 window를 나란히 표시할 수 있어요. macOS의 경우 아래처럼 다른 Scene의 콘텐츠를 여러 window로 표시할 수 있고, 탭 형식으로 된 하나의 window로도 모을 수..

WWDC 2024.01.15

[WWDC20] Stacks, Grids, and Outlines in SwiftUI

안녕하세요. 늦은 감이 있지만 WWDC20 'Stacks, Grids, and Outlines in SwiftUI' 공부해 보고 내용 정리할게요. # 개요 SwiftUI의 layout primitives에 대해 알아보자! # Stacks ScrollView와 VStack을 활용하면 왼쪽과 같은 화면을 만들 수 있어요. 이때 한 가지 문제점이 있어요. VStack 요소가 늘어날수록(=이미지가 하나씩 추가될수록) 화면에 View를 그릴 때 시간이 오래 걸리게 됩니다. 모든 요소를 loading 하는데 시간이 오래 걸리는 것이죠. 이럴 때 LazyVStack, LazyHStack을 사용하면 됩니다. LazyVStack 또는 LazyHStack은 VStack, HStack과 동일하지만 컨텐츠가 화면에 표시될 때..

WWDC 2024.01.05

[WWDC23] Get started with privacy manifests

안녕하세요. 이번엔 WWDC23 'Get started with privacy manifests' 세션을 보고 내용 정리해 볼게요. #개요 앱 사용자는 Privacy Nutrition Labels를 통해 앱 내에서 어떤 데이터가 수집되고 있는지 쉽게 알 수 있습니다. 앱 개발자는 이런 Privacy Nutrition Labels 정보를 App Store Connect에 입력해야 하는데요. 이 정보는 앱 전체에 해당되는 내용이기 때문에, 정확한 Privacy Nutrition Labels 정보를 입력하기 위해선 앱 내에서 사용하고 있는 외부 SDK가 어떤 데이터를 수집하고 있고 어떻게 관리하는지도 알아야 합니다. Privacy manifests는 외부 SDK의 개인 정보 보호 관행에 대한 정보를 외부 SD..

WWDC 2023.08.20