WWDC 2019 The new framework

WWDC 2019 The new framework

Reference translated from: https: //developer.apple.com/documentation/



RealityKit

https://developer.apple.com/documentation/realitykit
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+


WWDC 2019 : Building Apps with RealityKit
https://developer.apple.com/videos/play/wwdc2019/605/


Simulate and render 3D content for use in your augmented reality apps.

Simulation and rendering 3D content in your augmented reality (AR) applications.


Overview

Use the RealityKit framework to implement high-performance 3D simulation and rendering. RealityKit leverages information provided by the ARKit framework to seamlessly integrate virtual objects into the real world.

Use RealityKit’s rich functionality to create compelling augmented reality (AR) experiences.

  • Import fully formed assets, including sophisticated compositions that you make with the Reality Composer app, or build them from meshes, materials, and textures.

  • Place audio sources in the environment.

  • Animate objects, both manually and with physics simulations.

  • Respond to user input and changes in the environment.

  • Synchronize across devices, enabling group AR experiences.


Use RealityKit framework to achieve high expression of 3D modeling and rendering. RealityKit use information ARKit framework provided by the seamless convergence of virtual objects and the real world.

Use RealityKit functions to create a strong AR experience.

  • The introduction of fully formed resource contains you in Reality Composer complex in composition.
  • Audio resources placed in the environment.
  • Let objects to life, and physical modeling of the included manual;
  • Interact with the user input, and changes in the environment.
  • Cross-device synchronization, to achieve experience AR group.

PencilKit

https://developer.apple.com/documentation/pencilkit
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+


Related WWDC video: "Introducing PencilKit"

https://developer.apple.com/videos/play/wwdc2019/221/


Capture touch input as an opaque drawing and display that content from your app.

Capture touch input from your application as writing and presentation.


Overview

PencilKit makes it easy to incorporate hand-drawn content into your iOS or macOS apps quickly and easily. PencilKit provides a drawing environment for your iOS app that takes input from Apple Pencil, or the user’s finger, and turns it into high quality images you display in either iOS or macOS. The environment comes with tools for creating, erasing, and selecting lines.

You capture content in your iOS app using a PKCanvasViewobject. The canvas object is a view that you integrate into your existing view hierarchy. It supports the low-latency capture of touches originating from Apple Pencil or your finger. It then vends the final results as a PKDrawingReference object, whose contents you can save with your app’s content. You can also convert the drawn content into an image, which you can display in your iOS or macOS app.

PencilKit to let iOS and macOS handwritten content becomes quick. PencilKit to ios application environment provides a written input from Apple Pencil or the user's finger, and this translated into high-quality images displayed on iOS or macOS. Start by creating this environment, erase, or select lines.

You use the PKCanvasViewobject snap content in iOS. canvas object is a view, it can be integrated in your view structure. It provides a low-latency capture touch a pencil or a finger. Then generate PKDrawingReferenceresult objects, you can save the contents of the object. You can also convert content to draw a picture to show your iOS or macOS applications.


VisionKit

https://developer.apple.com/documentation/visionkit
iOS 13.0+
UIKit for Mac 13.0+


Use the iOS camera to scan documents like those you capture in the Notes app.

Like the memo application, the use of iOS camera to scan a document.


Overview

VisionKit is a small framework that lets your app use the system’s document scanner. Present the document camera as a view controller, which covers the entire screen like the camera function in Notes. Implement the VNDocumentCameraViewControllerDelegate in your own view controller to receive callbacks from the document camera, such as completed scans.

VisionKit is a lightweight framework that allows your application to use document scanner system.

As a document camera to show a full-screen view controller VC. Use at your own VC in VNDocumentCameraViewControllerDelegateto accept the document camera complete pullback after scanning.


SoundAnalysis

https://developer.apple.com/documentation/soundanalysis
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+
tvOS 13.0+
watchOS 6.0+


Analyze streamed and file-based audio to classify it as a particular type.

Based on analysis of the audio file or stream, as a special type of classification.


Overview

Use the SoundAnalysis framework to analyze audio and recognize it as a particular type, such as laughter or applause. The framework performs its analysis using a Core ML model trained by an MLSoundClassifier. Using the framework’s ability to analyze streamed or file-based audio lets you add intelligent audio recognition capabilites to your app.

Analyzing the audio, recognizes it as a particular type, such as laughing or cheering use SoundAnalysis frame. The framework uses the MLSoundClassifierCore ML model training to achieve his analysis. Using this framework to analyze the audio stream or file you can make a more intelligent application add audio recognition.


Core Haptics

https://developer.apple.com/documentation/corehaptics
iOS 13.0+
UIKit for Mac 13.0+


Compose and play haptic patterns to customize your iOS app’s haptic feedback.

The composition and the use of tactile pattern, the tactile feedback to customize your iOS applications.


Overview

Core Haptics lets you add customized haptic and audio feedback to your app. Use haptics to engage users physically, with tactile and audio feedback that gets attention and reinforces actions. Some system-provided interface elements—like pickers, switches, and sliders—automatically provide haptic feedback as users interact with them. With Core Haptics, you extend this functionality by composing and combining haptics beyond the default patterns.

Your app can play custom haptic patterns crafted from basic building blocks called haptic events (CHHapticEvent). Events can be transient, like the feedback you get from toggling a switch, or continuous, like the vibration or sound from a ringtone. You can use transient and continuous patterns independently, or build your pattern from precise combinations of the two. For example, the following haptic pattern combines a series of transient haptic events, shown in blue as short impulses, with a single continuous haptic event, shown in orange:

A visual representation of a haptic pattern as a series of filled bars. Short blue bars represent transient events, and the wide orange ramp represents a continuous event of decreasing intensity.

Intensity maps to the haptic’s amplitude or strength. Sharpness maps to the persistence or frequency of the haptic pattern.

The Core Haptics engine also supports an event type that allows you to play customized audio content as part of your pattern.

To add haptics to your app, you create an instance of CHHapticEngine, load a pattern, and use the engine to create a player to play that pattern. You create a pattern in one of three ways:

  • Dictionaries. Each entry in the dictionary defines a single characteristic of the haptic, like its intensity, start time, or duration. See Playing a Single-Tap Haptic Pattern to learn more about creating a dictionary inline.
  • Arrays of events and parameters. The CHHapticEvent class represents a haptic event as an object in code. The key-value pairs in a dictionary correspond to the properties and parameters associated with a CHHapticEvent. Haptic event objects are just another representation of the haptics dictionary.
  • AHAP files. This JSON-compliant file format specifies a haptic pattern through key-value pairs, analogous to a dictionary literal, except in a text file. Add this file to your Xcode project bundle.

All forms of pattern creation result in patterns with the exact same kind of content.


Core Audio Types

https://developer.apple.com/documentation/coreaudiotypes
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+
tvOS 13.0+
watchOS 6.0+


Use specialized data types to interact with audio streams, complex buffers, and audiovisual timestamps.

Use special data types and audio streams, complex buffering, audition interaction time stamp.


Overview

The CoreAudioTypes framework declares common data types and constants used by other Core Audio interfaces. This framework also includes a handful of convenience functions.

If you are unfamiliar with the specialized terminology used when manipulating audio data, refer to Core Audio Glossary.

CoreAudioTypes constant common data type declaration frame and the other Core Audio interface. This framework contains a number of convenient features.

If you are not familiar with the specific data when operating the audio data, see Core Audio Glossary .


QuickLookThumbnailing

https://developer.apple.com/documentation/quicklookthumbnailing
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+

No introduction.


Combine

https://developer.apple.com/documentation/combine
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+
tvOS 13.0+
watchOS 6.0+


Customize handling of asynchronous events by combining event-processing operators.

Synthetic definition processing operation from the event handling asynchronous events.


Overview

The Combine framework provides a declarative Swift API for processing values over time. These values can represent user interface events, network responses, scheduled events, and many other kinds of asynchronous data. Combine declares publishers to expose values that can change over time, and subscribers to receive those values from the publishers.

  • The Publisher protocol declares a type that can deliver a sequence of values over time. Publishers have operators to act on the values received from upstream publishers and republish them.
  • At the end of a chain of publishers, a Subscriber acts on elements as it receives them. Publishers only emit values when explicitly requested to do so by subscribers. This puts your subscriber code in control of how fast it receives events from the publishers it’s connected to.

