올해 WWDC 2019가 시작된 지 벌써 한 달 가까이 다가왔습니다. 모든 개발자는 Apple이 개발을 위해 추가하거나 업데이트한 새로운 사항에 대해 여전히 바쁩니다. 크고 작은 발표도 있었지만 우리 개발자들은 중요한 것을 놓치지 않도록 해야 합니다. 그래서 나는 우리가 놓치지 말아야 할 항목의 간단한 체크리스트를 만들고 있습니다. 짧고 간결하며 간단하게 작성해 보겠습니다.
iOS:
- iOS 13에서는 애플리케이션 위치 액세스를 한 번으로 제한할 수 있습니다. 지금까지 '항상', '사용 중' 또는 '사용 안 함'의 세 가지 옵션이 있었습니다. 이 목록에 "한 번만" 옵션이 하나 더 추가되었습니다. 처음으로 앱에 위치를 공유할 수 있습니다.
- 인기 있는 발표 중 하나일 수 있으며 사람들은 이에 대해 열광하고 있습니다. 예, "Apple 로그인"에 대해 이야기하고 있습니다. 따라서 앱이 이미 다른 타사 로그인을 제공하는 경우 앱 개발자는 회사의 새로운 싱글 로그인 솔루션을 구현해야 한다는 것이 Apple의 요구 사항입니다.
- 기존 애플리케이션의 일부를 손상시킬 수 있는 모달 뷰 컨트롤러를 대화식으로 해제할 수 있습니다. iOS 13에서 기본적으로 사용자는 모달을 아래로 스와이프하여 해제할 수 있습니다. 따라서 새 응용 프로그램을 개발할 때 이 점을 고려해야 합니다.
isModalRepresentation = false
으로 이 동작을 비활성화할 수 있습니다. . UISegmentedControl
및UIStepper
iOS 13에서는 완전히 새롭게 업데이트된 디자인으로 다릅니다.Localization
에 대한 새로운 업데이트 iOS 13에서. 이제부터 사용자는 기기에 설치된 각 애플리케이션에 다른 언어를 설정할 수 있습니다. 개발자는 개발과 관련하여 변경하거나 고려할 사항이 없습니다.Settings
신청이 대신 처리됩니다.- iOS 13에는 거의 1500개의 서로 다른 시스템 아이콘과
UIImage
가 있습니다. 새 초기화 프로그램UIImage(systemName: )
이 있습니다. 이제 시스템 아이콘을 초기화할 수 있습니다. - 지금까지는
downloads
으로 직접 들어가는 Safari에서 무언가를 다운로드했습니다. 폴더이지만 올해 Safari는 업데이트를 받았고 기본 다운로드 폴더를 원하는 다른 폴더로 변경할 수 있습니다. USB 드라이브도 선택할 수 있습니다. UIStoryboardSegue
개선 . Apple은 새로운IBSegueAction
을 도입했습니다. 수정자. 이제 초기화해야 하는 대상 뷰 컨트롤러에 추가 컨텍스트와 매개변수를 직접 전달할 수 있습니다.- 앱은 상황에 따라 특정 시간에 Siri에 예약 정보를 제공하여 사용자가 상황에 따라 적절한 조치를 취할 수 있도록 합니다. 예를 들어 호텔 예약을 확인하고 항공편 체크인을 미리 알리고 렌터카 반납에 대한 도움을 받을 수 있습니다.
- Core NFC 프레임워크를 사용하면 이제 앱에서 NDEF 형식의 태그 쓰기를 포함하여 태그 쓰기를 지원할 수 있습니다. 프레임워크는 또한 ISO 7816, MIFARE, ISO 15693 및 FeliCa와 같은 기본 프로토콜을 사용하여 태그 읽기 및 쓰기를 지원합니다.
- Core Data 저장소를 CloudKit과 동기화하여 앱 사용자가 모든 기기에서 데이터에 원활하게 액세스할 수 있도록 합니다. Core Data with CloudKit은 로컬 지속성의 이점을 클라우드 백업 및 배포와 결합합니다.
- Metal은 GPU에 그래픽 및 컴퓨팅 파이프라인을 더욱 강력하게 제어하고 고급 GPU 처리를 더 쉽게 수행할 수 있는 기능을 추가하며 다양한 종류의 GPU를 지원하기 위해 수행해야 하는 작업을 단순화합니다. 시뮬레이터의 Metal 지원을 비롯한 새로운 도구를 사용하면 더 빠르게 시작하고 iOS 앱이 Metal을 올바르게 사용하고 있는지 이해할 수 있습니다.
- 새로운 VisionKit 프레임워크를 사용하면 앱에서 Notes 앱에서 캡처한 것과 같은 기기의 카메라를 사용하여 문서를 스캔할 수 있습니다. 이 기능을 Vision의 텍스트 인식과 결합하여 스캔한 문서에서 텍스트를 추출합니다.
- Core ML 3는 이제 기기별 모델 개인화를 지원하므로 앱 내에서 비공개로 사용자별 데이터를 사용하여 모델을 재교육하거나 미세 조정하여 모델을 업데이트할 수 있습니다. Core ML은 또한 100개 이상의 레이어 유형이 있는 동적 신경망에 대한 지원을 크게 확장했습니다.
- 새로운 PencilKit 프레임워크를 사용하면 손으로 그린 콘텐츠를 앱에 쉽고 빠르게 통합할 수 있습니다. PencilKit은 Apple Pencil 또는 사용자의 손가락에서 입력을 받아 iOS 또는 macOS에 표시할 고품질 이미지로 변환하는 iOS 앱용 그리기 환경을 제공합니다. 환경에는 선을 만들고 지우고 선택하는 도구가 함께 제공됩니다.
- MetricKit은 시스템에서 캡처한 앱에 대한 온디바이스 전력 및 성능 측정항목을 제공하는 새로운 프레임워크로, 이를 통해 앱 성능을 개선할 수 있습니다.
- 햅틱 패턴을 구성하고 재생하여 앱의 햅틱 피드백을 맞춤설정할 수 있는 새로운 Core Haptics 프레임워크입니다.
- 새로운 Apple CryptoKit 프레임워크를 사용하여 암호학적으로 안전한 다이제스트 계산 및 비교, 공개 키 암호화를 사용하여 디지털 서명 생성 및 평가, 대칭 키 생성, 다음과 같은 다른 작업에서 사용과 같은 일반적인 암호화 작업을 안전하고 효율적으로 수행합니다. 메시지 인증 및 암호화.
- Combine은 시간 경과에 따른 값 처리를 위한 선언적 Swift API를 제공하는 새로운 프레임워크입니다. 이러한 값은 사용자 인터페이스 이벤트, 네트워크 응답, 예약된 이벤트 및 기타 여러 종류의 비동기 데이터를 나타낼 수 있습니다. Combine을 사용하면 변경할 수 있는 값을 노출하는 게시자와 게시자로부터 해당 값을 받는 구독자를 선언합니다. Combine을 사용하면 이벤트 처리 코드를 중앙 집중화하고 중첩 클로저 및 규칙 기반 콜백과 같은 번거로운 기술을 제거하여 코드를 더 쉽게 읽고 유지 관리할 수 있습니다.
- 새로운 BackgroundTasks 프레임워크를 사용하여 앱이 백그라운드에 있는 동안 앱 콘텐츠를 최신 상태로 유지하고 장기 실행 작업을 수행하세요.
- RealityKit은 AR 경험에 애니메이션, 물리학 및 공간 오디오를 추가하는 기능을 포함하여 증강 현실 앱에서 사용할 3D 콘텐츠를 시뮬레이션하고 렌더링하는 새로운 Swift 프레임워크입니다. RealityKit은 ARKit에서 제공하는 정보를 활용하여 가상 개체를 현실 세계에 매끄럽게 통합합니다.
- 기호 이미지는 앱에서 사용할 일관된 아이콘 세트를 제공하고 이러한 아이콘이 다양한 크기와 앱별 콘텐츠에 맞게 조정되도록 합니다. 심볼 이미지는 SVG 형식을 사용하여 선명도를 잃지 않고 크기가 조정되는 벡터 기반 모양을 구현합니다. 또한 가중치 및 기준선 정렬과 같이 일반적으로 텍스트와 관련된 많은 특성을 지원합니다.
- iOS 13에서는 사용자가 앱 사용자 인터페이스의 여러 인스턴스를 동시에 생성 및 관리하고 앱 전환기를 사용하여 전환할 수 있습니다. iPad에서 사용자는 앱의 여러 인스턴스를 나란히 표시할 수도 있습니다. UI의 각 인스턴스는 다른 콘텐츠를 표시하거나 콘텐츠를 다른 방식으로 표시합니다. 예를 들어 캘린더 앱은 특정 날짜와 한 달 전체의 약속을 나란히 표시할 수 있습니다.
- SwiftUI는 iOS, macOS, watchOS 및 tvOS용 사용자 인터페이스를 구축하기 위한 현대적인 접근 방식입니다. 선언적 구성 기반 프로그래밍을 사용하여 그 어느 때보다 빠르게 동적 인터페이스를 구축할 수 있습니다. 프레임워크는 앱의 사용자 인터페이스를 선언하기 위한 보기, 컨트롤 및 레이아웃 구조를 제공합니다. 또한 탭, 제스처 및 기타 유형의 입력을 앱에 전달하기 위한 이벤트 핸들러와 앱 모델에서 사용자가 보고 상호 작용할 보기 및 컨트롤에 이르기까지 데이터 흐름을 관리하는 도구를 제공합니다.
- 음성 제어 접근성 기능이 켜져 있으면 iOS 기기가 음성 제어 모드에 있음을 나타내는 파란색 마이크 아이콘이 기기 상단에 표시됩니다. 휴대전화에 관심이 없을 때 아이콘이 흐리게 표시됩니다.
- iOS 13의 새로운 기능 중 하나는 SMB를 사용하여 서버에 연결하는 파일 앱의 옵션입니다. 이 기능은 첫 번째 베타에서는 작동하지 않았지만 베타 2에서는 작동하므로 iOS 13 사용자는 가정용 NAS에 연결하는 등의 작업을 할 수 있습니다.
- Safari 공유 시트에서 웹 페이지를 공유할 때 PDF 또는 웹 아카이브로 공유하는 새로운 옵션이 있습니다. 각 앱 또는 작업에 가장 적합한 형식을 선택하는 "자동" 옵션도 있습니다.
- 더 이상 스팸 발신자가 없습니다. iOS 13은 이제 알 수 없는 발신자를 엄격하게 음소거하는 기능을 지원합니다.
- iOS 13에서는
UIImageAsset
에 새로운 메서드가 추가되었습니다. 이름이registerImage:withTraitCollection
임 프로그래밍 방식으로 밝고 어두움에 대한 동적 이미지를 만드는 데 사용할 수 있습니다. - 낮은 모바일 데이터로 실행 중이신가요? 로밍 요금제를 사용할 때 데이터 부족을 방지하기 위해 새로운 "낮은 데이터" 모드가 추가되었습니다.
- 와이파이가 안될 때 용량이 더 큰 앱을 다운로드하는 데 어려움을 겪을 때가 있습니다. 그러나 iOS 13 이후에는 거기에서 한 줄기 빛을 볼 수 있습니다. 이제 한도가 200MB로 증가했지만 여전히 충분하지 않습니까? 그런 다음 설정에서 제한을 제거할 수 있습니다.
- 원본 정보가 포함된 사진을 다른 사람과 공유합니다. iOS 13에서는 공유할 때 원본 정보를 추가할 수 있는 옵션을 제공합니다.
- iPhone을 음소거하십시오. Apple은 Apple 연필 충전 표시기와 일치하도록 완전히 새롭게 디자인된 음소거 표시기를 도입했습니다.
- 이제 추가 컨텍스트 및 인수를 사용하여 UIViewController 하위 클래스를 초기화할 수 있습니다(종속성 주입에 필요).
- 대표 팬이 아니시라면 반가운 소식이 있습니다. iOS 13에서는 일부 대리자 기반 API를 업데이트하여 기반 API를 차단했습니다.
- 삭제하기 위해 앱을 길게 누르고 십자가 아이콘을 탭할 필요가 없습니다. 이제 왼쪽으로 스와이프하여 AppStore 업데이트 페이지에서 앱을 제거할 수 있습니다.
- 지금까지 스크린샷은 이미지 형식으로만 촬영되었습니다. iOS 13에서는 pdf 형식의 스크린샷도 찍을 수 있습니다.
- iOS 13에는 새로운
_visualRecursiveDescription
이 있습니다. 뷰 계층 구조의 시각적 표현을 구성할 수 있는 개인 API입니다. LLDB에서 디버깅하는 데 매우 유용한 명령입니다. - 새로운
UICollectionViewCompositionalLayout
사용자 정의UICollectionViewLayout
없이 구성 레이아웃을 쉽게 만들 수 있도록 클래스가 UIKit에 추가되었습니다. . UITableViewStyle
enum이 새로운 공개UITableViewStyleInsetGrouped
을 얻었습니다. 그룹화된 스타일 테이블 보기를 만드는 데 사용할 수 있는 케이스입니다.- 파일 관리 API를 사용하는 iOS 앱은 이제 파일뿐만 아니라 전체 폴더에 대한 읽기/쓰기 액세스 권한을 부여받을 수 있습니다.
- 스크롤 보기에서 스와이프하는 것이 지겹습니까? iOS 13에서는 스크롤 표시기를 드래그하여 긴 문서를 이동할 수 있습니다.
- 어린이용 앱에는 타사 광고 또는 분석 소프트웨어가 포함될 수 없으며 데이터를 타사에 전송할 수 없습니다.
- MDM은 민감한 데이터에 대한 액세스를 제공하고 MDM 앱은 모바일 장치 관리 기능을 요청해야 하며 비즈니스 조직, 교육 기관 또는 정부 기관과 같은 상업적 기업 및 제한된 경우 MDM을 활용하는 회사에서만 제공할 수 있습니다. 자녀 보호를 위해. MDM 앱은 어떠한 목적으로든 데이터를 제3자에게 판매, 사용 또는 공개할 수 없으며 개인 정보 보호 정책에서 이를 약속해야 합니다. (스크린 타임과 유사한 기능을 위해 MDM을 남용한 앱을 의미).
예, 새로운 기능으로 가득 찬 꽤 긴 목록입니다. 개발자는 이 모든 기능을 사용하여 애플리케이션을 개선하고 원활하게 만들 수 있습니다. 이제 iOS 13과 함께 제공되는 새로운 프레임워크를 살펴보겠습니다.
프레임워크:
- 백그라운드 작업 :BackgroundTasks 프레임워크를 사용하여 앱 콘텐츠를 최신 상태로 유지하고 앱이 백그라운드에 있는 동안 완료하는 데 몇 분이 걸리는 작업을 실행할 수 있습니다. 더 긴 작업에는 선택적으로 전원이 공급되는 장치와 네트워크 연결이 필요할 수 있습니다. 앱이 시작될 때 작업에 대한 시작 핸들러를 등록하고 필요에 따라 예약합니다. 시스템이 백그라운드에서 앱을 실행하고 작업을 실행합니다.
- 결합: Combine 프레임워크는 시간 경과에 따른 값 처리를 위한 선언적 Swift API를 제공합니다. 이러한 값은 사용자 인터페이스 이벤트, 네트워크 응답, 예약된 이벤트 및 기타 여러 종류의 비동기 데이터를 나타낼 수 있습니다. 결합 선언 게시자 시간이 지남에 따라 변할 수 있는 값을 노출하고 구독자 게시자로부터 이러한 가치를 받을 수 있습니다.
- CoreAudioTypes: CoreAudioTypes 프레임워크는 다른 Core Audio 인터페이스에서 사용되는 공통 데이터 유형과 상수를 선언합니다. 이 프레임워크에는 몇 가지 편의 기능도 포함되어 있습니다.
- 핵심 햅틱: Core Haptics를 사용하면 맞춤형 햅틱 및 오디오 피드백을 앱에 추가할 수 있습니다. 햅틱을 사용하여 주의를 끌고 행동을 강화하는 촉각 및 오디오 피드백으로 사용자를 물리적으로 참여시킵니다. 일부 시스템 제공 인터페이스 요소(예:선택기, 스위치 및 슬라이더)는 사용자가 상호 작용할 때 자동으로 햅틱 피드백을 제공합니다. Core Haptics를 사용하면 기본 패턴 이상으로 햅틱을 구성하고 결합하여 이 기능을 확장할 수 있습니다.
- QuickLookThumbnailing :미니어처 표현 또는 썸네일을 만들 수 있습니다. , 파일 및 해당 콘텐츠를 앱에 표시하거나 운영 체제에 축소판을 제공합니다. 예를 들어 macOS는 Finder 앱 및 훑어보기 기능의 일부로 축소판을 표시합니다. QuickLookThumbnailing 프레임워크는
QLThumbnailGenerator
개체. - 연필 키트 :PencilKit을 사용하면 손으로 그린 콘텐츠를 iOS 또는 macOS 앱에 쉽고 빠르게 통합할 수 있습니다. PencilKit은 Apple Pencil 또는 사용자의 손가락에서 입력을 받아 iOS 또는 macOS에 표시할 고품질 이미지로 변환하는 iOS 앱용 그리기 환경을 제공합니다. 환경에는 선을 만들고 지우고 선택하는 도구가 함께 제공됩니다.
- RealityKit :RealityKit 프레임워크를 사용하여 고성능 3D 시뮬레이션 및 렌더링을 구현합니다. RealityKit은 ARKit 프레임워크에서 제공하는 정보를 활용하여 가상 개체를 현실 세계에 원활하게 통합합니다.
- VisionKit :VisionKit은 앱이 시스템의 문서 스캐너를 사용할 수 있도록 하는 작은 프레임워크입니다. Notes의 카메라 기능처럼 전체 화면을 덮는 뷰 컨트롤러로 문서용 카메라를 제공합니다.
- 사운드 분석 :SoundAnalysis 프레임워크를 사용하여 오디오를 분석하고 웃음이나 박수와 같은 특정 유형으로 인식합니다. 프레임워크는
MLSoundClassifier
에 의해 훈련된 Core ML 모델을 사용하여 분석을 수행합니다. . 스트리밍 또는 파일 기반 오디오를 분석하는 프레임워크의 기능을 사용하면 앱에 지능형 오디오 인식 기능을 추가할 수 있습니다. - CryptoKit :Apple CryptoKit을 사용하여 일반적인 암호화 작업 수행:암호화로 안전한 다이제스트를 계산하고 비교합니다. 공개 키 암호화를 사용하여 디지털 서명을 생성 및 평가하고 키 교환을 수행합니다. 메모리에 저장된 키로 작업하는 것 외에도 Secure Enclave에 저장되고 관리되는 개인 키를 사용할 수도 있습니다. 대칭 키를 생성하고 메시지 인증 및 암호화와 같은 작업에 사용합니다. 하위 수준 인터페이스보다 CryptoKit을 선호합니다. CryptoKit은 앱이 원시 포인터를 관리하지 않도록 하고 메모리 할당 해제 중에 민감한 데이터를 덮어쓰는 것과 같이 앱을 더욱 안전하게 만드는 작업을 자동으로 처리합니다.
- 지도 웹 스냅샷 :지도 웹 스냅샷 서비스를 사용하여 URL에서 정적 지도 이미지를 생성할 수 있습니다. 대화형 지도가 필요하지 않은 경우 언제든지 스냅샷을 사용할 수 있으며, 일반적으로 웹페이지 및 이메일 클라이언트와 같이 JavaScript를 사용할 수 없는 장소에서 이미지 URL ( )을 사용합니다.
- 드라이버 키트 :DriverKit을 사용하여 사용자가 Mac에 설치하는 장치 드라이버를 만듭니다. DriverKit으로 빌드된 드라이버는 시스템 보안 및 안정성 향상을 위해 커널 확장이 아닌 사용자 공간에서 실행됩니다.
- MetricKit :MetricKit을 사용하면 시스템에서 캡처한 온디바이스 앱 전원 및 성능 메트릭을 받을 수 있습니다. 등록된 앱은 하루에 최대 한 번 이전 24시간에 대한 데이터가 포함된 보고서를 수신합니다. 보고서의 데이터를 사용하여 앱 성능을 개선하세요.
- 시스템 확장 :시스템 확장을 생성하면 커널 확장(KEXT) 개발과 관련된 위험 없이 앱이 사용자의 Mac 기능을 향상시킬 수 있습니다. 시스템 확장은 macOS의 보안이나 안정성을 손상시킬 수 없는 사용자 공간에서 실행됩니다. 시스템은 이러한 확장에 높은 수준의 권한을 부여하므로 이전에 KEXT에 예약된 종류의 작업을 수행할 수 있습니다.
- EndpointSecurity :Endpoint Security 라이브러리를 사용하여 보안 관련 소프트웨어를 생성합니다. Endpoint Security 클라이언트는 잠재적으로 악의적인 활동에 대해 시스템 이벤트를 모니터링합니다. 클라이언트는 보류 중인 이벤트를 승인하거나 이미 발생한 이벤트에 대한 알림을 수신하기 위해 Endpoint Security에 등록합니다. 이러한 이벤트에는 프로세스 실행, 파일 시스템 마운트, 프로세스 분기 및 신호 발생이 포함됩니다.
- USBSerialDriverKit :USBSerialDriverKit 프레임워크는 모뎀 및 직렬 어댑터와 같은 USB 장치용 직렬 통신 드라이버를 개발하기 위한 API를 제공합니다. 프레임워크는 전송 속도 및 패리티와 같은 속성을 설정하고 기기의 UART(Universal Asynchronous Receiver/Transmitter)와 함께 작동하는 기능을 추가하여 DriverKit을 기반으로 합니다.
- USBDriverKit :USBDriverKit 프레임워크를 사용하여 macOS에서 사용할 사용자 지정 또는 비클래스 호환 USB 장치용 드라이버를 개발합니다. USBDriverKit은 장치를 연결 및 구성하고 USB 메시지 및 스트림 파이프를 생성하여 데이터를 교환하는 데 사용할 수 있는 C++ 클래스를 제공합니다. USBDriverKit 장치는 DriverKit 프레임워크에 정의된 핵심 유형과 함께 작동합니다.
- HIDDriverKit :HIDDriverKit 프레임워크는 키보드, 포인팅 장치, 펜 및 터치패드와 같은 디지타이저와 같은 휴먼 인터페이스 장치용 드라이버를 개발하기 위한 C++ 클래스를 제공합니다. HIDDriverKit은 DriverKit에 정의된 핵심 유형을 사용하고 휴먼 인터페이스 장치 개발에 특정한 기능을 추가합니다.
오늘은 그게 다야. 즐거운 코딩!!
???읽어주셔서 감사합니다???