PDA

View Full Version : Huge Frameworks Ripping Into Tiny Innocent Apps




robbieduncan
Jul 9, 2006, 03:21 AM
Ok, this is a serious thread despite a title you probably received in your spam this morning!

Where do you stand on including a framework larger than the app it's being included in just to gain a single feature? There are few cool frameworks out there that give you nice features more or less for free but they are often huge.

OK enough of the abstract stuff: a concrete example. I've been putting off finishing the next version of Poster Paint to write a small app to monitor web sites for changes (as requested in this thread (http://forums.macrumors.com/showthread.php?p=2594051#post2594051)).

Before I release 0.0.0 I want to include an auto-update feature as I may well release a number of small updates over the next few weeks. I could use my own framework which is not too massive but it only informs a user when a new version is available, then it's up to the user to download the new version and install it. So I looked into using Sparkle (http://www.andymatuschak.org/pages/sparkle) which is super cool. But it's huge:

World Wide Watcher (my app, without any Frameworks): 164KB
Sparkle (with lots of localisations): 1.7MB ( :eek: )
Sparkle (with just English and some file trimmed from nibs): 636KB.

So the question is: is it worth making my app 5 times as big just for some cool functionality?



caveman_uk
Jul 9, 2006, 03:42 AM
That does seem a bit mad!

There are alternatives to Sparkle. You could use something similar to UKNiftyFeatures on this page. (http://www.zathras.de/angelweb/sourcecode.htm) It's nowhere near as cool as Sparkle but then again it's a fraction of the size.

robbieduncan
Jul 9, 2006, 03:45 AM
That does seem a bit mad!

There are alternatives to Sparkle. You could use something similar to UKNiftyFeatures on this page. (http://www.zathras.de/angelweb/sourcecode.htm) It's nowhere near as cool as Sparkle but then again it's a fraction of the size.

That's the real problem. I have my own code that is much smaller but no where near as cool. I am leaning towards using Sparkle as I intend using it in other apps as well. Whilst it will be making up a huge portion of the download in these days of super-fast broadband the size (especially when we are talking in KB) is not all that worrying.

guifa
Jul 9, 2006, 04:58 AM
Ok, this is a serious thread despite a title you probably received in your spam this morning!

Where do you stand on including a framework larger than the app it's being included in just to gain a single feature? There are few cool frameworks out there that give you nice features more or less for free but they are often huge.

OK enough of the abstract stuff: a concrete example. I've been putting off finishing the next version of Poster Paint to write a small app to monitor web sites for changes (as requested in this thread (http://forums.macrumors.com/showthread.php?p=2594051#post2594051)).

Before I release 0.0.0 I want to include an auto-update feature as I may well release a number of small updates over the next few weeks. I could use my own framework which is not too massive but it only informs a user when a new version is available, then it's up to the user to download the new version and install it. So I looked into using Sparkle (http://www.andymatuschak.org/pages/sparkle) which is super cool. But it's huge:

World Wide Watcher (my app, without any Frameworks): 164KB
Sparkle (with lots of localisations): 1.7MB ( :eek: )
Sparkle (with just English and some file trimmed from nibs): 636KB.

So the question is: is it worth making my app 5 times as big just for some cool functionality?
How the heck is Sparkle so big? Especially the localisations? Are they localising images like Apple has been (stupidly) doing for the iWeb and iPhoto and iWork? I'll have to look at their source code (I'm on a Windows for the month) but it seems odd that something that just does a fancy update check would be multiple times larger than entire other apps.

HiRez
Jul 9, 2006, 06:30 AM
I agree it's strange it should add so much, but what's a couple hundred K nowadays? Go for it, make it good.

mduser63
Jul 9, 2006, 01:25 PM
As a percentage of your total app size it will be gargantuan, but in absolute terms, even 1.7 MB is not at all bad for a shareware app.

robbieduncan
Jul 9, 2006, 01:29 PM
... a shareware app.

I give my stuff away for free :D

I've decided to strip away all the non-English languages as the app is not localised. Current size is under 800K all in. Once that's compressed it should be a reasonable size...

Catfish_Man
Jul 9, 2006, 05:26 PM
If you do figure out how to make Sparkle smaller, then hooray for you :) Adium 1.0b is kinda chunky as a result of including a few more frameworks (joscar, sparkle).