Several Foundation types expose their functionality through publishers, including Timer, NotificationCenter, and URLSession. Combine also provides a built-in publisher for any property that’s compliant with Key-Value Observing.

You can combine the output of multiple publishers and coordinate their interaction. For example, you can subscribe to updates from a text field’s publisher, and use the text to perform URL requests. You can then use another publisher to process the responses and use them to update your app.

By adopting Combine, you’ll make your code easier to read and maintain, by centralizing your event-processing code and eliminating troublesome techniques like nested closures and convention-based callbacks.

Combine framework provides descriptive Swift API to process value with time. These values may be user interface events, the network in response to the predetermined event, and is shown in many of the synchronization data. Combine statement released by ( Publishers ) to reveal these data will change over time.


BackgroundTasks

https://developer.apple.com/documentation/backgroundtasks
iOS 13.0+
UIKit for Mac 13.0+
tvOS 13.0+


Request the system to launch your app in the background to run tasks.

Request the system started in the background application to perform the task.


Overview

Use the BackgroundTasks framework to keep your app content up to date and run tasks requiring minutes to complete while your app is in the background. Longer tasks can optionally require a powered device and network connectivity.

Register launch handlers for tasks when the app launches and schedule them as required. The system will launch your app in the background and execute the tasks.

Use BackgroundTasks framework to keep your latest application content, application in the background tasks take several minutes to complete. Long tasks required can selectively charge a sufficient holding device and the communication network.


IOUSBHost

https://developer.apple.com/documentation/iousbhost
macOS 10.15+
UIKit for Mac 13.0+

No introduction.


Logging

macOS 10.15+
UIKit for Mac 13.0+
https://developer.apple.com/documentation/logging

No introduction.


MetricKit

https://developer.apple.com/documentation/metrickit
iOS 13.0+
UIKit for Mac 13.0+


Aggregate and analyze per-device reports on power and performance metrics.

Aggregation and analysis report for each device power and performance indicators.


Overview

With MetricKit, you can receive on-device app power and performance metrics captured by the system. A registered app receives reports containing data about the previous 24 hours at most once per day.

Use the data in the reports to help improve the performance of your app.

The framework includes:

  • A manager class and a subscriber protocol.
  • A payload class for reported data.
  • Classes for each category of metrics.
  • Classes for measurement units, such as bars of cellular connectivity.
  • Classes for representing accumulated data such as histograms.

NoteThis framework doesn’t return data to iPad apps running in macOS.

Use MetricKit, you can receive reports and performance indicators of power application on the system capture device. A registered app every day to accept the report includes data up to the past in the past 24 hours.

Using the data in the report to help improve the performance of your application is complete.

This framework contains

  • And a member of the management to a protocol;
  • Report a load type data;
  • Each of a classification type of metrics;
  • Measuring unit classes, such as a cellular connection bars ???

Apple CryptoKit

https://developer.apple.com/documentation/cryptokit
iOS 13.0+
Mac OS 10.15+


Perform cryptographic operations securely and efficiently.

Safe and effective implementation of cryptographic operations.


Overview

Use Apple CryptoKit to perform common cryptographic operations:

  • Compute and compare cryptographically secure digests.
  • Use public-key cryptography to create and evaluate digital signatures, and to perform key exchange. In addition to working with keys stored in memory, you can also use private keys stored in and managed by the Secure Enclave.
  • Generate symmetric keys, and use them in operations like message authentication and encryption.

Prefer CryptoKit over lower-level interfaces. CryptoKit frees your app from managing raw pointers, and automatically handles tasks that make your app more secure, like overwriting sensitive data during memory deallocation.

Use CryptoKit to perform cryptographic operations:

  • Calculating and comparing the password security summary;

  • Evaluate the use of public key to create a digital signature, perform key exchange. In addition to the key stored in memory, you can also use the Secure Enclave private key storage and management.

  • Generating a symmetric key and uses the message encryption and authorization.


UIKit for Mac 13.0+

tvOS 13.0+


NetworkingDriverKit

macOS 10.15+

No introduction.


DriverKit

https://developer.apple.com/documentation/driverkit
macOS 10.15+


Develop device drivers that run in user space.

And developing device drivers run in user space.


Overview

Use DriverKit to create device drivers that the user installs on their Mac. Drivers built with DriverKit run in user space, rather than as kernel extensions, for improved system security and stability.

