Conferences Condensed

Conferences Condensed: WWDC21

A few of our favorite sessions

Another year, another great WWDC. The Lickability team watched a lot of videos from this year’s conference in our Discord—but here are a few that we loved the most.

Demystify SwiftUI

Many Lickability engineers have taken the leap into SwiftUI on client and internal projects, so needless to say we were eager to watch any sessions that focused on this year’s improvements to the framework. However, the session that stuck out to me the most wasn’t focused on the introduction of new APIs. Demystify SwiftUI has re-shaped the way I think about building SwiftUI views, with a focus on performance and correctness.

SwiftUI promises the ability to describe your UI and let the framework figure out the best approach to build, render, and animate it. In practice, however, having an understanding of exactly how its performant view diffing works, including view identity and the lifetime of view state, is essential for efficient output, accurate animations, and preventing tricky bugs. Until now, this was simply (educated) guesswork about what was going on under the hood, so it’s so nice to finally have the answers on how to rely on SwiftUI’s strengths. After this session, you may think twice about unnecessary branching and type-erasing with AnyView!

Michael Liberatore

Make blazing fast lists and collection views

iOS 15 introduces prepareThumbnail(of size: CGSize) for efficiency with large images that can scale and prepare an image to a smaller size. Which saves a lot of CPU time and memory.

// Using prepareThumbnail
// Initialize the full image
let profileImage = UIImage(...)
// Set a placeholder before preparation
posterAvatarView.image = placeholderImage
// Prepare the image
profileImage.prepareThumbnail(of: posterAvatarView.bounds.size) { thumbnailImage in
  DispatchQueue.main.async {
    self.posterAvatarView.image = thumbnailImage
  }
}

At one point or another, almost every iOS developer comes across image loading performance bugs or hitches. This new API looks like a promising enhancement for asynchronous content in collection or list views.

Daisy Ramos

The process of inclusive design and The practice of inclusive design

The design talks at WWDC are always my favorite, and this year was no exception. The pair of talks on inclusive design were incredibly well thought-out looks at the axes of inclusion that designers can and should consider when designing apps and their intersections. While we often talk about accessibility as one of these areas, but Apple took time to cover religion, race, class, gender and sexuality and how they impact the experiences our users have in apps. There’s even a new Inclusion section in the Human Interface Guidelines.

Matthew Bischoff

Mines a two-parter: The practice of inclusive design and The process of inclusive design. Here are some of my takeaways:

  • Reach the largest audience by being inclusive
  • You want a user to feel like you designed your app with them in mind
  • Design is not just how the app looks; it’s the content (words, images, audio, video, and accessibility features you implement)

6 practices

  1. Tell diverse stories
  2. Avoid stereotypes
  3. Adopt accessibility
  4. Localize for culture
  5. Use color mindfully
  6. Encourage self-expression

Inclusive design is better for everyone

  • Empower and delight
  • Inclusion is a journey
  • Build diverse teams and empower them
  • See differences as an asset
  • Budget time and space to think inclusively, it doesn’t come for free

Thomas Devuono

Let us know what your favorite WWDC21 sessions were—we’d love to hear from you on Twitter!