WWDC 2018 iOS 개발자 일기
게시 됨: 2022-03-10미국의 전통적인 여름 경계는 현충일과 노동절이지만 iOS 개발자는 WWDC와 iPhone 출시로 여름을 기념합니다. 이번 주 NYC의 날씨는 선선하고 비가 내리지만, 저는 여름 분위기에 젖어 그 여름의 갱신과 WWDC 약속을 고대하고 있습니다.

6월 4일 아침입니다. WWDC 2017에서 작성한 메모를 검토 중입니다. 작년에 저는 ARKit과 Core ML이 큰 하이라이트 중 두 가지라고 썼습니다. Apple이 기계 학습(ML)에 중점을 두는 것을 보는 것은 신선했지만 2017년 나머지 기간에는 후속 조치가 많지 않았습니다. ARKit은 약간의 관심을 불러일으켰지만 킬러 앱은 없었습니다(아마도 Pokemon Go이지만 ARKit 이전에는 인기가 있었습니다) . Apple은 Core ML 발표 이후 Core ML 다운로드 가능한 모델의 초기 라이브러리에 추가하지 않았습니다.
Apple은 Turi Create를 출시했고 Lobe는 지난달 흥미로운 새로운 Core ML 모델 메이커를 출시했습니다. Apple/ML 분야에서 Swift 제작자인 Chris Lattner는 Swift for TensorFlow에 대해 다른 접근 방식을 취하고 있습니다. 그러나 외부에서 Core ML은 이미지 분류라는 한 가지 분명한 용도가 있는 것 같습니다. 엄청나게 다른 애플리케이션을 탐색하는 데 많은 에너지가 필요하지 않은 것 같습니다(자율주행 자동차와 Google Duplex와 같은 위즈뱅 데모의 핵심에는 ML이 있다는 것을 우리 모두 알고 있음에도 불구하고).
Apple이 ML을 사용하는 또 다른 방법은 Siri에 있으며, 올해 초 저는 SiriKit에 대해 썼고 Alexa 및 Google과 비교할 때 인식되고 실제적인 결함에 대해 언급했습니다. 내가 탐구한 한 가지 문제는 미리 정의된 의도에 대한 Siri의 강조가 범위를 제한하지만 제한된 초점에서 얻을 수 있는 약속된 정확도를 생성하지 못하는 방법이었습니다.
작년 HomePod의 출시는 Siri의 고민만 강조했으며 널리 보고된 고객 만족도 조사에서는 iPhone X에 대한 만족도가 98%인 반면 Siri에 대한 만족도는 20%에 불과했습니다.
이 모든 것을 염두에 두고 개인적으로 Apple이 AR, ML 및 Siri에서 몇 가지 주요 개선 사항을 만들 것이라는 소식을 듣고 싶었습니다. 특히, iOS 개발자로서 저는 단순한 이미지 분류와 모델 제작에 대한 더 많은 도움을 포함하는 더 많은 Core ML 모델을 보고 싶었습니다. Siri의 경우 더 많은 인텐트와 인텐트가 일년 내내 추가될 것이라는 표시를 보고 싶었습니다. 아직 멀었지만 AR의 다음 단계는 장치입니다. 하지만 그 사이에 공간 정확도가 향상되기를 바랐습니다.
마지막으로, 저는 Xcode Playgrounds와 iPad Playground 책을 좋아하지만 훨씬 빠르고 안정적이어야 하므로 거기에서도 뭔가를 기대했습니다.
WWDC의 아침에 나는 이것을 트윗했습니다.

