Using android device with CloudKit JS without an iCloud account - ios

While watching WWDC 2015 CloudKit JS, I realized that an android device user might need an iCloud to request data from the CloudKit DB since an apple user needs the iCloud account to be turned on. Is my assumption correct? There is no way to have my app cross platform?

There is nothing stopping you from using CloudKit on Android. In fact, the sample code at https://cdn.apple-cloudkit.com/cloudkit-catalog/ clearly states that CloudKit JS is supported on embedded web views, including Chrome (on Android).
If you application needs authentication, CloudKit requires an Apple ID. If the user does not already have an Apple ID, the sign-in flow allows the user to sign up for an Apple ID account right there.
Another requirement for CloudKit is that you must have an application (iOS or OS X) published in the App Store with equivalent functionality to what you are providing through the web (be it an embedded web view or not).

For reading public data there is no need to have an iCloud account.
But if you need to write something then an account is needed.
I haven't tested yet if the login system work from an android device, but from a web browser it works.

Related

Programmatically get application usage from Screen Time in iOS 12

I am working on one project and I want to get other application usage time. apple has launched iOS 12 and provides the new feature Screen Time. I want to know is there any way or API provided by Apple to get data from it.
No, on iOS each app runs in its own sandbox and cannot see data from other apps, even apps from the same publisher. An app can access special shared data, like photos from the album or contact data, but it is not possible for an app to directly access files written by other apps.
ScreenTime application is on another sandbox than your app. Unless apple provide API we can't access the same.
Update
Since apple have added screen time app into ios12 simulator. There could be a chance they provide the API's soon.
On iOS 15 Apple has added an API, see here:
https://developer.apple.com/documentation/FamilyControls
FamilyControls
Authorize your app to provide parental controls on a
child’s device. To authorize your parental controls app, use a shared
AuthorizationCenter instance. You can authorize parental controls only
on a device that is part of a Family Sharing group and signed into a
child’s iCloud account.
You must add the Family Controls capability to your app.
This seems to provide functionality to parental control apps only. In other words, it cannot be used by other time-tracking or productivity apps at the moment.

Is it possible to take all backed up data without jailbreak from iCloud (public,shared,private) by any app/tool, provided with iCloud credentials?

I am trying to build a mobile monitoring tool/app for iOS without Jailbreak. The only possible way to perfectly access all installed app's content is through iCloudKit.
Also I found Apple's MDM come a little close to this for BYOD devices but yet accessing individual application's data is not possible.
During all this process, I came across some website fonemonitor and phonemonitor (with and without) who claim to do the same without Jail Break.
So here is my question is it possible to take any application's data if we get access to the users iCloud account? Also, are all public, private and shared data accessible via iCloudKit? As the documentation clearly states private data is untouched.
How does app monitoring work for any iOS Devices through these websites. Any lead would actually help!

Can we take over the air backup of Applications, Call Log, SMS, MMS, Bookmarks, Alarms, Dictionary on an iPhone?

My app need to take backup of user's iPhone's almost entire data to iCloud.
Can we access the call log, SMS, MMS etc. databases of iPhone just as iCloud does internally while backing up programmatically?
Is there some means to give user option list for data he wants to backup to iCloud in our app and backup only that data instead of all data programmatically?
Thanks
Assuming that you are referring to a non-jail broken device then in a word, no. An app cannot access data outside of its own sandbox
Apple can't allow to access and change SMS and log associated database. If you have jailbreak iPhone then you can access database using following path.
/var/mobile/Library/SMS/sms.db
For development level you can access it but your application wan't get approve from iTune store.
It is not possible to get SMS/Call Log/MMS detail.
Your application only access those data which can be supplies by Apple's public API.
Your application can not access data outside of Sandbox other than public API.
Yes, if your device is jail-broken and you can use hack like direct url to database.
But if you do so your application will never approve by App Store.
Please read App Review Guidelines

Track other app from my app - iOS

Is there any provision to track(usage time) of any app from another app in iOS?For example:- I have developed an app named "A" and I want to track usage time of another app installed in my device(iPhone or Android) named "B". By usage time, I mean how much time a user had used the app. Would it be possible?
Another scenario:- Is it possible to track usage time of native app(like mail, camera, message,etc) from our app?
I think this is not possible in iOS, but not sure about it. Does anyone have any idea of this?Note:- I don't want to track my app usage using Google analytics.
You can't!
All the application in iOS runs in sandbox mode.
If you want to track your application usage you have to connect it to the server with (ex) REST interface.
EDIT:
Just bump on the idea...
If you writing for iOS7 you can use Shared Keychain feature. You can send there all usage statistics and receiving it by other app. Should work!
Check this out: http://shaune.com.au/ios-keychain-sharing-data-between-apps/
If both apps are signed by the same App Store Developer account, then they can both share an iCloud data store. Just store the usage time in iCloud and it'll work perfectly.
You cannot track any app by any other developer, the security model does not allow it.

iCloud and a Web Application

I have an iOS app that lets the user manager recipes. I would also like them to be able to manage the same recipes on their iPad and Mac. It seems that iCloud would allow me to do exactly that.
However, if I want to also build a web application that provides the same functionality, am I right in thinking I need my own non-iCloud solution? Is there any iCloud API that lets a user log in to their apple account and access the data added in the iOS/OS X applications?
If I want to allow web access to the data, am I forced to write my own data service and syncing process? Or are there some ways to at least 'connect' the iCloud data to my own user accounts?
I think "native" integration via a web application is impossible:
iPhone and Webapp sync through iCloud ??
There is actually an iCloud web interface by Apple, but it just has their own apps (contacts, calendar, etc).

Resources