The DriverKit framework provides C++ classes for IO services, device matching, memory descriptors, and dispatch queues. It also defines IO-appropriate types for numbers, collections, strings, and other common types. You use these with family-specific driver frameworks like USBDriverKit and HIDDriverKit.

Develop your driver with DriverKit, and package it in an app that uses the SystemExtensions framework to install and upgrade the driver on the user’s Mac.

Use DriverKit to create a device driver on your Mac. In order to improve the security and stability of the system, using DriverKit to create an alternate kernel driver to expand the user space.

DriverKit IO service framework, the matching device, memory descriptor queue scheduling provide C ++ classes. It also defines the appropriate IO type numbers, collections, strings and other common types. You can use the framework of the relevant series of drives, such as USBDriverKit and HIDDriverKit .

Use DriverKit develop your drive, and it is packaged into a framework using SystemExtensions installations and upgrades driven app.


EndpointSecurity

https://developer.apple.com/documentation/endpointsecurity
macOS 10.15+
UIKit for Mac 13.0+


Develop system extensions that enhance user security.

Development system expansion to enhance user safety.


Overview

Use the Endpoint Security library to create security-related software. Endpoint Security clients monitor system events for potentially malicious activity. Your client registers with Endpoint Security to authorize pending events, or receive notifications of events that have already occurred. These events include process executions, mounting file systems, forking processes, and raising signals.

Develop your system extension with Endpoint Security and package it in an app that uses the SystemExtensions framework to install and upgrade the driver on the user’s Mac.

Endpoint Security using resources to create secure software. Endpoint Security client to potential malicious activity simulation system events. Your client registers Endpoint Security to suspend the authorization for the event, or to receive notification of events has occurred. These events include the process of implementation, mount the file system, the distribution process and the initiation signal.

Use Endpoint Security to expand the development of your system, and it is packaged into a framework using SystemExtensions installations and upgrades driven app.


ExecutionPolicy

https://developer.apple.com/documentation/executionpolicy
macOS 10.15+
UIKit for Mac 13.0+

No introduction.


SystemExtensions

https://developer.apple.com/documentation/systemextensions
macOS 10.15+


Install and manage user-space code that extends the capabilities of macOS.

Installation and management of user space to expand macOS coding function.


Overview

Creating system extensions allows your app to enhance the capabilities of the user’s Mac, without the associated risks of developing kernel extentions (KEXTs). System extensions run in user space, where they can’t compromise the security or stability of macOS. The system grants these extensions a high level of privilege, so they can perform the kinds of tasks previously reserved to KEXTs.

You use frameworks like DriverKit and USBDriverKit to write your extension, before packaging the driver in your app bundle. At runtime, your app calls the SystemExtensions framework to install or update the extension for the user. Once installed, an extension remains available for all users on the system. Users can disable the extension by deleting the last copy of the host app, which deletes the extension.

Create a system that allows you to develop applications without adventure kernel development to expand (KEXTs), and enhance the function of Mac users. The system allows the user to expand the space, they can not compromise on the security and stability of macOS. These systems grant to expand high-level privileges, so they can perform a variety of tasks KEXTs reserved.

Before you can drive packaged into your app, use similar DriverKit and USBDriverKit framework to write your expansion. At runtime, your application will call SystemExtensions framework to install or update. Once installed, the drive will be effective for all users on the system. Users can delete the main application, the drive to delete invalid.


USBDriverKit

macOS 10.15+


Develop drivers for USB-based devices.

USB-based device driver development.


Overview

Use the USBDriverKit framework to develop drivers for custom or non-class compliant USB devices for use with macOS. USBDriverKit provides C++ classes you can use to attach and configure your device, and create USB message and stream pipes to exchange data. USBDriverKit devices work with the core types defined in the DriverKit framework.

Develop your driver with DriverKit and USBDriverKit, and package it in an app that uses the SystemExtensions framework to install and upgrade the driver on the user’s Mac.

Use USBDriverKit framework to develop custom USB drive on a Mac or no hierarchy. USBDriverKit provides C ++ classes, you can use to configure your device and create a message and USB to exchange data flow pipeline. USBDriverKit effective DriverKit apparatus frame defined core types.

