Quartz in the App Store

scalf's picture

So I was wondering.

Does Apple allow an App to be sold in their store if it has been made with Quartz and turned into a cocoa application?

I don't see why not, but just wondering if anyone has attempted this?

Thanks

cybero's picture
Re: Quartz in the App Store

Yes, like QC View in a Cocoa application would be fine.

It would dovetail with the underlying frameworks required.

See http://flyingmeat.com for one company whose products include Acorn, which allows for the use of .qtz files as filters and then again, there's Neutrino and more besides, like Pixelmator, all of the above mentioned use .qtz files as an integral part of their workflow.

All of the above mentioned applications are available from the App Store and require .qtz files to fully function - nuff said?

jstrecker's picture
Re: Quartz in the App Store

Be careful about 3rd-party QC plugins. If you use plugins built with the unofficial, private API (SkankySDK) -- including most, if not all, Kineme plugins -- that's grounds for App Store rejection.

usefuldesign.au's picture
Re: Quartz in the App Store

Quartz Composer and Quartz are two different OS X frameworks. (as often gets pointed out on these forums but doesn't hurt to repeat it).

dust's picture
Re: Quartz in the App Store

its possible to use in singularity just a qc file to submit an application to the app store. you should check out apples human interface design guidelines before you do submit something.

http://developer.apple.com/library/mac/#documentation/UserExperience/Con...

you will have to do a bit of editing of your storyboard to meet the guidelines. things like being able to open save close minimize, and resize windows etc.. are basically all you need to do to make a qc file meet the guidelines.

as per plugins you will have to consult authors licensing. kineme plugins are made with private unofficial api's so you will not be able to use them. i have read stories on stack overflow about private methods being approved, although i highly discourage the use of them, as they are subject to change without warning.

the people at apples review board do to test your apps and they suggested to me...it is best to test on an iMac. the review process takes a bit of time so i suggest to test on a few systems before you submit, because it could take a week or two until you hear back from them. if you have a production schedule i would add a month to it for your first archive and submit. (just incase)

make sure if your generating files externally that you give people a choice to where to save things or cache data into the users documents folder etc... writing files to a user library for instance is forbidden so you will need to load plugins from your app bundle.

i have been documenting my process and will add to my blog soon a little tutorial on how to prepare your quartz file and plugins for submission to the app store.

cybero's picture
Re: Quartz in the App Store

Actually, Quartz Composer is simply an application only, the Quartz framework it primarily depends upon includes the following frameworks.

ImageKit.framework
PDFKit.framework
QuartzComposer.framework
QuartzFilters.framework
QuickLookUI.framework

:-)

scalf's picture
Re: Quartz in the App Store

Sounds like it is totally possible, which is great to hear - I will have to check out those examples

And Dust, I would love to see that tutorial when you get it finished.

So it seems like some of the plugins written with unofficial API's and making sure it is in accordance with the interface guidelines are the things to watch out for.

Thanks for the information

.lov.'s picture
Re: Quartz in the App Store

Vade has a 'QC powered' app in the App Store: http://insight.vade.info/

usefuldesign.au's picture
Re: Quartz in the App Store

True: I later thought someone's going to get me on the way I expressed that ;-)

Put it this way Apple has a Quartz Composer email list and a Quartz list, guess which list refers to which technologies. :-)

cybero's picture
Re: Quartz in the App Store

Apple Developer lists and forums. LOL. I find that as a registered Mac developer I get sent through to the iOS forums when looking to browse the Mac dev forum. Quirky :-)

gtoledo3's picture
Re: Quartz in the App Store

usefuldesign.au wrote:
True: I later thought someone's going to get me on the way I expressed that ;-)

Put it this way Apple has a Quartz Composer email list and a Quartz list, guess which list refers to which technologies. :-)

You were right, they're two different frameworks. The fact that there are some interdependencies doesn't suddenly not make them two different frameworks.

Quartz Composer is definitely not an application only, it is also a framework. Cybero's comment is incorrect, and you were right.

cybero's picture
Re: Quartz in the App Store

W-e-l-l - mm, perhaps it is merely a matter of perception, like when is an application both application and framework?