이것은 예측이 아니었다. 이것은 제가 2017년에 사용하고 싶었지만 시작하기에는 너무 부족하거나 너무 어려워서 Apple이 일부 개선을 해주기를 바랐던 것들의 목록일 뿐입니다.
오늘의 내 계획은 기조 연설을 라이브로 시청한 다음 Platform State of the Union을 시청하는 것입니다. 그것들은 남은 한 주 동안 무엇에 집중해야 하는지에 대한 좋은 개요를 제공합니다.
1일차 종료: 기조연설 및 플랫폼 현황
WWDC의 첫날은 공개 소비를 위한 기조 연설과 전체 이벤트에 대한 개요인 Platform State of the Union으로, 개발자가 참석할 세션을 선택할 수 있도록 몇 가지 세부 정보를 제공합니다.
주목할만한 비 iOS 개발자 발표 요약
WWDC는 iOS 개발에 관한 것이 아니므로 다른 플랫폼에서 발생했거나 개발자 중심적이지 않은 다른 일에 대한 간략한 목록이 있습니다.
- 그것을 방해하지 않기 위해 하드웨어 발표는 전혀 없었습니다 . Mac Pro에 대한 미리보기 및 업데이트가 없습니다. 우리는 가을에 iPhone과 후속 이벤트를 기다려야 할 것입니다.
- iOS 12에는 Workflow를 인수한 결과로 보이는 새로운 바로 가기 앱이 있습니다. 끌어서 놓기를 통해 일련의 단계를 "스크립트" 하는 방법입니다. 아래에서 다루게 될 Siri 키워드에 바로 가기를 할당할 수도 있습니다.
- iOS는 동일한 앱의 알림을 자동으로 그룹화 하고 사용자가 그룹으로 조치를 취할 수 있도록 합니다.
- 이제 Animojis는 혀를 내밀고 있는 당신을 흉내낼 수 있으며, 새로운 Memojis는 당신 자신처럼 보이도록 사용자 정의할 수 있는 고도로 구성 가능한 사람 얼굴 입니다.
- FaceTime은 최대 32명의 그룹 영상 채팅을 지원합니다 .
- 휴대전화 및 앱 사용에 대한 보고서를 제공하는 새로운 스크린 타임 앱이 있습니다 (자신을 제어하고 산만함을 줄이는 데 도움이 됨). 이는 또한 새로운 자녀 보호 기능의 기초이기도 합니다.
- Apple TV에 작은 업데이트가 있습니다. Dolby Atmos 지원 및 국제 우주 정거장에서 가져온 새로운 화면 보호기 .

