3D Touch Quick Actions really slow to launch (restarts the app instead of resuming?) - ios

I've tried my best to look for a similar question on this site and on Google, but I couldn't find anything.
I have tried adding 3D Touch Quick Actions to my app, following one of the many tutorials found on the internet.
The problem is, everytime I perform the action from the home screen (testing on a 6S Plus), I see the LaunchScreen.storyboard screen and I have to wait a couple of seconds for the app to launch. This happens even if i just backgrounded the app. If I just tap the icon, I am instantly taken back to the last screen, but if I use the shortcut, it looks like the app restarts instead of resuming.
Is this the intended way of Quick Actions to work? Because it seems different to me with the Apple stock apps.

Related

showing splash screen on cold start of app links

I'm adding app linking to my android app and I'm noticing on cold starts there's this long period of a white screen, which the user could interpret it as the app is not responding.
I have a splash screen for normal operation of the app on the main activity using a special theme, but it looks like app linking bypasses that activity so is there a way to show a splash screen on the other screens when the app is accessed by a link action?
EDIT:
quick summary, the splash screen appears during the normal use of the app but when a link triggers the app to open, it's not.
I figured out a solution for myself.
I simplified the intent filters to all call from the main activity that has the splash screen so it will appear now on cold starts.
this cleaned up a few other issues so it's a win overall for me.

Do apps like Twitter implement custom relaunching when opened from background?

I've noticed that when I go off an app like Snapchat, Twitter etc for a few seconds then go back on it, it opens from background as expected, on to the view controller I was last on. However, if I go off the app for more than a few minutes, when I tap on the app it loads the splash screen again and opens the home page.
I initially thought this was standard iOS behaviour, but when I installed my app onto my device I have noticed that even if I go off it for hours, when I come back onto it, the last view controller I was on is shown.
I have thought about checking how long the app was in background by saving times in NSUserDefaults, but don't actually know if this is the right way of going about achieving that kind of behaviour?
Thanks!

Create home screen quick actions that do not open app?

I have home screen quick actions for my iOS 9 app, but I don't need it to open the app. It actually schedule reminders and that's it. Is there a way to make the home screen quick action not to open the app?
Quick actions are designed to be used to quickly navigate to a section of your app, eg on the camera app there is selfie mode, box mode, panorama mode, timelapse mode etc. These are all sections of the app. To the best of my knowledge you cant have a quick action that just runs code without opening the app. Otherwise how will the user know that the code has worked and it has been executed?
This functionality would be cool but i believe it is impossible as of current. The closest you can get is make it so it opens the app to a ViewController that just says "Reminder Scheduled".

Objective C - Detect if finger is held on screen at app startup

I'd like to perform an action when the user has their finger held on the screen when my app startups.
To give an example: When the App launches and the launch screen is showing up, the user has a finger on the screen as long as the first ViewController appears. When the first ViewController gets into the viewDidAppear() function, I want to detect, that the users finger is on the screen and perform an action, like f.ex. jumping straight into the lastest received email. Basically this is supposed to be a kind of shortcut to an main action.
Is there any method to detect an already laying finger on the screen? To be exactly I'd like to check for the tap in viewDidAppear()
Unless the nature of Time has changed since the last time I checked, your app cannot detect what the user was doing before the app launched. The app, ex hypothesi, was not running at that time. And the mere presence of a finger on the screen during app launch will not generate a touch event that the app can detect.
The system can detect it, however, since is running before your app launches. That is why Apple added force-touch Shortcuts (for appropriate hardware). The only way you can do what you're asking is to rely on that API. Hardware that lacks this feature will simply have to do without this feature.
(After all, this is how Apple makes money: by trying to make users jealous of hardware they don't have, so that they buy new hardware. You would want to rob Apple of its income by reading this feature backwards onto old hardware, even if you could, now would you?)

Launch iOS app faster

I figured out that some iOS apps are launching really faster (e.g. YouTube-from google,Skype,iTunes).
I created an empty application (used standard tabbed application template) and i did not change any code at all, just added splash images. When i tested (tried both developer and Ad-Hoc provisioning profiles to sign to check whether if there any difference), it did not launch as fast as the above mentioned apps.
When i tap the app icon on the device app icon get darker for about 0.2-0.5 seconds and then start showing splash image.
My question is how to make my app launch really fast, and is there any trick to show splash image very quickly? (i wonder how my empty application launches slower than above mentioned apps?)
Thanks
I think you also may be falling for a trick: at least for the iTunes app, Apple is overwriting the splash image with one that looks very much like the app while running, which creates the illusion that the app loads immediately. Try it:
Launch iTunes (or "Music") and start it playing, then go do something else to cause the system to swap the process out as much as possible (say, browse some heavy websites). Then relaunch iTunes and immediately try to pause the audio. On my iPhone 4, it takes about 3 seconds before the controls catch up: the position indicator will jump to the correct location, and until that time, the "play" button is inactive - you can't pause the audio. You're seeing a splash image that is meant to make you think that the app is launching immediately, even though it's really taking a few seconds to launch.
I've also noticed Chrome for iOS doing the same thing. I actually dislike this design decision, because it communicates that the app is ready before you can do anything with it.
i did not changed any code at all just added splash images
The loading images are not intended to show splash images, they are intended to show a static version of your application's interface to give the illusion that your application is loading more quickly than it really is.
Splash images are specifically warned against by Apple in the HIG.
Stop abusing loading images to show splash images, start using them properly, and your application will look as if it is loading more quickly.
link to as few frameworks as possible, we tried this at WWDC and linking to many frameworks creates a noticeable delay even before the main() method is called!
no matter how fast your code itself is!

Resources