iOS/iOS
[WWDC2022] Platforms State of the Union
HarryJeonn
2022. 6. 9. 19:10
Why ?
- WWDC에서 나오는 기술들을 당장 사용해보긴 어렵지만 애플이 어떤 방향으로 움직이는지 정리해두면 좋을 것 같아서 쓴다.
- 또 WWDC를 보면서 새로운 기능들을 미리 보는 것 만으로도 도움이 된다고 생각한다.
- 간단하게 WWDC에서 소개된 내용을 정리해보자.
Xcode Cloud 유료 제공
애플에서 Xcode Cloud를 유료로 제공한다.
2023년 말까지 개발자 멤버에게 무료로 제공해준다. 써보고싶다..
오늘은 대충 알아만보고 직접 사용해보고 기록을 남겨놓으면 좋을 것 같다.
Xcode Cloud ?
- 애플에서 제공하는 CI/CD 시스템이다.
- Git을 Source control로 사용하며, App Store Connect, TestFlight와 연동한다.
- 코드를 자동으로 빌드하고 테스트한다.
- 이슈가 생기기전에 먼저 알아채고 Xcode Cloud가 알려준다.
- 새 버전의 앱을 팀 멤버, 테스터들에게 TestFlight로 배포한다.
- 병렬테스트로 코딩을 진행하는동안 테스트 작업을 빠르게 완료한다.
Swift
정규 표현식
- 문자열에서 보고자 하는 패턴을 서술하게 해주고 어떤 정보를 추출하려는지를 지정하게 해준다.
let expression = /(\\w+)\\s\\s+(\\S+)\\s\\s+((?:(?!\\s\\s).)*)\\s\\s+(.*)/
- 새로운 정규 표현식 리터럴
- 언어 내에 직접 탑재되어 Swift 컴파일러가 정확성을 점검하게 해주며 정규 표현식으로 정보를 추출할 때 Swift 타입 시스템의 힘을 해방하고 유니코드 지원을 최대한 활용한다.
import RegexBuilder
let order = "Order from <Betsy's Bakery>, type: maple frosted, count in dozen: 3"
let regax = /Order from <(.*)>, type: (.*), count in dozen: ([0-9]+)/
order.firstMatch(of: regex)
// Order from <Betsy's Bakery>, type: maple frosted, count in dozen: 3
- Playground에서 regax에서 설정한 부분만 하이라이트해서 표시된다고 한다.
let log = "0 FoodTruckKit 0x000000018a0e5d88 Donut.bake() + 144"
let logRegax = Regex {
OneOrMore(.whitespace)
Capture {
OneOrMore {
CharacterClass(
.anyOf("_."),
("a"..."z"),
("A"..."Z")
)
}
}
OneOrMore(.whitespace)
Capture {
"0x"
OneOrMore(.hexDigit)
}
}
log.firstMatch(of: logRegex)
// 0 FoodTruckKit 0x000000018a0e5d88 Donut.bake() + 144
- RegexBuilder → 더 복잡한 스트링에서 추출하기 위할 때 사용된다.
Generic 개선
- 타입에 의존하지 않는 범용 코드를 작성할 때 사용한다.
- 중복을 피하고 코드를 유연하게 작성할 수 있다.
// 기존 Generic 코드
func playSongs<Playlist>(in playlist: Playlist) where Playlist: Collection, Playlist.Element == Song
// 개선된 Generic 코드
func playSongs(in playlist: some Collection<Song>) { ... }
// 기존 Generic 변수
var playlists: [?] // 의 형식
// 개선된 Generic 변수
var playlists: [any Collection<Song>]
SwiftUI
Navigation API
NavagationStack(path: $navPath) {
MusicLibraryView()
.navigationDestination(for: Album.self) { AlbumDetail($0) }
.navigationDestination(for: Artist.self) { ArtistDetail($0) }
}
- 앱의 실행단계 설정, 사이즈 클래스 간의 전환 관리, 딥 링크 응답 처럼 중요한 역할도 한다.
Swift Charts
Chard(data) { element in
BarMark(
x: .value("Product", element.product),
y: .value("Sales", element.sales)
)
}
- 고도로 사용자화 가능한 차트 프레임워크
- SwiftUI 기반
- 더 쉽게 풍성한 시각효과를 만들게 해준다.
- 선언형 구문
- 차트에 애니메이션을 넣고 시각적, 감각적으로 적절하게 꾸밀 수 있다.
Grid API
- 다수의 행과 단에 걸쳐 잘 정렬된 일련의 뷰를 배치하기 쉬워졌다.
Custom Layout API
- 원하는 어떤 레이아웃도 제작할 수 있는 유연성을 제공한다.
SwiftUI + UIKit
- UIKit 프로젝트에서 CollectionView에 SwiftUI를 연결할 수 있게 한다.
잠금화면 대규모 업데이트
WidgetKit
- iOS, WatchOS 모두 사용
- 플랫폼의 차이를 자동으로 관리
- 적절한 시스템 폰트를 디폴트로 사용한다.
- 위젯 색상을 조정해 가독성을 높인다.
- 워치의 컴플리케이션, 아이폰의 잠금화면 위젯 만들기가 편리하다.
Live Activites
- 잠금화면을 통해 실시간으로 데이터 업데이트 할 수 있다.
- ex) 경기 최신 스코어, 차량 호출 현황, 운동 등
- WidgetKit, SwiftUI 만듬
- iOS 16부터 사용가능
그 외 새 기능
Messages Collaboration API
- Identifier를 제공해 수신인이 링크를 누르면 곧바로 접속 권한을 줄 수 있다.
- 개인정보를 보호하면서 권한을 제공한다.
- Message ID와 App ID는 제공되지 않는다.
- 하나의 오브젝트만 있으면 사용자에게 이미 익숙한 두 가지 편리한 방식으로 협업을 개시할 수 있다.
- 공유 시트
- 드래그 앤 드롭
- 앱이 Messgae와 Face Time에 사용 될 수 있다.
App Intents
- Siri와 단축어를 통해 자동으로 사용할 수 있게 해준다.
- 현재는 직접 단축어를 추가해야 사용 가능 → App Intents로 바로 사용 가능
- iOS 10의 SiriKit 다음단계라고 한다.
- Siri를 시용한 자동화를 사용하려는 프로젝트에 추천한다.
PassKeys
- 인증 절차를 간편하게 한다.
- 비밀번호의 최대 보안 문제점을 해결한다.
- FaceID, TouchID 사용
MapKit
- 3D 지원
- 디테일한 도로 반영
- iOS 16이상
- Look Around 지원
- Apple Map Server API (RESTful) 지원
- Geocode (좌표 → 주소 변환)
- Reverse Geocode (주소 → 좌표 변환)
- Search (검색)
- Estimated Time of Arrival (예상 도착 시간)
WeatherKit
- 악천후 알림, 풍부한 디테일 뷰, 10일간의 시간 단위 기온, 강수량 예보 등
- 매월 50만건 API 호출 수를 Apple Developer Program에 포함
VisionKit
- 2개의 API 추가로 VisionKit 확장
- Live Text API
- 사용자들이 사진이나 정지된 영상 안의 텍스트 및 QR코드와 상호작용을 할 수 있다.
- Data Scanner API
- 라이브 카메라 피드 분석도 가능하다.
- 텍스트 및 바코드 인식을 크게 단순화 해준다.
- 9개국어 감지
- 영어, 중국어, 프랑스어, 이탈리아어, 독일어, 스페인어, 포르투갈어, 일본어, 한국어
- 올해부터는 한국어도 추가됐다.. 넘 기쁘다..!
- 영어, 중국어, 프랑스어, 이탈리아어, 독일어, 스페인어, 포르투갈어, 일본어, 한국어
Watch
CallKit
- WatchOS 9
- 새로운 보이스오버 IP 백그라운드 모드가 추가 됐다.
- 앱이 음성통화를 애플워치에서 직접 걸 수 있게 해준다.
Reference
https://developer.apple.com/videos/play/wwdc2022/102/
Platforms State of the Union - WWDC22 - Videos - Apple Developer
Take a deeper dive into the latest tools, technologies, and advances across Apple platforms to help you create even better apps.
developer.apple.com
기술 테스트 영상 (정대리 추천영상)
https://www.youtube.com/watch?v=thT00pe9epg