Open jasarien opened 10 years ago
I can do Dropbox integration, we used it in nds4ios and it works well. At the moment saving ROMs would be okay, since they're fairly small, but once more emulators are added the space needed for ROMs on Dropbox might increase drastically.
That'd be cool.
Would this sync with OpenEmu?
No, it would simply be dropbox integration. Unless OpenEmu also integrated Dropbox and you used the same folder they wouldn't sync together.
Save synching should be fairly easy to do with iCloud document synch, I'll take a look at it when I'm done with the PSX Core.
For my 2 cents, I'd prefer Dropbox over iCloud sync since my saves are already saved there (using symbolic links, so it works with OpenEmu) and because my iPad is under a different iCloud ID. (Maybe there's a way to share files between iCloud storage users, but I never use it so I wouldn't know.)
I'm fine if only the saved games are synced. Syncing the ROMs too would take up too much cloud space and I'd feel a bit paranoid having ROMs in the cloud...
Maybe it could have an option to let you choose what you want to sync? e.g. roms, saved games, configuration, etc.
I agree with Dropbox syncing. While ROM syncing would be nice, I don't think that's as necessary as save states. Like Cralex, I have symbolic links for my saves with OpenEmu setup, and being able to access my saves across devices would be amazing. It would also be nice to be able to choose which service to use. I would say Dropbox, Box, or iCloud Drive. Maybe Google Drive as well.
I setup an integrated web server that allows for bulk copying of ROMs as well as uploading/downloading game saves. Please see pull request here: https://github.com/jasarien/Provenance/pull/81
This has been discussed, but I think will be more of an issue as people want to use this app on their devices and on the new AppleTV, but we need to accommodate a way to sync game ROM's and game save files so we can just play on any device. I know there has been some discussion about Dropbox, but I wonder if there is any way we can incorporate this? A web server connection is a good stop gap, but I think a full blown sync solution is going to be necessary.
Is there any way we can dissect how GBA4IOS was utilizing Dropbox framework to make it work with ATV and iOS?
Dropbox would be fine if it was only iOS we were dealing with. As it stands there is no WebKit, or UIWebView on tvOS, which is a vital component in the completion of OAuth which Dropbox requires in order to be used in 3rd party apps. So we can't use Dropbox with tvOS until there is a usable web component.
I guess for now the only option is to use the iPad version of Provenance, and then Airplay mirror the screen to the Apple TV, which I guess you can do now....
On Tue, Sep 22, 2015 at 1:07 PM, James Addyman notifications@github.com wrote:
Dropbox would be fine if it was only iOS we were dealing with. As it stands there is no WebKit, or UIWebView on tvOS, which is a vital component in the completion of OAuth which Dropbox requires in order to be used in 3rd party apps. So we can't use Dropbox with tvOS until there is a usable web component.
— Reply to this email directly or view it on GitHub https://github.com/jasarien/Provenance/issues/1#issuecomment-142367635.
Josh Petersen jpete24@gmail.com 515-450-7311
I tried airplay previously, the latency was too high to be playable.
Welp that sucks. I guess for now I'll have a set of games I want to play when I'm portable and a set of games that I want play around the house. Does the web server work on TvOS? I guess you could transfer game files and saves around back and forth if needed.
On Tue, Sep 22, 2015 at 1:23 PM, James Addyman notifications@github.com wrote:
I tried airplay previously, the latency was too high to be playable.
— Reply to this email directly or view it on GitHub https://github.com/jasarien/Provenance/issues/1#issuecomment-142371605.
Josh Petersen jpete24@gmail.com 515-450-7311
Maybe something like this could help? https://github.com/gilbertchen/acrosync-library
Possibly. I'll have to take some time to have a proper look.
josejulio's idea look viable. All you need to do is make sure you have a local machine that can be the connection point to sync between ATV and iOS devices.
What about iCloud drive?
We don't know if the AppleTV will have an iCloud Drive app yet. It probably will but not until release.
Provenance can't access iCloud directly because it's not an App Store app.
We may be able to use CloudKit in development mode though, if not natively, via the REST api.
Maybe, wouldn't work if provenance is distributed by iEmulators again, or something.
Hopefully being able to build and run apps without a developer ID now should help there. Though it does still require you to have a mac.
That's what I mean. Building for yourself may allow access to iCloud in dev mode. But if it's distributed via iEmulators (which has been the widest distribution Provenance has had) it won't work because it'll be signed with an Enterprise cert and they don't allow access to iCloud.
Does the non-paid dev account even allow you to create a profile with iCloud entitlements anyway? I don't know if it does or not.
With the REST API, you shouldn't need developer credentials, you just need to set the app ID up once with valid credentials, and then other apps can access the web API for that App ID. https://developer.apple.com/library/prerelease/ios/documentation/DataManagement/Conceptual/CloutKitWebServicesReference/SettingUpWebServices/SettingUpWebServices.html#//apple_ref/doc/uid/TP40015240-CH24-SW1
Yeah I don't think that's going to work :D
Upload URLs are valid for a limited time (15 minutes) and the maximum file size is 15MB.
Unless I'm missing something?
Might work for cloud saves, and you can always chunk rooms into multiple parts. But yeah, overall we're very limited by not being a store app.
I think josejulio's suggestion might be the best to investigate.
Google drive example - https://github.com/googledrive/ios-quickeditor
Doesn't require oAuth, but does require some config both on the google drive console and setting 2 known secrets
We need a solution that's as simple as pressing a button in the app or else no-one but us techies is gonna use it.
Another option that comes to my mind, would be to start a web server, and request the user to move to a browser (on this phone, pc, mac, w/e) and go to http://local.ip.of.apple.tv, from there, do the dropbox login, receive the keys and send to the apple tv (using the same web server). Though is somewhat cumbersome.
So something similar to the way you activate HBO or ESPN on the current AppleTV, letting you browse to a page on the AppleTV, and use that external browser to authenticate with dropbox. Makes sense, not sure if it's doable but it sounds like something to look into.
Regarding AirPlay, according to the guy that runs Afterpad.com, the iOS 9.1 beta has impossibly low latency with AirPlay - basically as good as the Lightning-HDMI adapter.
Sounds like something we can revisit then.
Hey James, Just a little suggestion,meanwhile you guys are dealing with the best solution to have sync ROMS and saves between iOS and tvOS, it will be great to include in a new official release a simple dropbox sync only for saves like GBA4iOs can actually do. So we can finally sync saves between iPhone and iPad....Pleaseeeee! :)
I have dropbox syncing code for iOS. Reach out and I can provide, it would likely take me too long to integrate since I don't understand your current code, but certainly has a fair amount of the big stuff already solved with detecting dropbox status / sync issues. Not sure how best to pass that off
We can't use Dropbox on tvOS and I don't want two separate implementations to manage. I still think it would be best to explore an option that works for both iOS and tvOS.
Ok, I understand, but...is Web Server feature actually working? I tried version 1.2.1 and 1.1.6 but I can't connect to the IP. I can see only a blank page.
Last I checked it was working. Are you on the same wifi network as the iOS device you're trying to connect to from your computer?
Yes! I'm also trying with other Apps web server (VLC, Documents)... and It works. Same IP address.
you're using the very latest code from the master branch? (not the releases)
No, I'm using the releases. Am I wrong?
The releases aren't always the latest. They're just points in time where the version was incremented for version tracking.
I just testing the Webserver right now and it works for me: http://d.pr/i/10tYY
And what's about the idea to modify the actual web server interface adding a "download as zip" function for files and folders? Just to make possible an excange of roms/saves between devices without a computer.At the end of the download it will activate the classic "open in" Safari dialogue screen. It will be a kind of manual sync... But compatible with all the devices!!
Hey James, is this last an imbossible request? What's you think about it?
You could use HTTP requests to mimic oauth integration @jasarien if you wanted to attempt to do a implementation of DropBox before their official SDK catches up. EX: http://stackoverflow.com/questions/25423924/oauth-2-0-in-php-using-curl
As for the web server @illando it is derived from another GitHub project. However, it could be modified to allow for zip functionality. We would need to add a button the to the internal web page, an AJAX request back up to the internal web server, and some zlib or some other zip library to do the compression. Have you attempted to add this feature? What problem are you running into?
@dantheman213 Unfortunately I'm not a developer. I was just trying to be useful providing some ideas to improve the user experience, just because James asked for some suggestions in the post title.
Regarding Dropbox not working on tvOS since you could not authenticate without a web browser (9/22 comment): There was a recent discovery using private API's that show a UIWebView. Since you would never submit this app to the app store, being a private API is ok. See more here: https://github.com/steventroughtonsmith/tvOSBrowser
Just because an app isn't in the App Store doesn't mean it's fine to use private API. Private API is usually private for a reason. It may be that the API is unsuitable for reasons other than Apple just wanting to control things - perhaps its crashy, perhaps it changes a lot between SDK releases which could break source compatibility between versions.
Also, the age-old adage: "Just because you can, doesn't mean you should."
UIWebView clearly wasn't intended to be run on tvOS, regardless of whether it can or not. The Focus Engine is not designed to work with web content, and the hacks to implement a 'cursor' in order to interact with the web view, while clever, aren't a great user experience in any way.
Finally, in order to even build the tvOSBrowser sample app, one needs to redefine the macros used to tell the compiler what is available to tvOS in a file that ships with the SDK. I'm not doing that - I use my development setup for more than just Provenance, and modifying SDK files is not something I'm going to do. Plus, for users who aren't developers just following instructions to build Provenance for their AppleTV, it complicates things further for them - all of a sudden they have to modify a file that ships with Xcode? And they get this scary warning when they try?
There are other solutions that don't involve using private API.
Maybe this can work as to enable login on the apple tv (requiring a iphone/ipod/ipad) https://github.com/rsattar/Voucher
Try to see if you can integrate google drive or mega since the amount of free space given on drop box is very limited unless you pay for more storage. It would also be nice if game saves/save states could sync with a cloud service.
Sync ROMs, saves, etc…
Possibly using dropbox? Other suggestions?