Platform State of the Union 2021 Recap

ShareTweetPinShareBuffer0 SharesMany people aren’t aware but Apple has another presentation during WWDC that comes after the keynote. Apple calls it the Platforms State of the Union. You can still watch the replay for this 75 minute presentation on their website. (Or you can read my recap notes below) In this presentation targeted at developers, they… View Article
Written by

Chris C

Last Updated on

09 Jun 2021

Many people aren’t aware but Apple has another presentation during WWDC that comes after the keynote.

Apple calls it the Platforms State of the Union. You can still watch the replay for this 75 minute presentation on their website. (Or you can read my recap notes below)

In this presentation targeted at developers, they dive deeper into the details about how we’ll be able to implement all of the new features they announced at the keynote.

In case you missed it or need a recap, here are my notes for everything from the Platforms State of the Union presentation.

(If you’d like to see my reactions and thoughts on each of these things, check out my stream recaps: Part 1 and Part 2. I also wrote up recap notes for the WWDC keynote too)

Table of Contents


Xcode Cloud

  • Continuous integration and delivery
  • Code, Test, Integrate, Deliver, Refine
  • Deeply integrated into Xcode
  • All apple platforms
  • Built on the cloud
    • Build, Test, Code signing
  • Integrates with Testflight, App Store Connect
  • Integrates to major Git based source control providers
  • Private and secure

Build

  • 4 Steps to use Xcode Cloud
  • Select the product, confirm workflow, grant access to source code and link to app store connect
  • Auto detects the product
  • Review suggest workflow – Default is build every change made
  • Securely connect to hosted repo
  • Xcode will register app in app store connect
  • When build is finished, they’ll see the result within Xcode

Tests

  • Can run multiple test plans on multiple device simulators, platforms, OSes,
  • Can run on betas OSes too, without downloading the betas on your own system

Integrate

  • Can review pull requests, view comments and write comments from within Xcode

Deliver

  • Code signing in the cloud
  • No need to keep certificates and profiles up to date on your mac

Refine

  • Crash reports from testflight users from within Xcode

Secure

  • Source code only accessed during builds
  • Ephemeral build environments
  • Isolated team data
  • Securely managed keys and secrets
  • Two factor authentication
  • Free limited beta
  • Apple Developer account holders can sign up now
  • pricing and availability in fall
  • https://developer.apple.com/xcode-cloud/beta/

Swift Concurrency

  • Async / Await pattern
    • async keyword to mark a function as asynchronous
    • use the await keyword before calling the async function to indicate that other work can be done
  • Structured Concurrency
    • Structure your concurrent tasks in a more logical way
  • Actors
    • Safe concurrency
    • object that protects its own state
    • mutually exclusive access
    • can use “actor” keyword instead of “class” to create an actor type
    • Use the @MainActor keyword on a function to indicate that it is always run on the main thread.
    • You don’t have to use DispatchQueue.main.async

SwiftUI

  • New modifiers for SwiftUI List
  • swipeAction modifier for a list to implement list item swipe actions
  • refreshable modifier – Pull to refresh
  • You can now limit a modifier to a single platform
  • searchable modifier – Add search field at the top of a list
  • can do search suggestions too
  • AccessibilityRotor modifier – helps with voice over
  • accessibilityRepresentation modifier to inherit the full accessibility implementation of another control
  • SwiftUI Table component
    • can do multi-columns
  • Material support
  • Lots of other new things like
    • Async images
    • location button
    • custom drag previews
    • async task management

Swift Playgrounds 4

  • Learn how to code
  • Create apps on ipad
  • Can bring your work to Xcode
  • Create a new project
  • Has canvas preview on the right, code editor on the right
  • Has code completion
  • Has component library, where you can search for and add components, sf symbols and modifiers
  • Can take app full screen
  • Can send app to TestFlight from playgrounds
  • Need a developer account
  • Builds, packages and uploads to app store connect
  • Then you can go on app store connect to make it available to TestFlight