Use DriverKit and USBDriverKit develop your drive, it needs to be packaged into a framework using SystemExtensions installations and upgrades driven app.


USBSerialDriverKit

https://developer.apple.com/documentation/usbserialdriverkit
macOS 10.15+


Develop drivers for serial IO devices connected to your Mac.

Development drive connected Mac serial IO devices.


Overview

The USBSerialDriverKit framework provides an API for developing serial communication drivers for USB devices like modems and serial adapters. The framework builds on DriverKit by adding the ability to set attributes like baud rate and parity, and work with a device’s universal asynchronous receiver/transmitter (UART).

Develop your driver with DriverKit and USBSerialDriverKit, and package it in an app that uses the SystemExtensions framework to install and upgrade the driver on the user’s Mac.

USBSerialDriverKit communication interface provides a serial IO driver development, such as modem and USB serial adapter devices. This framework based DriverKit construct and add the baud rate, parity function, a Universal Asynchronous Receiver Transmitter device.


HIDDriverKit

https://developer.apple.com/documentation/hiddriverkit
macOS 10.15+


Develop drivers for devices that users interact with.

Driven equipment development and user interaction.


Overview

The HIDDriverKit framework provides C++ classes for developing drivers for human interface devices: keyboards, pointing devices, and digitizers like pens and touch pads. HIDDriverKit uses the core types defined in DriverKit, and adds features specific to human interface device development.

Develop your driver with DriverKit and HIDDriverKit, and package it in an app that uses the SystemExtensions framework to install and upgrade the driver on the user’s Mac.

HIDDriverKit provides C ++ classes to develop human-computer interaction device drivers, these devices such as: keyboards, pointing devices, pen and touch pad. HIDDriverKit use DriverKit defined core types, and add future features user interaction device development.


SwiftUI

https://developer.apple.com/documentation/swiftui
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+
tvOS 13.0+
watchOS 6.0+


Declare the user interface and behavior for your app on every platform.

Stated in the application user interface and performance of each platform.


Overview

SwiftUI provides views, controls, and layout structures for declaring your app’s user interface. The framework provides event handlers for delivering taps, gestures, and other types of input to your app, and tools to manage the flow of data from your app’s models down to the views and controls that users will see and interact with.

Create your own custom views that conform to the View protocol, and compose them with SwiftUI views for displaying text, images, and custom shapes using stacks, lists, and more. Apply powerful modifiers to built-in views and your own views to customize their rendering and interactivity. Share code between apps on multiple platforms with views and controls that adapt to their context and presentation.

An image showing an app built using SwiftUI running on the Mac, iPhone, and Apple Watch.

You can integrate SwiftUI views with objects from the UIKit, AppKit, and WatchKit frameworks to take further advantage of platform-specific functionality. You can also customize accessibility support in SwiftUI, and localize your app’s interface for different languages, countries, or cultural regions.

SwiftUI application user interface to provide a view of life, and the control layout structure. This framework provides respective gestures input event processing; and provides tools to manage the data flow from an application to a user interaction model view control.

Create a custom view View to comply with the agreement, and the use of SwiftUI views to display text, images and custom shapes to execute them. Applications built a powerful editor to make your own view and the view produce custom rendering and interactivity. Sharing code between different platforms and adaptation.

You can integrate SwiftUI view from UIKit, AppKit and WatchKit framework, to give full play to platform features. You can also customize the accessibility support in SwiftUI, and the application interface internationalization.


Bundle Resources

https://developer.apple.com/documentation/bundleresources
iOS 13.0+
macOS 10.15+
tvOS 13.0+
watchOS 6.0+


Resources located in an app, framework, or plugin bundle.

Applications, frameworks, plug-in package of resources.


Overview

A bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code. The bundle contains resources that may be accessed at runtime, such as images, audio files, user interface files, and property lists.

bundle package is a standardized file hierarchy folder that contains executable code and source code to be used. bundle package contains resources that can be accessed at run time, such as images, audio files, and user interaction file plist file.


LinkPresentation

https://developer.apple.com/documentation/linkpresentation
iOS 13.0+
macOS 10.15+
UIKit for Mac 13.0+

No description


Iori 2019-06-18

Published 164 original articles · won praise 162 · Views 650,000 +

Guess you like

Origin blog.csdn.net/lovechris00/article/details/92801736