Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

robbieduncan

Moderator emeritus
Original poster
Jul 24, 2002
25,611
893
Harrogate
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).

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 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?
 

robbieduncan

Moderator emeritus
Original poster
Jul 24, 2002
25,611
893
Harrogate
caveman_uk said:
That does seem a bit mad!

There are alternatives to Sparkle. You could use something similar to UKNiftyFeatures on this page. 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

macrumors 6502
Sep 19, 2002
260
0
Auburn, AL
robbieduncan said:
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).

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 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

macrumors 603
Jan 6, 2004
6,250
2,576
Western US
I agree it's strange it should add so much, but what's a couple hundred K nowadays? Go for it, make it good.
 

robbieduncan

Moderator emeritus
Original poster
Jul 24, 2002
25,611
893
Harrogate
mduser63 said:
... 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

macrumors 68030
Sep 13, 2001
2,579
2
Portland, OR
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).
 
HiRez said:
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.
 

savar

macrumors 68000
Jun 6, 2003
1,950
0
District of Columbia
robbieduncan said:
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

Moderator emeritus
Original poster
Jul 24, 2002
25,611
893
Harrogate
savar said:
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.
 

gnasher729

Suspended
Nov 25, 2005
17,980
5,565
robbieduncan said:
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).

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 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.
 

robbieduncan

Moderator emeritus
Original poster
Jul 24, 2002
25,611
893
Harrogate
caveman_uk said:
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.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.