- Watch에는 다른 사람들에게 운동과 관련된 도전 과제에 도전할 수 있는 경쟁 모드 가 있습니다. 또한 운동 시작 또는 중지를 잊어버린 경우 운동 시작과 끝을 자동 감지 하려고 시도하며 이제 하이킹 및 요가 운동이 있습니다.
- 또한 Watch에는 신뢰할 수 있는 연락처에 대해 활성화할 수 있는 새로운 워키토키 모드가 있습니다.
- Watch에 기본 제공되는 더 많은 오디오 SDK가 있으며 이제 Apple의 Podcasts 앱을 사용할 수 있습니다. 타사 팟캐스트 앱에서도 이러한 새로운 SDK를 활용할 것으로 예상합니다.
- Mac은 이벤트의 중심점을 차지했습니다(이는 새로운 관심의 표시가 되기를 바랍니다). 그것은 macOS Mojave라고 불리며 다크 모드를 특징으로 합니다 .
- Mac App Store에 대한 대규모 업데이트가 있지만, 특히 iOS App Store가 작년에 받은 것과 동일한 시각적 및 콘텐츠 처리를 받습니다. Panic이 Transit을 그곳으로 다시 옮기기로 결정한 샌드박스에 대한 충분한 변경 사항이 있습니다.
- Finder의 Quick Look에는 이제 파일에 대해 수행할 수 있는 몇 가지 간단한 작업 (예: 이미지 회전)이 있으며 Automator를 통해 사용자화할 수 있습니다.
- Mojave는 32비트 앱과 프레임워크를 지원하는 macOS의 마지막 버전이 될 것입니다 . 즉, Quick Time Framework가 사라집니다. OS 자체의 일부 비디오 캡처 기능으로 대체된 것 같습니다.
- Apple은 내부적 으로 UIKit 포트를 사용하여 Mac 앱을 만들고 있다고 발표했으며 주식, 뉴스, 홈 및 음성 메모 포트를 보여주었습니다. 새로운 프레임워크는 2019년에 출시될 예정입니다.
가장 기대되는 iOS 개발자 발표
iOS 개발자들에게도 좋은 소식이 있습니다. 그들은 내가 개선을 원했던 4가지 주요 영역에 도달했습니다.
- SiriKit에는 이제 사용자 지정 의도 가 있어 가능성이 상당히 높아졌습니다.
- Create ML은 Xcode Playgrounds를 사용하여 이전 학습 을 통해 모델을 훈련하는 새로운 방법입니다. 이를 통해 기존 모델을 자체 훈련 데이터로 보강 할 수 있습니다.
- 이제 Xcode 플레이그라운드를 사용 하여 페이지 하단에 코드를 추가하고 다시 시작하지 않고도 실행할 수 있습니다. Playgrounds가 9월에 정식 출시될 때까지 더 안정적일지 여부를 알기는 어렵지만 이렇게 하면 코드 시도가 훨씬 빨라질 것입니다.
- ARKit 2는 USDZ 라는 새로운 증강 현실 파일 형식 과 함께 발표되었으며 Adobe 및 Pixar와 함께 개발한 개방형입니다. Adobe는 이미 일부 도구 지원을 발표했습니다. 이를 통해 사용자와 개발자는 AR 자산과 경험을 저장하고 공유할 수 있습니다. 또한 ARKit 2는 여러 장치가 동일한 AR 환경에 있을 수 있도록 하고 3D 물체 감지를 지원합니다.
우리는 AR 장치를 얻지 못했지만 곧 하나를 얻게 될 것 같은 느낌이 듭니다. ARKit을 실행하려면 iOS 기기가 필요하기 때문에 Apple(제3자가 아님)에서 제공해야 합니다.
기기 설정
이제 개발자 포털에서 필요한 모든 것을 사용할 수 있습니다. 기사의 코드를 사용하려면 Xcode 10 베타가 필요합니다. 아직 iOS 12 베타를 사용하는 것은 권장하지 않지만 정말로 사용하고 싶다면 기기의 포털로 이동하여 iOS 12 베타 구성 프로필을 다운로드하세요.
베타가 있는 장치가 필요한 유일한 주요 사항은 ARKit 2입니다. 다른 모든 것은 Xcode 10의 시뮬레이터에서 충분히 잘 실행되어야 합니다. 첫 번째 베타에서 시뮬레이터의 Siri Shortcut 지원은 제한적이지만 향후 릴리스에서 수정될 것이라고 생각할 만큼 충분합니다.
2일차 종료: Siri 사용자 지정 의도 사용
작년에 저는 앱에서 SiriKit을 사용하기 위해 Apple의 사전 정의된 의도 중 하나에 어떻게 부합해야 하는지 썼습니다. 이 메커니즘은 2016년에 도입되어 2017년에 추가되었으며 WWDC 이벤트 사이에도 추가되었습니다. 그러나 맞춤형 인텐트에 대한 Amazon의 접근 방식이 음성 제어를 보다 다양한 앱에 적용하는 데 탁월하다는 것이 분명했으며 Apple은 지난주 이를 SiriKit에 추가했습니다.
분명히 말해서, 이것은 첫 번째 구현이므로 아직 Alexa Skills만큼 광범위하지는 않지만 Siri의 가능성을 상당히 열어줍니다. 이전 기사에서 논의한 것처럼 커스텀 인텐트의 주요 한계는 개발자가 모든 언어 번역을 수행해야 한다는 것입니다. SiriKit은 사용자에게 사용하려는 문구를 제공하도록 요청하여 이 문제를 약간 해결하지만 사전 정의된 의도보다 사용자 지정 의도에 대해 더 많은 번역이 필요합니다.
그리고 미리 정의된 의도와 동일한 기반을 기반으로 하기 때문에 내가 다룬 모든 내용이 여전히 적용됩니다. 사실, 원래 SiriKit 기사를 위해 작성한 앱인 List-o-Mat에 새로운 사용자 정의 의도를 추가하는 방법을 보여 드리겠습니다.
(무료) 이미 Spotlight를 지원하는 경우 Siri 바로 가기 지원
NSUserActivity
를 사용하여 사용자가 핸드오프 또는 검색을 통해 시작할 수 있는 앱의 항목을 표시하는 경우 Siri에서도 사용할 수 있도록 만드는 것은 간단합니다.
활동 개체에 다음 줄을 추가하기만 하면 됩니다.
activity.isEligibleForPrediction = true
이것은 Spotlight 지원 활동( isEligibleForSearch
가 true
인 경우)에만 작동합니다.
이제 사용자가 이 활동을 수행하면 Siri에서 사용하기 위해 기부 된 것으로 간주됩니다. Siri는 매우 일반적으로 수행되는 활동을 추천하거나 사용자가 바로 가기 앱에서 해당 활동을 찾을 수 있습니다. 두 경우 모두 사용자는 시작하기 위해 자신의 구어를 할당할 수 있습니다. Spotlight를 통한 활동 시작에 대한 지원은 바로 가기를 통해 시작되는 활동을 지원하기에 충분합니다.
List-o-Mat에서는 활동 객체를 구성하고 ListViewController
에 할당하여 Spotlight 및 Siri에서 개별 목록을 사용할 수 있도록 할 수 있습니다. 사용자는 Siri를 통해 자신의 문구로 열 수 있습니다.
목록을 여는 데 미리 정의된 의도가 있었기 때문에 우리의 경우 중복되지만 대부분의 앱은 운이 좋지 않아 이제 이 간단한 메커니즘을 사용합니다. 따라서 앱에 Siri의 미리 정의된 의도가 지원하지 않는 활동(예: 팟캐스트 재생)이 있는 경우 사용자 지정 의도에 대해 걱정할 필요 없이 예측에 적합하도록 만들 수 있습니다.
사용자 지정 의도를 사용하도록 SiriKit 구성
사용자 지정 의도를 사용해야 하는 경우 SiriKit을 앱에 추가해야 하므로 약간의 구성이 필요합니다.
사용자 지정 의도에 대해 SiriKit을 구성하는 모든 단계는 미리 정의된 의도와 동일하며 여기 Smashing에 대한 내 SiriKit 기사에서 자세히 다룹니다. 요약:
- 확장을 추가하는 중이므로 새 앱 ID가 필요하고 프로비저닝 프로필 및 앱의 자격 요구 사항에 Siri가 추가되었습니다.
- 아마도 앱 그룹이 필요할 것입니다(확장 프로그램과 앱이 통신하는 방식입니다).
- 프로젝트에 Intent Extension이 필요합니다.
- 업데이트해야 하는 Siri 관련 .plist 키와 프로젝트 자격이 있습니다.
모든 세부 사항은 내 SiriKit 기사에서 찾을 수 있으므로 List-o-Mat에서 사용자 지정 의도를 지원하는 데 필요한 사항만 다루겠습니다.
List-o-Mat에 복사 목록 명령 추가
사용자 지정 의도는 미리 정의된 의도가 없는 경우에만 사용하도록 되어 있으며 Siri는 실제로 목록 및 메모 Siri 도메인에서 많은 목록 및 작업 지원을 제공합니다.
그러나 목록을 사용하는 한 가지 방법은 반복되는 루틴이나 프로세스의 템플릿으로 사용하는 것입니다. 이를 위해 기존 목록을 복사하고 모든 항목의 선택을 취소하려고 합니다. 기본 제공 목록 의도는 이 작업을 지원하지 않습니다.
먼저 이 작업을 수동으로 수행하는 방법을 추가해야 합니다. 다음은 List-o-Mat의 이 새로운 동작에 대한 데모입니다.

