차례 - tvOS Picture in Picture - implementing tvOS Picture in Picture - Working with the standard playback UI - Demo Picture in Picture을 살펴보자. 이번에 애플 TV에 새롭게 등장한다. 또한 두 개의 영상이 동시에 재생된다. 프로젝트 구축 구현하려면 백그라운드 모드도 추가해줘야 한다. 오디오 세션을. playback 카테고리로 구성해야 한다. 이미 아이패드에도 구현해봤다면 친숙할 것이다. 표준 재생 UI를 사용한다. PIP는 기본적으로 활성화된다. PIP 생명주기는 AVPlayerViewControllerDelegate에 있다. 아래 메서드들을 통해서 관찰 가능하다. 특히나 마지막 복구되는 메서드를 살..
시뮬레이터 전문가가 되어보자. 시뮬레이터는 개발자 경험을 강화하고 좋은 앱을 만드는 데 어떻게 도움이 되는지 이야기합니다. 시뮬레이터가 무엇이고 무엇을 할 수 있는지 말할 것입니다. 시뮬레이터를 사용하면 맥에서 iOS, iPadOS, TVOS 그리고 watchOS의 앱을 테스트할 수 있습니다. 시뮬레이터는 Xcode에 내장되어 있어서 실제로 기기가 없어도 앱을 실행할 수 있고 테스트 가능합니다. 여기 두 가지의 시뮬레이터가 부팅되어있습니다. iOS14를 실행하는 아이폰 11과 아이패드 프로입니다. 시뮬레이터 위 타이틀을 통해서 실행 중인 OS의 장치 이름과 버전을 확인할 수 있습니다. Xcode12에서는 시뮬레이터에서 스크린 샷을 찍는 것이 향상되었습니다. 스크린 샷 버튼을 클릭하면 찍힌 스크린 샷이 옆..
What’s New in Swift 오늘날 여러방면으로 스위프트 주변이 활성화 되고있다. 차례 애플 OS와 API에서의 스위프트 오픈소스 라이브러리 크로스 플랫폼 스위프트5의 ABI 안정성으로 바이너리 프레임워크가 더욱 빨라졌다. 이는 강력한 새로운 API를 출현하도록 이끌었다. 결국 스위프트는 크로스 플랫폼 언어로 도달했다. 스위프트 런타임 퍼포먼스 코드 사이즈 코드 사이즈는 앱의 일부이고 앱의 로직에서 기계어를 나타낸다. 코드 사이즈는 지금까지 최적화에 집중해서 여러번에 걸쳐 출시했다. 그 과정을 추적해보자 (줄어드는 바이너리 사이즈) 스위프트와 오브젝티브씨 버전을 비교했을 때, 스위프트4 에서는 코드 사이즈가 오브젝티브씨의 2.3배였다. 스위프트4.1에서 코드 사이즈 최적화 설정으로 큰 덩어리를 걸..
iOS13으로 업데이트를 하고 엑스코드를 열었다. 가장 눈에 뛰었던 건 다크 모드였으며, 또 한 가지 눈에 띈 건 모달 프레젠트 되는 스타일이 변경된 것이다. 이전에는 화면을 full가득 덮었다면 이번에는 가득 덮지 않고 화면이 띄워졌다. 좀 더 살펴보자면 뷰 컨트롤러의 크기가 줄었고 이전 뷰가 뒤에 보이게 된다. 이전에는 fullscreen이었는데 iOS13부터 UIModalPresentationStyle의 디폴트 값이 automatic으로 변경되었다. 그래서 이게 이렇게 뜬 거구나.. 나는 이걸 원하지 않는다고! 이를 해결하기 위한 방법으로는 스토리 보드로는 프레젠테이션 스타일을 Full Screen으로 변경해준다. 이를 변경해주면 풀 스크린으로 모달이 뜬다. 코드로는 아래와 같이 변경할 수 있다. ..
Embedding and Sharing Visually Rich Links WWDC 2019에 Embedding and Sharing Visually Rich Links를 보고 사용해보고 싶다 생각이 들었다. 먼저 이 세션은 LinkPresentation에 대해서 설명하고 소개한다. LinkPresentation 프레임 워크를 통해 앱 개발자는 풍부하고 아름답고 일관된 방식으로 URL을 쉽게 제시할 수 있으며, LinkPresentation을 사용하여 URL에서 메타 데이터를 검색하고 앱 내부에 풍부한 링크 컨텐츠를 제공할 수 있다. 사실 흥미를 가진 이유는 이전에 프로젝트를 하며 또 과제를 수행하며 이런 TableViewCell을 만든 기억이 난다. 링크에 대한 프리뷰는 아니지만 LPLinkView와 ..
제네릭은 스위프트에서 가장 강력한 기능 중 하나로 스위프트의 표준 라이브러리는 대부분 제네릭 코드로 만들어졌습니다. 스위프트에 제네릭이 없었으면 어떨까요 위와 같이 버퍼 구조체가 있다고 가정합시다. 각 요소를 index로 가져오는 방법이 있지만 리턴 타입을 무엇으로 만들어야 할까요 제네릭이 없다면 우리가 버퍼에 넣고 싶은 것을 표현할 수 있는 타입인 Any로 넣어야 합니다. // Any는 함수 타입을 포함하여 모든 타입의 인스턴스를 나타낼 수 있습니다. 하지만 Any로 넣게 되면 꺼내서 사용할 때 다른 타입일 수 있어 오류가 발생하기 쉽습니다. 예를 들어 위와 같이 문자열 버퍼에 정수를 넣으면 안 되겠죠. 그럼 메모리에는 어떻게 표현될까요. 우리가 원하는 메모리 모습은 하늘색 박스와 같은 모양입니다. 문..
- Total
- Today
- Yesterday
- SWIFT
- rxswift
- 머신러닝
- 알고리즘
- 스위프트
- RX
- ios
- Deep learning
- leetcode
- 책 추천
- 애니메이션
- swiftUI
- iOS SwiftUI
- objective-c
- wwdc
- 문자열
- 독서
- objc
- 책 후기
- swift5
- string
- stanford SwiftUI
- 책
- 딥러닝
- Animation
- Xcode
- 스위프트UI
- ReactiveX
- Algorithm
- ARC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |