Why is cloud save recommended for instant games? - android-instant-apps

On the Instant Play Games site google recommends the following:
Integrate sign-in using Google Play Games Services and a cloud save
solution to preserve progress in the game.
However in this other document the following is stated:
If the player is using a device that runs Android 8.0 (API level 26)
or higher, and if your game specifies a targetSandboxVersion of 2,
then the player's progress is transferred automatically to the full
version of your game. Otherwise, you must transfer the data related to
player progress manually. To do so, use one of the following APIs...
So it seems that cloud saves are not needed, there exists a simple API for transferring progress to the main app. So why is cloud save recommended? Am I missing some aspect or restriction of instant apps?

I found at least one reason for this, which seems critical enough:
The instant app data does not persist over for example restarting the device. More info here.

Related

How to get effectively notified of issues on Google Cloud Platform (e.g. BigQuery)

We have many production systems that are built on top of Google Cloud Platform, specifically using BigQuery. We have built error handling code, and incorporated all the usual best practices like back off and retry etc.
Sometimes however, there is an issue/outage on the Google Cloud Platform side of things which is out of our control. We'd like to be more pro-active to these types of outages, and somehow get notified of them as soon as possible so we can best mitigate them on our (application) side.
Is there any type of web hook, into knowing about issues on Google Cloud Platform?
Google Cloud Platform has a RSS status page that lists all known (and previous) issues on the platform. So you can either:
Subscribe the the RSS feed of this page using the RSS reader/app of your choice (we decided to create a dedicated Slack channel in our team hooked up to this).
Join the Google Cloud Platform community on Slack and join the google-cloud-status channel and which is wired up to the RSS feed.
This works well for us, and keeps us informed of issues/outages in a timely fashion.

Create a custom desktop YouTube player

I want to create an application capable to play YouTube video's audios and also save the downloaded content in a local cache, therefore when the user decides to resume or play the video again, then it doesn't have to download part of video again but only download the remaining part (User can decide what to do with the cache then, and how to organize it).
It is also very convenient for mobiles (it is my main focus) but I'd like to create a desktop one too for experimental purposes.
So, my question itself is, does YouTube provide any API for this? I mean, in order to cache the download content I need that my application download the content and not any embed player (also remember that it is a native application). I have a third-party application in my Android system that plays YouTube videos, so I think it's possible unless that the developers use some sort of hack, again this is what I don't know.
Don't confuse with the web gdata info API and the embed API, this is not what I want, what I want is to handle the video transfer.
As far as I know, there is no official API for that. However, you could use libquvi to look up the URLs of the real video data, or you could have a look at how they do it and reimplement it yourself (see here).

Music database to run track data against

I'm writing an app that will let me manually edit my iTunes music library from outside of iTunes using a SQL-like syntax. I know how to edit the library, but I want to be able to run my track info against some kind of online database to get the right info. I found GraceNote, which seems to be the big name when it comes to music databases (iTunes actually uses it), but I'm not sure how to connect to their database. I registered into their developer program, but I'm not sure where to go from there. I just want to know where I can get a connection string and table info.
Have you tried Gracenote's Web API?
https://developer.gracenote.com/web-api
If you are creating an iOS or Android app, then you should use their Mobile Client SDK:
https://developer.gracenote.com/mobile-client

How does the Dropbox Datastore API differ from Parse?

How does the Dropbox Datastore API differ from similar offerings like Parse? One difference that I see is that my users pay for server storage instead of me. Are there other differences?
Disclaimer: I'm a Dropbox engineer who worked on the Datastore API, and know about the Parse API only indirectly. Weigh my opinion appropriately. Major differences I know of (pro and con):
Dropbox Datastores are free to the developer, and free the user for the first 5MB per-app (after which their Dropbox quota applies). Parse charges developers based on how many API requests they’re making.
Parse has minimal offline support, while Dropbox has full offline operation. With Dropbox, if the developer modifies data while offline, those modifications will be reflected in subsequent queries (with Parse, those changes are not reflected). Dropbox provides on-device query logic (unlike Parse) so that apps can continue to generate the views they need to, even when there’s no Internet available. In addition, Parse does not provide conflict resolution or querying offline.
Parse provides the ability to share data between users, and global data for all users of the app. Dropbox Datastores only support per-user data (for each app) for now (sharing is on the roadmap).
I would also add that:
Parse is full feature of backend of as service. You can find a pretty complete list of the other player in this field: http://en.wikipedia.org/wiki/Backend_as_a_service. They provide feature like:
Data service
User registration/auth
Push notification
Social
The dropbox Datastore APIs is more focusing on data services. (You also got the User part for free too?) Also it works full offline.
The Parse framework can store data that can be ready by any user in the application.
The Dropbox datastore, store data for each user, and you can't accesss data from other user. That's the main difference.
So easy to get lost in this since you have to read between the lines. My take is that with Datastore you are working with objects stored offline locally as json. I'm hoping they will soon release a Xamarin Android component - they released an IOS component last month. Since Xamarin targets both Android and IOS and Winphone, who knows why they made a dedicated IOS DLL for Xamarin but I digress. With Parse, it appears to me their intent is the always-connected-device. Sure you can save queries locally and you can save (save eventually) locally where Parse will push to the server when it is connected. But saving "eventually" and saving queries for offline work is a different design than just saving and letting Parse do it all in the background for you - which it does not unless I have missed something that would make this attractive to me. I cannot see Parse useable for devices that you know will be sometimes-connected, without a lot of code to make this happen and sync.

Google Analytics for Mac OSx application

Is it possible to use Google Analytics API's to track Mac OSX applications?
If not could any one suggest me an alternative for Google Analytics.
Google Analytics is designed to work with web applications not for desktop apps. Although it might be possible to collect info about your application and send it to your Google Analytic account but the amount of work required to retrofit might be better spent, building your own Analytic solution.
A good starting point would be to create a simple web service, which collects information regarding clicks. Then rewrite your application to call that web service on every click within your application.
You would ideally want to store this information locally and submit it to the web service in batches. You would also want to design the application, so that if you ever shut down the web service, the application would still be able to operate.
UPDATE: As pointed out in the comments by Václav Slavík, they have added apps analytics for iOS/Android.
I made a simple set of classes for doing this:
https://github.com/stephenlind/SimpleCocoaGoogleAnalytics
Google Analytics is not only for web applications, but also for mobile. It's available on the platform like android, iOS, etc. If you want to track your MAC OS X application, you can choose DeskAppTrack or DeskMetrics. DeskAppTrack is only available on MAC. It provide a professional data statistical analysis and it's free. While DeskMetrics is available on MAC and Windows. Either one is ok.
This really depends on how detailed you want to get. If you are are truly looking for analytics with detail and control flow data, you are better suited to created your own web service, as mentioned.
However, if you simply want to know a small number of operations, that occur at a small volume, i.e. when the app is launched (a quick and dirty solution): then in theory you could create a landing page on your site that contains a minimal head section, and a blank body, and then load the URL with an NSURL when you want to trigger the action.
Of course, you would have to include the google analytics tracking codes in the header, and you may need to load an off-screen webview to get the javascript to run. Like I said, quick and dirty.
In either case, you want to make sure the application will continue to perform properly, even if the web service / page is not present.