100 Days of SwiftUI

Day 63

2026-07-16

Project 13, part 2

we’re starting to venture more into places where SwiftUI feels a bit less pleasing to work with. Today you’re going to see how Core Image integrates with SwiftUI, and the answer is “not very well”. We’re also going to start looking at how UIKit integrates with SwiftUI, and again the answer isn’t great – we need to put in quite some work to squeeze UIKit’s round peg into a SwiftUI-shaped hole

Integrating Core Image with SwiftUI

  • Core Image is for modifying existing images
  • but it is painful to use
  • UIImage — UIKit image
  • CGImage — Core Graphics image
  • CIImage — “an image recipe”
  • these image types are pure data – we can’t place them into a SwiftUI view hierarchy
samoyed sketchsamoyed sketch

a big bundle of confusingness

  • there are a ton of filters and effects in CIFilter, but their parameters aren’t interchangeable
  • use older API to create dynamic parameter settings
    • basically you ask the filter what it supports, and if it supports it you can assign a value

Showing empty states with ContentUnavailableView

A special view to let the user know there is nothing to show, like, they haven’t saved any data yet.