Siri가 이 동작을 호출할 수 있도록 하기 위해 "의도를 기부"합니다. 즉, 사용자가 이를 수행할 때마다 iOS에 알립니다. 그런 다음 아침에 이 목록을 복사하여 바로 가기로 제공하는 것을 좋아한다는 것을 결국 알게 됩니다. 사용자는 기증된 의도를 찾아 수동으로 문구를 할당할 수도 있습니다.

사용자 정의 의도 만들기
다음 단계는 Xcode에서 사용자 정의 의도를 만드는 것입니다. 새 파일 템플릿이 있으므로 다음과 같습니다.
- 파일 → 새 파일을 선택하고 "SiriKit 의도 정의 파일"을 선택하십시오.
인텐트 정의 파일 추가 선택(큰 미리보기) - 파일 이름을 ListOMatCustomIntents.intentdefinition 으로 지정하고 파일을 앱 및 의도 확장 대상 모두에 넣도록 선택합니다. 이렇게 하면 의도 프로토콜을 구현하지만 사용자 지정 동작이 구현된 두 대상에 클래스가 자동으로 생성됩니다.
- 정의 파일을 엽니다.
- 왼쪽 하단의 + 버튼을 사용하여 인텐트를 추가하고 이름을 "CopyList"로 지정합니다.
- 범주를 "만들기"로 설정하고 의도를 설명하는 제목과 부제를 입력합니다.
인텐트에 카테고리, 제목 및 부제 추가(큰 미리보기) - "list"라는 문자열 매개변수를 추가합니다.
"list"라는 문자열 매개변수 추가(큰 미리보기) - list 매개변수를 사용하여 바로 가기 유형을 추가하고 "목록 복사"라는 제목을 지정합니다.
"목록 복사"라는 바로 가기 유형 추가(큰 미리보기)
인텐트 plist를 보면 이 인텐트가 이미 구성되어 있음을 알 수 있습니다.

