Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parse SDK for tvOS #250

Closed
waterclock opened this issue Sep 14, 2015 · 170 comments
Closed

Parse SDK for tvOS #250

waterclock opened this issue Sep 14, 2015 · 170 comments
Milestone

Comments

@waterclock
Copy link

Please make available a tvOS-compatible version of the Parse frameworks. Apple TV apps will not be able to compile against the iOS frameworks upon official release of Apple's tvOS SDK.

@nlutsenko
Copy link
Contributor

This issue is for tracking progress/work for Parse SDK for tvOS.
It's currently work in progress, but should be out very soon.
If you have specific requests or ideas - please comment here, so we are aware of this and can have a good overall discussion.

To use the development version aka current latest, update your Podfile as follows:

pod 'Parse', :git => '[email protected]:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'master'

The incomplete list of required changes:

  • Add basic target for tvOS SDK
  • Fix imports for frameworks that aren't available on tvOS
  • Update PFLocationManager to use compatible APIs when running on tvOS
  • Disable extensions data sharing APIs (they don't work on tvOS)
  • Disable PFPush (at least for the first release)
  • Disable PFInstallation (at least for the first release, unless we have final confirmation that APNS works on tvOS)
  • Make PFPurchase work (we have StoreKit, woohoo)
  • Disable PFNetworkActivityIndicatorManager (API not available on tvOS)
  • Update PFFile staging controller to use caches folder, when running on tvOS
  • Update installationId storage to use NSUserDefaults when running on tvOS
  • Update PFUser.currentUser() to use NSUserDefaults for storage of non-sensitive data on tvOS
  • Update PFAnalytics to run analytics events right away, instead of going through EventualyQueue
  • Disable Local Datastore APIs, since there is no local storage on tvOS
  • Disable saveEventually/deleteEventually, since there is no persistent storage on tvOS
  • Explicitly test deployment with bitcode for end applications
  • Add tvOS SDK to deployment packages
  • Add tvOS starter project (optional)
  • Make Parse.podspec compatible with tvOS

This comment is constantly updating, sometimes without you noticing

@waterclock
Copy link
Author

Great news, thanks!

@vikmeup
Copy link

vikmeup commented Sep 16, 2015

+1

3 similar comments
@WillChilcutt
Copy link

+1

@artisanglobal
Copy link

+1

@gabek
Copy link

gabek commented Sep 17, 2015

+1

@vikmeup
Copy link

vikmeup commented Sep 17, 2015

@nlutsenko any estimates? Thanks.

@nlutsenko
Copy link
Contributor

Amazing to see this level of excitement.
Let me output some updates here:

  • Since there is no local storage or push notifications on tvOS as of right now, we are investigating what parts of the SDK should be evicted from tvOS target
  • For user authentication and analytics tracking we still need a place to put currentUser and installationId (these are just files right now, but you don't really want them to be synced to all your devices, so iCloud containers are not an option)
  • We are aiming to nail down the list of all the things that we need to build/change/remove/rinse/repeat to support tvOS by mid next week
  • This list should appear on this issue, so we are publicly tracking it and can develop in the wild open (as well as accept contributions)

Any feedback so far about parts that you think are the most important to have, or even something new that you can see us building are very welcome!

@WillChilcutt
Copy link

As you pointed out, since we cannot store data locally, the first thing to get working is sending and retrieving information. I think the "nice to haves" like the custom UI and analytic, etc. can come later as we have a few weeks before apps will be released, but having the ability to store data remotely is the most important issue right now.

EDIT: Just wanted to throw out a quick thank you for the fast response from the Parse team on recognizing the importance of making this framework work with tvOS!

@ghost
Copy link

ghost commented Sep 18, 2015

+1

@reggatta
Copy link

Maybe there's a way to put a wrapper around the javascript API or create a lightweight IOS SDK that allows the basics? It seems that the tvOS limits are such that maybe a better approach is to provide connectivity to Parse cloud code.

@waterclock
Copy link
Author

Llightweight local storage is available via NSUserDefaults (up to 500K). Also, caches can be written to disk for things like image caching, but they can be deleted by the system so will need to test for their existence prior to reading.

Definitely need the basic Objective-C API of Parse.framework and ParseUI.framework. All the social authentication frameworks can wait till twitter and Facebook figure out how to offer third-party authentication on a platform without a web view.

@ay8s
Copy link

ay8s commented Sep 20, 2015

Agree with @WillChilcutt & @waterclock. Having the ability to retrieve and store information would be great before looking into the nice to haves.

There is some more discussion about the NSUserDefaults/local storage options here... https://forums.developer.apple.com/thread/16967

@ebender001
Copy link

My wish list for tvOS support would be a Cloud Code framework that would allow serving various templates that Apple has defined. It would be a shame to make a UIKit based TV app when TVML based UI is so nice looking on the TV.

@waterclock
Copy link
Author

Native UIKit apps look every bit as good or better than the TVML samples and a native Parse tvOS framework is a must.

@Silkjaer
Copy link

I opened a bug report with Apple for requesting persistent local storage. It has already been marked by Apple as a duplicate. If we are enough people requesting this, we may be heard.

@waterclock
Copy link
Author

I understand persistent local storage is very nice to have, but it really shouldn't be a show-stopper for a tvOS Parse framework. Again, as I understand it, caches for things like PFFiles are supported. It's just that the framework will need to test for the expected existence of a cache before reading from or writing to it (as tvOS may have deleted it during routine or resource-constrained cleanup operations). The whole point of Parse is to act as our server-based datastore. Even no local storage at all were possible (which is not the case), it should still be possible to do 99.99 percent of what we need it to do outside of perhaps the transmission of extremely large data files.

@ebender001
Copy link

Agree with waterclock, but, in a pinch, one can use the Parse REST API and SwiftyJSON (with or without Alamofire as the URL loading platform). I do miss the convenience of PFFiles, however.

@gabek
Copy link

gabek commented Sep 22, 2015

I started integrating the Parse REST API with AFNetworking last night and I'll move to the SDK when it's available. I suggest you all do the same if you want to get any work done.

@forbze
Copy link

forbze commented Sep 23, 2015

+1

@nlutsenko
Copy link
Contributor

Guys, we are aiming to have a precise list of things to be done as well as rough timeline for tvOS SDK by the EoD tomorrow. Thanks for bearing with us, we are going to get there soon!

@mandazi
Copy link

mandazi commented Sep 23, 2015

+1

@michaelnew
Copy link

Any updates to the timeline?

@phin
Copy link

phin commented Sep 28, 2015

+1 :)

@poojanjhaveri
Copy link

+1

@hvsw
Copy link

hvsw commented Sep 30, 2015

+1 @kuquert @pietrodegrazia

@reggatta
Copy link

reggatta commented Oct 1, 2015

+1

@loretoparisi
Copy link

@nlutsenko Ok, let me check.

@BananaFudgkins
Copy link

@nlutsenko tested it and it works! Thanks for the fix!

@HUGEwindow
Copy link

What do I need to access this branch? I would like to use parse with TVOS. Thanks in advance I am a noob.

pod 'Parse', :git => '[email protected]:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'

Permission denied (publickey).
fatal: Could not read from remote repository.

@nlutsenko
Copy link
Contributor

@HUGEwindow try using https://github.com/ParsePlatform/Parse-SDK-iOS-OSX.git instead of the ssh URL.

@HUGEwindow
Copy link

Worked, thank you!

@justColbs
Copy link

Anybody else get this error when installing the pod in the project file?
`[!] Unable to satisfy the following requirements:

  • Bolts/Tasks (= 1.4.0) required by Bolts (1.4.0)
  • Bolts/Tasks (= 1.4.0) required by Bolts/AppLinks (1.4.0)
  • Bolts/Tasks (~> 1.5) required by `Parse (1.9.1)``

This is what my pod file looks like.

platform :tvos, '9.0'
use_frameworks!

workspace 'Look Contorller'

# target 'Look Contorller' do
pod 'Bolts', '~> 1.4.0'
pod 'Parse', :git => '[email protected]:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch =>          'nlutsenko.tvos.podtest'
# end`

Thank you!

@nlutsenko
Copy link
Contributor

@justColbs either remove pod 'Bolts' from your pod file or convert it to

pod 'Bolts', '~>1.4'

Or even

pod 'Bolts', '~>1.5'

@justColbs
Copy link

Perfect @nlutsenko thank you sir! Changing it to 1.4 worked.

@frankcom
Copy link

Hello, is there a manual for integrating the TVOS kit and does it support push (or something similar)? I tried integrate it with the instructions for ios, but I got errors, even I included the classes and copied the content.

@nlutsenko
Copy link
Contributor

Hey @frankcom,

  • Push Notifications are not user visible on tvOS, meaning that even if you send a notification - it won't be shown to the user and will be delivered to your application only.
  • Could you be more specific in regards to errors you are getting? The installation process is not different from iOS (opening a separate issue to track this would be very helpful).

@waterclock
Copy link
Author

Hi @nlutsenko I was wondering if there are plans for a native Swift implementation of the Parse framework. I know of course the existing one can be bridged to, but just wondering if a Swift re-write was being considered. Thanks!

@nlutsenko
Copy link
Contributor

@waterclock Yup! We are investigating on what would it take for us to make a native Swift SDK, and I'll share more details when I have them. 😁

@waterclock
Copy link
Author

@nlutsenko Awesome news, thanks!

@mtrezza mtrezza added type:feature New feature or improvement of existing feature and removed type:improvement labels Dec 6, 2021
@parse-github-assistant
Copy link

The label type:feature cannot be used in combination with type:improvement.

@parse-github-assistant parse-github-assistant bot removed the type:feature New feature or improvement of existing feature label Dec 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests