iCloud external :-)
William de Smet
williamdesmet at gmail.com
Fri Aug 3 09:31:13 EDT 2012
Hi Maarten,
This seem pretty straight forward.
I reckon you can get a file from iCloud as well?
groeten,
William
2012/8/3 Maarten Koopmans <maarten.koopmans at gmail.com>:
> Hi Willem,
>
> Screenshots with iCLoud are next-to-near impossible, but here's some
> code from handlers in my demo/test stack.
>
> First, getting some basic information:
>
> on mouseUp
> answer "Trying to fetch basic app/team info, and so some setup"
> put setupUbiquityDocumentsFolder() into tSetup
> answer "Setting up ubiquity document url succeeded: " & tSetup
> put getApplicationIdentifier() into tAppID
> answer "App ID: " & tAppID
> put getAppName() into tAppName
> answer "App Name: " & tAppName
> put getTeamPrefix() into tTeamPrefix
> answer "Team prefix: " & tTeamPrefix
> answer "Containerized name: " & containerize("my.com.SharedStorage")
> end mouseUp
>
> Next, publishing a file publicly via iCloud:
>
> on mouseUp
> answer "In as public file handler"
> set the defaultFolder to specialFolderPath("documents")
> answer "default folder set"
> put "HelloCloudPublic.txt" into tLocalFilePath
> open file tLocalFilePath for write
> write "Hello iCloud!" to file tLocalFilePath
> close file tLocalFilePath
> answer tLocalFilePath
> --Note that here we effectively use the FULL path... Different from
> setUbiquitous
> put asPublicCloudFile(tLocalFilePath) into tSharedURL
> answer "Your public iCloud URL for the next two weeks is: " & tSharedURL
> revMail "you at who.net","","miCloud link",tSharedURL
> end mouseUp
>
> And "the killer" - publishing a file in a shared storage container
> (shared with other apps):
>
> on mouseUp
> answer "In make ubiquitous (1) handler"
> set the defaultFolder to specialFolderPath("documents")
> get setupUbiquityDocumentsFolder()
> answer "default folder set, setup succeeded = " & it
> put "HelloCloudUbiqOrLocal.txt" into tLocalFilePath
> answer "Local file url: " & getLocalFileURL(tLocalFilePath)
> open file tLocalFilePath for write
> write "Hello iCloud!" to file tLocalFilePath
> close file tLocalFilePath
> --This is needed because our routines magically create the correct file path.
> --Whereas LC on opening the file puts the full path into tLocalFilePath....
> put "HelloCloudUbiqOrLocal.txt" into tLocalFilePath
> --Check, check, double check
> answer tLocalFilePath
> --test and show that the file is local
> answer "File is local: " & isLocal(tLocalFilePath)
> -- get its file url
> put getFileURL(tLocalFilepath) into tFileURL
> answer "Local file URL = " & tFileURL
> --make the file ubiquitous, 1= true, rest = false
> get setUbiquitousForFile(1,tLocalFilePath)
> answer "Set ubiquitous, done"
> --test to see if it is local or ubiquitous (really, the result
> coming back from iCloud in setUbiquitous is less trustworthy)--test to
> see if it is local
> answer "File is local: " & isLocal(tLocalFilePath)
> --test to see if it is ubiquitous
> answer "File is ubquitous: " & isUbiquitousDocument(tLocalFilePath)
> --get the file url, again (should be ubiquitous now...)
> put getFIleURL(tLocalFilepath) into tFileURL
> answer "Now... Ubiquitous file URL = " & tFileURL
> --get the modification date
> answer "modification data = " & getModificationDateForURL(tFileURL)
> --list the documents container contents
> answer getContentsOfUbiquityDocumentsFolder()
> --delete the ubiquitous document instance
> get setUbiquitousForFileInContainer(0,tLocalFilePath,tContainer)
> answer "Remove ubiquitous, done"
> --at this point the file is only local...
> end mouseUp
>
> Doe this wet your appetite(s)?
>
> Cheers,
>
> Maarten
>
> On Fri, Aug 3, 2012 at 2:31 PM, William de Smet <williamdesmet at gmail.com> wrote:
>> Hi Maarten,
>>
>> I am very much interested in this Cloud external.
>> Do you have any information and screenshots online already?
>>
>> groeten,
>>
>> William
>>
>>
>> 2012/8/3 Maarten Koopmans <maarten.koopmans at gmail.com>:
>>> Folks,
>>>
>>> I have spent a lot of time on it over the last two months, but I
>>> finally have an iOS iCloud external working. One of the things I've
>>> learned is that iCloud works (by itself), but it is very easy to make
>>> a mistake - hence the apps that behave so badly with iCloud.
>>>
>>> Anyway, the external can:
>>>
>>> - give back your app name, team prefix, bundle identifier
>>> - put files in your app's container
>>> - manipulate and query the apps container (evict files, force
>>> download, modification dates, list files...)
>>> - put files in a shared container across apps - so you have shared
>>> data across iOS apps [ yes ... that's right!!!]
>>> - manipulate and query the shared container
>>> - put files in a container or shared container up for download for two
>>> weeks [ yes, you read this correctly as well....]
>>>
>>> I can do two things:
>>> 1) continue with my main project as I will eventually
>>> 2) spend even more time and put the external up for sale for $49
>>>
>>> As this really has been a LOT of work I don't want to put something up
>>> for sale if nobody is interested, so consider this a poll. Personally,
>>> I find the shared storage across apps and public data publishing is
>>> pretty awesome.
>>>
>>> Let me know if you're interested - otherwise I'll simply enjoy my weekend ;-)
>>>
>>> --Maarten
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list