AlmostThere
Jul 9, 2006, 05:37 PM
I agree it's strange it should add so much, but what's a couple hundred K nowadays? Go for it, make it good.
I agree ... a meg or two? Nothing.

Mac apps have always been "fat" and is one price to pay for a simple drag and drop installation process. At the end of the day, you can't have a "batteries included" system without including the batteries ... just sometimes, someone is going to get the erm, "dirty" end of the stick, so to speak.

mduser63
Jul 9, 2006, 05:47 PM
I give my stuff away for free :D

Even better. If it's free, no one can complain about the size ;).

savar
Jul 9, 2006, 06:52 PM
So the question is: is it worth making my app 5 times as big just for some cool functionality?

Umm, are you sure that Sparkle isn't statically linked? If it is statically linked, then you'll only link in the code that you actually need, and hopefully that will be a subset if you're not using all of its features. Did you try linking against it yet?

If it really is bloated, maybe you can write to the author and suggest that the produce a "lite" version?

robbieduncan
Jul 10, 2006, 04:27 AM
Umm, are you sure that Sparkle isn't statically linked? If it is statically linked, then you'll only link in the code that you actually need, and hopefully that will be a subset if you're not using all of its features. Did you try linking against it yet?

If it really is bloated, maybe you can write to the author and suggest that the produce a "lite" version?

Frameworks don't work like that! You link against them then include a copy of the framework in your app so it's all kind of dynamically linked. Looking at the sourceI think that it's just going to be that big! It does a whole heap of stuff to get the fancy stuff working.

Catfish_Man
Jul 14, 2006, 10:34 PM
<updated> Get Sparkle 1.1. It's smaller </updated>

robbieduncan
Jul 17, 2006, 06:33 AM
<updated> Get Sparkle 1.1. It's smaller </updated>

It certainly is. :D

I am just working on packaging before releasing an early version of my new app.

gnasher729
Jul 17, 2006, 09:00 AM
Ok, this is a serious thread despite a title you probably received in your spam this morning!

Where do you stand on including a framework larger than the app it's being included in just to gain a single feature? There are few cool frameworks out there that give you nice features more or less for free but they are often huge.

OK enough of the abstract stuff: a concrete example. I've been putting off finishing the next version of Poster Paint to write a small app to monitor web sites for changes (as requested in this thread (http://forums.macrumors.com/showthread.php?p=2594051#post2594051)).

Before I release 0.0.0 I want to include an auto-update feature as I may well release a number of small updates over the next few weeks. I could use my own framework which is not too massive but it only informs a user when a new version is available, then it's up to the user to download the new version and install it. So I looked into using Sparkle (http://www.andymatuschak.org/pages/sparkle) which is super cool. But it's huge:

World Wide Watcher (my app, without any Frameworks): 164KB
Sparkle (with lots of localisations): 1.7MB ( :eek: )
Sparkle (with just English and some file trimmed from nibs): 636KB.

So the question is: is it worth making my app 5 times as big just for some cool functionality?

"Five times as big" doesn't matter. What matters what it costs the user. So this framework takes 1.7 MB. A twohundred GB harddisk costs less than $100. That is 50 cent per GB. Less than one tenth of a cent for 1.7 MB.

I wouldn't worry about it.

caveman_uk
Jul 17, 2006, 09:12 AM
"Five times as big" doesn't matter.
It might for users on dial up.

robbieduncan
Jul 17, 2006, 09:48 AM
It might for users on dial up.

To be fair the app in question is probably not of much interest to dial-up users. It maintains a list of URLs and polls them every so often to check if they have changed.

Catfish_Man
Jul 19, 2006, 02:55 PM
If someone wants about 10,000 awesome points... look into making Sparkle use zsync to do delta updates.