Augmented Reality

  • Traditionally, you need knowledge on how to create 3D models
  • RealityKit 2
    • Simplifies rendering, audio, animation and physics
    • In this release, they made it easier to make 3D models
    • Object Capture
      • Simplifies creating 3D models (in minutes)
      • Use your phone to capture 2D images (all angles), bring it into your Mac to use the Object Capture API to turn it into a 3D model, optimized for AR
      • In Swift, use PhotogrammetrySession class in RealityKit to point to the folder of images
      • Then generate
      • Generates usdz files, which are optimized for AR quick look so you can use the 3D model in Messages, Mail, Safari and other apps
      • Can also generate Obj or Usd asset bundles to be used for ray tracing or other post production workflows
      • The clone app for iOS can help you capture all the necessary angles for an object

Unified Metal Graphics Platform

  • Combination of Apple M1 chip, Apple GPU and unified memory
  • Enables graphics intensive tasks and workflows across all Apple platforms
  • More console, triple A games on Apple platforms
  • More graphics intensive renders
  • Advanced Graphics and Gaming Features
  • Graphics and Compute Integration
    • Metal can now call dynamic libraries and ray query primitives directly from shaders
    • Stochastic motion blur function
  • Variable Refresh Rate Displays
    • More control over the display
    • Use metal presentation time API and ProMotion Display adapt latency and tune presentation times
    • macOS Monterey adds support for adaptive sync displays
  • Support for more game controllers
    • including latest PS and Xbox controls complete with dual sense and haptics
    • New API to enable on-screen, virtual controller with a few lines of code
  • New Graphics Tools in Xcode
    • Selective Shader Debugging
    • Choose which functions to debug within a large shader which cuts down debug time
  • Texture Converter tool
    • More control over the texture converter pipeline
    • More support for texture compression formats
  • Metal Debugger Timeline View
    • new view to visually debug the timeline of events
    • visualize bottle necks

Focus

  • Notifications
    • Currently all notifications are the same
    • This new API will allow apps to assign a level of urgency to the notification so they can be classified
    • Passive – don’t wake the device. Not time sensitive
    • Active – play a sound / haptic. Normal notification
    • Time Sensitive – visually stands out, and stays on the screen longer, announced by Siri if wearing AirPods
    • Critical – plays a sound even if the device is muted. Reserved for serious health and safety concern. Requires a separate entitlement which you need to get approval for.
    • Communication from people. If your app is related to communication between people, you can specify your notifications as such. Apple treats these differently. Feature user avatars
  • Notification Summary
    • Delivers as a bundle at a specified time so the user can go through them at a time of their chosing
    • To deliver real time notifications to the user, mark your app’s notifications as Time Sensitive. However, they should actually be time sensitive.
    • A notification summary features two notifications and the rest is bundled as a list.
    • Notifications with thumbnails are considered for featuring
    • If your app has multiple notifications in the summary, they’ll be ordered by the relevancy score that you specified for each notification when you sent it.
  • Do not disturb
    • Silences all notifications
    • With focus, user can choose which apps or people can get through the do not disturb
    • Your app can get the users current focus

Screentime and Parental Controls

  • Screentime API for building parental control apps
  • Managed Settings
    • Gives a way to restrict what a child can do across all devices
    • Set a number of restrictions
  • Family Controls
    • Authorizes your app to be able to set these controls and restrictions
    • Allows parents to select activities (apps, websites etc) that they want to prevent
    • The selected activities to block will be tokenized so your app can’t see this sensitive information
  • Device Activity
    • Can register time windows for when particular tokenized activities are allowed

Widgets

  • New extra large size for widgets
  • New default home screen layouts that feature widgets
  • The on device intelligence may suggest your widget for the user to add
  • Intents API allows your app to suggest information and the OS will determine if they want to take that information to suggest your widget

SharePlay

  • Group Activities Framework
  • Can sync media playback so everyone’s watching/listening in lock step
  • Reliable Data Channel
    • You can use Apple’s servers as a host to sync state across all users in a group activity
    • So you can do group activities not just for media playback
Table of contents

    Get started for free

    Join over 2,000+ students actively learning with CodeWithChris
    0 Shares
    Share
    Tweet
    Pin
    Share
    Buffer