의도 기부
앱에서 Siri에게 알리고 싶은 사용자 상호 작용을 수행하면 Siri에 기부합니다. Siri는 시간, 요일, 위치와 같은 상황 정보를 추적하고 패턴을 감지하면 사용자에게 바로 가기를 제공합니다.
복사 메뉴를 탭할 때 다음 코드를 추가합니다.
@available(iOS 12, *) func donateCopyListInteraction(listName: String) { let copyListInteraction = CopyListIntent() copyListInteraction.list = listName copyListInteraction.suggestedInvocationPhrase = "Copy \(listName)" let interaction = INInteraction(intent: copyListInteraction, response: nil) interaction.donate { [weak self] (error) in self?.show(error: error) } }
이것은 단순히 자동 생성된 CopyListIntent
클래스의 객체를 생성하고 이를 Siri에 제공합니다. 일반적으로 iOS는 이 정보를 수집하고 표시할 적절한 시간을 기다리지만 개발을 위해 설정 앱을 열고 개발자 섹션으로 이동한 다음 Siri 바로 가기 디버깅 설정을 켤 수 있습니다.
참고 : 이 글을 쓰는 시점에서 첫 번째 베타에서 이 디버그 설정은 장치에서만 작동하며 시뮬레이터에서는 작동하지 않습니다. 설정이 있기 때문에 추가 베타에서 작동하기 시작할 것으로 예상합니다.

이렇게 하면 기부한 바로가기가 Spotlight의 Siri 제안에 표시됩니다.

