New Objective-C project: what can't I do?

My next UIKit project will be in Objective-C. You can argue about why and such, but please know that there are idealist reasons for it.

Having said that, what are the main things that aren't supported anymore in Objective-C (= only in Swift)?

I don't mean language features, but mainly functional stuff like controls or services (eg. in-app purchases).

StoreKit V2 (Swift-only and only in iOS 15+) allows you to set a field when making a purchase that you can retrieve later in the appstore server API (still in beta) to find the account of the user (in your system) belonging to the Apple account that made the purchase. This field can't be set using the Objective-C StoreKit apis

https://developer.apple.com/documentation/storekit/product/purchaseoption/3749440-appaccounttoken https://developer.apple.com/documentation/appstoreserverapi/appaccounttoken

I was curious about this so I thought I’d check for Swift-only frameworks:

% cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks 
% ls -d *.framework/Headers > ~/objc.txt
% ls -d *.framework > ~/all.txt      

After massaging the data I bit I came up with this list:

  • Combine
  • CreateML
  • CryptoKit
  • DeviceActivity
  • FamilyControls
  • GroupActivities
  • ManagedSettings
  • ManagedSettingsUI
  • MusicKit
  • RealityFoundation
  • TabularData

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

New Objective-C project: what can't I do?
 
 
Q