My Action Extensions request for iOS
As I’ve wrapped up developing my first iOS app Buchen, one of the last things I’ve wanted to do was create an Action Extension. This seems obvious as my “test” app is a bookmark manager so surely the most obvious action is to take something from Safari and add it to Buchen. While share / action extensions are slightly misused (i.e. shares ones really as they are on the top so it’s not surprising) it seemed obvious to go with an Action Extension.
Okay, well it still assumes using UIKit. I’ll be honest, I don’t really want to learn it. It won’t go away quickly but it’s going away and Action Extensions allow you to have a non-UI based extension. This is what I really want and the reddit app Apollo does basically what I want. You click “Open in Apollo” and it goes off and gets opened in Apollo. All signs point to it likely using the app’s custom URL scheme.
I tried this and it doesn't work. iOS just flatly refuses so after much hunting around I found this tweet and the follow up reply where Christian Selig says he’s made something hacky and not ideal. So I gave up. Primarily because I think I know what he did and I’m afraid it won’t hang around in future version hence I’m not going to bother on my free app. It’s better for the feature to never be there rather than see it get lost.
I can kind of see where Apple is coming from by not allowing it but you can do it in “Today” widgets so it seems like a weird decision and while it’s not terribly hard if you know UIKit to put the necessary code in a shared area and then build a new UI, it is still duplication. I have a nice
buchen:// custom URL scheme that does exactly what I want already and no new code or a separate UI is required to maintain.
I hope Apple comes around to allow this. Restrict it parent app of the extension if you want, that’s fine and reasonable but please do allow us to do it. If it’s about putting people back, well there is always the little “back” option in the left hand corner. I think it would be nice to have the choice. User’s of our apps can decide if it was the right choice.
Until then, hopefully the next release sees the ability to do Action Extensions in SwiftUI instead.