백그라운드 실행을 허용하기 때문에 이를 탭하면 Intent 확장을 호출합니다. 다음에 이에 대한 지원을 추가할 것입니다.
사용자 정의 의도 처리
이미 Intents 확장이 있고 사용자 정의 의도 정의 파일이 이미 파일에 추가되었으므로 생성된 의도 클래스도 있습니다. 핸들러를 추가하기만 하면 됩니다.
첫 번째 단계는 CopyListIntentHandler
라는 새 클래스를 확장에 추가하는 것입니다. 코드는 다음과 같습니다.
import Intents @available(iOS 12, *) class CopyListIntentHandler: ListOMatIntentsHandler, CopyListIntentHandling { func handle(intent: CopyListIntent, completion: @escaping (CopyListIntentResponse) -> Void) { // Find the list var lists = loadLists() guard let listName = intent.list?.lowercased(), let listIndex = lists.index(where: { $0.name.lowercased() == listName}) else { completion(CopyListIntentResponse(code: .failure, userActivity: nil)) return } // Copy the list to the top, and respond with success copyList(from: &lists, atIndex: listIndex, toIndex: 0) save(lists: lists) let response = CopyListIntentResponse(code: .success, userActivity: nil) completion(response) } }
사용자 정의 의도에는 확인 및 처리 단계만 있습니다(매개변수의 사용자 정의 해결은 지원되지 않음). 기본 confirm()
이 성공을 반환하기 때문에 목록을 찾아 복사하고 성공 여부를 Siri에게 알려야 하는 handle()
을 구현하기만 하면 됩니다.
또한 다음 코드를 추가하여 등록된 인텐트 핸들러에서 이 클래스로 디스패치해야 합니다.
if #available(iOS 12, *) { if intent is CopyListIntent { return CopyListIntentHandler() } }
이제 실제로 Siri 제안을 탭하면 다음과 같은 메시지가 나타납니다.

만들기 버튼을 탭하면 목록이 복사됩니다. 인텐트 정의 파일에서 선택한 카테고리 때문에 버튼에 "Create"라고 표시됩니다.
휴, 많았습니다. 이 새로운 Siri 바로 가기는 탐색할 새로운 대규모 개발자 영역이 있는 iOS 12의 주요 기능입니다. 또한 작업할 좋은(그리고 문서화된) Siri 예제가 있었기 때문에 이번 주에 새 기능을 추가하는 것이 합리적이었습니다.
GitHub에서 List-o-Mat 업데이트를 볼 수 있습니다. Xcode 10 및 iOS 12가 출시될 때까지는 자체 분기에 있습니다.
앞으로 며칠 동안 저는 주로 Apple 샘플 코드를 살펴보거나 훨씬 더 작은 프로젝트를 만들 것입니다.
3일차 끝: Xcode 플레이그라운드
하루 종일 Xcode 10 베타에서 보냈습니다. Xcode 10 베타는 한 번도 충돌하지 않고 개발 준비가 된 것처럼 보였습니다. 그래서 이제 새로운 Playgrounds 기능을 살펴보고 싶었습니다.
내가 놀이터에서 가장 원했던 것은 놀이터를 더 안정적이고 훨씬 빠르게 만드는 것이었습니다. 더 빠르게 만들기 위해 Apple은 REPL 모드라는 큰 기능을 추가했습니다.
Xcode 10 이전에는 자동 실행(기본값)이 설정된 Playground에 있을 때 모든 코드 라인이 실제로 전체 파일을 다시 빌드하고 처음부터 실행했습니다. 당신이 어떤 국가를 세웠다면 그것은 상실되었습니다. 그러나 진짜 문제는 이것이 반복적인 개발을 하기에는 너무 느리다는 것이었습니다. Playgrounds를 사용할 때 수동으로 실행하도록 설정하지만 그마저도 느립니다.
Xcode 10에서는 수동 실행이 더 일반적이지만 실행한 후 페이지 하단에 더 많은 줄을 추가하고 계속 실행할 수 있습니다. 즉, 지속적으로 다시 작성하고 처음부터 시작하지 않고도 데이터를 탐색하고 뷰를 반복적으로 그릴 수 있습니다.
시작하기 위해 Single View 템플릿으로 iOS 플레이그라운드(파일 → 새로 만들기 → 플레이그라운드)를 만들었습니다.
재생 버튼(왼쪽 하단의 삼각형) 아래에 있는 메뉴를 가져와 수동 실행을 켭니다. 이렇게 하면 재생 헤드의 현재 위치를 표시하는 세로 스트립이 왼쪽에 배치됩니다(일종의 중단점).
아무 줄이나 탭한 다음 왼쪽에 있는 재생 버튼을 탭할 수 있습니다. 이렇게 하면 Playground가 이 지점까지 실행됩니다. 그런 다음 플레이그라운드에서 아래쪽 라인을 탭하여 더 이동할 수 있습니다. 결정적으로 맨 아래에 줄을 더 추가하고 각 줄 다음에 Shift + Enter 를 눌러 재생 헤드를 해당 지점으로 이동할 수 있습니다.
다음은 Playground를 다시 시작할 필요 없이 보기의 레이블을 변경하는 GIF입니다. 입력한 각 줄 다음에 Shift + Enter 를 누르고 있습니다.

Playgrounds는 이제 유형의 사용자 정의 렌더링을 지원하며 Apple은 모든 Swift 프레임워크에 Playground를 포함하여 문서화하도록 크게 추진하고 있습니다.

4일 차 종료: ML 생성
작년에 Apple은 기기용 기계 학습 프로그래밍에 있어 큰 도약을 했습니다. Xcode에서 새로운 ML 모델 파일 형식과 직접 지원이 있었습니다.
잠재력은 이러한 모델 파일의 대규모 라이브러리가 있고 이를 생성하는 도구가 있으며 더 많은 앱 개발자가 모델 생성 방법을 몰라도 프로젝트에 ML을 통합할 수 있다는 것입니다.
이것은 완전히 구체화되지 않았습니다. Apple은 WWDC 이후 모델 리포지토리에 추가하지 않았으며 타사 리포지토리가 있지만 대부분 이미지 분류 데모의 변형 모델이 있습니다. ML은 이미지 분류보다 훨씬 더 많이 사용되지만 광범위한 예는 나타나지 않았습니다.
따라서 모든 실제 앱에는 개발자가 새 모델을 교육해야 한다는 것이 분명해졌습니다. Apple은 이 목적을 위해 Turi Create를 출시했지만 간단하지 않습니다.
WWDC 2018에서 Apple은 Core ML에 대해 몇 가지 작업을 수행했습니다.
- 그들은 Core ML의 NLP(자연어 처리) 부분을 확장하여 새로운 주요 예제 영역을 제공합니다.
- 그들은 Core ML에 Transfer Learning 의 개념을 추가했는데, 이를 통해 기존 모델에 훈련 데이터를 추가 할 수 있습니다. 즉, 라이브러리에서 모델을 가져와 자신의 데이터에 맞게 사용자 정의할 수 있습니다(예: 제공한 이미지에서 새 개체를 인식하도록 함).
- 그들은 Xcode Playgrounds 내부에서 구현되고 훈련을 위해 데이터를 끌어다 놓을 수 있고 모델 확장을 생성할 수 있는 Create ML을 출시했습니다 (Transfer Learning 사용).
이것은 ML 민주화의 또 다른 좋은 단계입니다. 여기에 작성할 코드가 많지 않습니다. 이미지 분류기를 확장하려면 이미지를 수집하고 레이블을 지정하기만 하면 됩니다. 일단 가지고 있으면 Create ML로 끌어다 놓기만 하면 됩니다. 이 Create ML WWDC 비디오에서 데모를 볼 수 있습니다.
이번주말: 새로운 AR 데모로 플레이
ARKit은 작년에 또 다른 큰 추가 기능이었으며 AR 장치가 출시될 것이라는 것이 훨씬 더 분명해 보입니다.
작년 기사의 ARKit 코드는 여전히 시작하기에 좋은 방법입니다. 대부분의 새로운 기능은 AR을 더 정확하고 빠르게 만드는 것에 관한 것입니다.
그 후 베타를 설치했다면 새로운 SwiftShot ARKit 데모 앱을 다운로드하고 싶을 것입니다. 이 앱은 ARKit의 새로운 기능, 특히 멀티플레이어 경험을 활용합니다. 동일한 네트워크 및 동일한 장소에 있는 둘 이상의 장치가 서로 통신하고 동일한 AR 경험을 볼 수 있습니다.
물론, 이것을 플레이하려면 iOS 12 베타에 넣을 의향이 있는 두 개 이상의 장치가 필요합니다. 베타 안전 장치가 하나만 있기 때문에 공개 베타가 이 작업을 수행하기를 기다리고 있습니다.
더 쉽게 사용할 수 있는 AR 앱은 새로운 측정 앱으로, AR 카메라 보기에서 보는 실제 물체의 길이를 측정할 수 있습니다. 이 작업을 수행하는 타사 앱이 있었지만 Apple의 앱은 세련되고 iOS 12가 사전 설치되어 있습니다.
WWDC 비디오 및 샘플 코드 링크
그래서 저는 이번 여름에 Xcode 10과 iOS 12로 더 많은 일을 할 수 있기를 고대하고 있습니다. 새로운 휴대폰과 Apple이 여름 말에 출시할 모든 기기를 기다리는 동안입니다. 그동안 iOS 개발자는 태양을 즐기고 새로운 베타 Watch OS로 하이킹을 추적하고 기회가 있을 때 WWDC 비디오를 시청할 수 있습니다.
Apple 개발자 포털에서 WWDC 2018 비디오를 스트리밍할 수 있습니다. WWDC 비디오를 볼 수 있는 이 비공식 Mac 앱도 있습니다.
이 기사에서 참조한 동영상은 다음과 같습니다.
- WWDC 2018 기조연설
- WWDC 2018 플랫폼 State of the Union
- Siri 단축키 소개
- Xcode에서 플레이그라운드 최대한 활용하기
- Create ML을 소개하고 더 발전된 것을 원하신다면 A Guide to Turi Create
Xcode 10 및 iOS 12로 게임을 시작하려면:
- 베타 다운로드(베타 프로필을 얻으려면 기기에서 방문)
- Siri Shortcut 업데이트가 포함된 List-o-Mat
- Swift Shot(다중 플레이어 ARKit 2 게임)