I am orientating on developing an app to synchronize all pictures taken by the iPhone camera.
I searched quite a lot and can't find much about the hardware event for the camera shutter on the iPhone.
Is it possible like the android CAMERA_BUTTON BroadcastReceiver in the manifest, to listen if the camera button is pressed in general, without the app being specifically launched?
Or an overlay on the existing iOS camera app?
Update 02-05-2018
I din't managed to get a direct detection of the camera button, also no ongoing detection from pictures take from the camera(PHPhotoLibraryChangeObserver). When the app is killed, all listeners are also killed. I am however using this when the app is booted up with the locationchange mechanism
In the end I used the Using the Significant-Change Location Service to get the detection of the changed pictures to synchronize, ongoing. I used the NextCloud and OwnCloud as examples, which were containing this part.
Using the Significant-Change Location Service
The capturing of images and videos is an entire software related process managed by classes in the AVFoundation framework. The entire hardware of the iPhone is not accessible for applications and you cannot monitor the use of hardware directly. There are some system frameworks, but these won't help you. The AVFoundation doesn't have any notifications that it will post to registered observers.
All captured images and videos are put in the Photos library and the Photos library has notifications when something changes in the library. You can register your application as an observer for changes in the Photos library and you can specify the changes you want to observer. You can also collect the specific changes that have happened and have your application handle the changes in the Photos Library.
What I don't know is whether you can use this as a remote change and have your app being launched by iOS when it registers for that change in the Photos library. I do know that you can program your app to launch on reception of notifications, but I don't know if this can be done with this change observer. I would suggest to give it a try.
Hope this helps.