Like Quartz Composer the application is the application , QuartzComposer.framework is the framework [& I guess I might have misread somewhat your message above usefuldesign.au, as you weren't directly referring to Quartz Composer application, but it seemed to me that as a framework QuartzComposer.framework is just a part of the Quartz framework in any case, hence my prior post]

Surely the fact that an application depends upon an eponymous framework, amongst many others within the Quartz and QuartzCore frameworks, doesn't mean that application is also a framework, available for both further software development and exploitation by applications that hook into that framework.

To my way of thinking about this, these frameworks are housed separately for system wide access and also to incorporate into other framework dependent applications and other software development.

The Quartz Composer application simply provides a UI and programming paradigm to these facilities.

dust's picture
Re: Quartz in the App Store

i would say your both right.... technically the two frameworks are quartz and quartz core. without getting into the semantics of class inheritance or a polymorphic debate on how to (id) a qc virtual class. its safe to say that in an app development context quartz infers the quartz composer frameworks and quartz filters frameworks.

so referring to your comp or application as a quartz application is perfectly legitimate in this day and time. i think at one point maybe quartz 2d and quartz composer frameworks where independent of each other.... so saying a quartz application didn't necessarily mean quartz composer. however it does now.

actually quartz core encapsulates primarily the core imaging technologies like core video, core animations etc... so both may be correct if considering quartz composers use the core image framework. which is pretty much now called quartz core. quartz core throws in scalable user interface frameworks as well.

so from my point of view quartz defiantly infers quartz composer and quartz composer infers quartz core frameworks but saying quartz core doesn't necessarily mean quartz composer because its at a lower level ?

does that make sense to anyone ?

gtoledo3's picture
Re: Quartz in the App Store

Cybero said that Quartz Composer is "simply an application only". I'm clarifying that this is not the case.

cybero's picture
Re: Quartz in the App Store

Quote:

does that make sense to anyone ?

absolutely

cybero's picture
Re: Quartz in the App Store

I guess I'm just going to have to agree to differ with you.

I see Quartz Composer - it's the application. If I see QuartzComposer, then I think framework.

& am glad that's clear now •~

gtoledo3's picture
Re: Quartz in the App Store

cybero wrote:
I guess I'm just going to have to agree to differ with you.

I see Quartz Composer - it's the application. If I see QuartzComposer, then I think framework.

& am glad that's clear now •~

http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Co...

cybero's picture
Re: Quartz in the App Store

Already read that page some time ago now and re-reading it, I can well see how you come to your firm opinion and understanding.

I can also well see how I understand the framework as separate and integral to the tool [application to my way of thinking].

Whatever, without the framework the tool would be as good as useless and without the tool ... ?

gtoledo3's picture
Re: Quartz in the App Store

cybero wrote:
Already read that page some time ago now and re-reading it, I can well see how you come to your firm opinion and understanding.

I can also well see how I understand the framework as separate and integral to the tool [application to my way of thinking].

Whatever, without the framework the tool would be as good as useless and without the tool ... ?

Well, I had read Alastair as making a correct comment, and you incorrectly correcting him. You characterized Quartz Composer as an application only, and described it as primarily depending on the Quartz framework. Then you characterized the Quartz framework as including a few other frameworks that you proceeded to list (which was accurate).

Reading through, it was just one of those kind of inaccuracies that I don't feel helps anyone have a clearer picture of what's going on, if it goes without clarification, so I was just trying to be helpful and convey my understanding from reading Apple's documentation.

I wish I had a dollar for every time I've gotten things like this subtly mixed up, or should have fallen on my own sword WAY quicker. It's an honest mistake.

gtoledo3's picture
Re: Quartz in the App Store

Also, about patch stuff...

If your app happens to load something on the HD that isn't standard API, and is incidental to the function of your application - as in, your App doesn't rely upon it to provide a useful experience, it's OK. That's fairly slim boundaries to work within, and pretty much identical to not being able to use non-standard API, but it may be worth noting.

I haven't really kept up on application sandboxing, whether it is totally required, and whether or not that prevents a qtz from loading Quartz Composer Patches from the Library or not, but if it doesn't, then an app will load stuff like AlphaBlend if the user has it installed, and if you've used it in your qtz. I don't know if reviewers are looking for that with QC stuff or not, and blocking it if it does that, but some other app developers (not in the QC realm) are using this tact.