I'm wondering if by using Apple's private API I would be able to run my app in the background and provide a pop-over UI like the AssistiveTouch feature does, which can be activated from any part of the OS.
My app wouldn't need to be distributed through the App Store, so I have some freedom to explore use of such private routes.
Related
A streaming app that I'm using on iOS has a share button that allows me to hook into the sharing app extension. I'd like to be able to send the URL string that it has to a custom API on my server.
Would I need to create an entire app just to have that custom sharing method, or is there another way?
If that's the only way, how can I get that app on my phone without going through the store?
It seems like when I create, build and install apps through Xcode, Apple intentionally breaks the app after a short while?
We are allowed to build custom intent for Siri, by extending SiriKit.
Moreover, Apples present how to manage basic integrations and customizations to Siri Shortcuts and Shortcuts app
Link for shortcuts app
Nonetheless, some apps have their own shortcuts UI with a little customization; for instance with the button to allow access for API, how can we do that?
In the documentation presented by Apple, there is no such instruction for how is it possible to customize the UI inside the shortcuts app regarding the custom intent created by my app.
I tried to make custom failure for the Intent response but didn't find the option for API access. Like ↴
However nothing quite similar to the UI presented by Shortcuts App, while attempt to first run trello ↴
These actions are provided by the Shortcuts app itself rather than by Siri intents exposed by another app. Indeed, these actions don’t even need the Trello or Wunderlist apps installed.
This means that Shortcuts can present a different UI.
The UI that it will show for your app is defined by the parameters in your intents file.
You can’t create the same experience for your app, however the user can perform any required authorisation in your app itself and it is reasonable to expect that they have run your app before trying to set up shortcuts that use it.
This may seem overly ambitious, but I'm exploring the ability to present a view controller from one app in a separate app (both authored by me). I'm not talking about reusing a class, I'm referring to literally presenting a controller from another process over the foremost one.
I believe this is in the realm of XPC on macOS, and how share extensions currently work on iOS. Unfortunately I'm not looking for a share controller though.
Is this at all possible (even using private APIs if I have to)?
Because both apps are sandboxed by iOS, there is no way for either of them to locate and load (something from) the other. Extensions are the only way provided by Apple to have another app perform some action.
Using private APIs will not lift sandbox restrictions. With a jailbroken device, it would be possible to locate the other app. In that case -[NSBundle loadClassNamed:] would allow you to obtain and instantiate a class from a loaded (application) bundle, but it would still be controlled by the process that instantiated it.
So, no, what you ask is not realistically possible for apps that would be distributed to other users than yourself. If it's just for yourself, you might be able to get somewhere with a lot of work on creating, controlling and communicating between processes on jailbroken devices.
If you have your own server, then this is possible. Just have app1 send a trigger to your server, and then your server sends push notification to your app2. when user tap notification, it will open your app2 viewcontroller.
Is it possible to create an IOS Background Service ? Can it also be accessible from other applications?
Not without jailbraking the phone. And most certainly not for distributing over the AppStore.
You could create an application (with UI) that would be accessible to other applications via custom URL schemes (you could even set URL callbacks with the same mechanisms).
But it would be up to the user if they would decide to run or kill this app. It would not be a typical 'background task'.
Will developers be required to add code to their app to incorporate Action extensions?
Let's say I developed an image editor for iOS - but I want to use Snapseed's Action extensions but not Instagram's. Is that even possible?
No - The extension isn't an "extension" of your app. It's an extension of another app on the O/S the user has the option of utilizing given whatever context your app (the host app) is providing.
Think of it as the user getting to pick what they want to use, not you forcing them to use something. Plus, you have no control over what extension/app the user has installed on their device, so you cannot create a program to even try to depend on that.