PDA

View Full Version : First app in Mac app store




Avicenna
Apr 4, 2011, 10:56 PM
Hello everyone,
I just finished programming my first application (Mac OS X). Before submitting my application, I would like to know anything specific that I should be careful about the application features and the programming side. Also please let me know what non-obvious problems you ran into when submitting you application.

My application is basically a notification system for iTunes, whenever a song is played it shows a notification and preview of the lyrics and if you click on it, it takes you a page with lyrics on it. It relies heavily on the Growl framework to deliver these notification. It also uses the Sparkle framework for updating and JSONParser library to parse json from a server.
For programming, I only have 1 pair of .h/.m file for AppDelegate and about 600 lines of code. I don't see the need of any extra classes as it's just a bunch of methods most IBActions...

Based on this, please give me any advice/heads up before i submit so I don't get a reject after a month and have to go through the submit process again and then wait again....

Thanks.



gnasher729
Apr 5, 2011, 04:59 AM
Hello everyone,
I just finished programming my first application (Mac OS X). Before submitting my application, I would like to know anything specific that I should be careful about the application features and the programming side. Also please let me know what non-obvious problems you ran into when submitting you application.

My application is basically a notification system for iTunes, whenever a song is played it shows a notification and preview of the lyrics and if you click on it, it takes you a page with lyrics on it. It relies heavily on the Growl framework to deliver these notification. It also uses the Sparkle framework for updating and JSONParser library to parse json from a server.
For programming, I only have 1 pair of .h/.m file for AppDelegate and about 600 lines of code. I don't see the need of any extra classes as it's just a bunch of methods most IBActions...

Based on this, please give me any advice/heads up before i submit so I don't get a reject after a month and have to go through the submit process again and then wait again....

"Sparkle framework for updating" looks like a big "no" to me. You can probably email the guys who create Sparkle and they can tell you if I am wrong, but updates should happen through the App Store only.

Apart from that, there is a lengthy document on Apple's website with all the guidelines, and I guess you just need to go through them step by step. Most important is that if you install this application on a fresh Macintosh with 10.6.6 installed and nothing else, it has to work out of the box, and it mustn't install anything elsewhere. And if you store preferences or other files, they need to be in locations matching the name of your application. Would probably be nice but not essential if it works on the latest 10.7 developer release so you and your users don't have to upgrade when 10.7 arrives; Apple won't reject it for that.

robbieduncan
Apr 5, 2011, 05:04 AM
"Sparkle framework for updating" looks like a big "no" to me. You can probably email the guys who create Sparkle and they can tell you if I am wrong, but updates should happen through the App Store only.

Yep. I've seen blog entries from other developers who disabled the Sparkle bit for App Store submission but still linked against the framework and were rejected as Apple auto-scan for that linking. To get on the App Store the app store must be the only update mechanism and no trace of any other can be found, even if it's disabled or not in use.

Phil A.
Apr 5, 2011, 05:07 AM
In addition to what others have said about sparkle, it appears your app won't work without Growl being installed on the user's machine. This also means it will probably be rejected: Apps can't have hard dependencies on things that aren't part of the standard operating system.
The reason for this is what would happen if a user downloaded your app and didn't have Growl installed?
Also, you can't install growl automatically as part of your installation as it breaks the terms and conditions of Growl

balamw
Apr 5, 2011, 06:04 AM
This also means it will probably be rejected: Apps can't have hard dependencies on things that aren't part of the standard operating system.


Could that be worked around by making that a soft dependency? i.e. providing some basic notification of your own without Growl, but then taking advantage of it if it happens to be installed?

Is even suggesting that Growl be installed or providing a link to it a no-no?

B

Littleodie914
Apr 5, 2011, 07:42 AM
In addition to what others have said about sparkle, it appears your app won't work without Growl being installed on the user's machine. This also means it will probably be rejected: Apps can't have hard dependencies on things that aren't part of the standard operating system.
The reason for this is what would happen if a user downloaded your app and didn't have Growl installed?
Also, you can't install growl automatically as part of your installation as it breaks the terms and conditions of Growl

Could that be worked around by making that a soft dependency? i.e. providing some basic notification of your own without Growl, but then taking advantage of it if it happens to be installed?

Is even suggesting that Growl be installed or providing a link to it a no-no?

BOne of the Growl frameworks includes an installer. When you download the framework, there are actually two .framework files, one that will not function if Growl is not installed, and one that will prompt the user to install Growl.

Click here (http://growl.info/documentation/developer/implementing-growl.php), then scroll all the way to the bottom section, and read the second paragraph for more details.

For the record, I have an app in the Mac App Store that includes the "Growl+Installer" framework, but have yet to turn on the features that use it.

balamw
Apr 5, 2011, 07:44 AM
For the record, I have an app in the Mac App Store that includes the "Growl+Installer" framework, but have yet to turn on the features that use it.

Good to know!

Your app works without it though, right?

B

Littleodie914
Apr 6, 2011, 07:58 AM
Good to know!

Your app works without it though, right?

BYea, the framework isn't actually being used currently. There's code in the current version for notifications/alarms using Growl, but it's currently disabled until I can do a bit more testing. (And if you choose not to install Growl, you just won't see the notifications.)