[OT] Re: How to make app login window to look like OS X user login window ?
[OT] Re: How to make app login window to look like OS X user login window ?
- Subject: [OT] Re: How to make app login window to look like OS X user login window ?
- From: Alastair Houghton <email@hidden>
- Date: Wed, 22 Apr 2009 23:47:35 +0100
On 22 Apr 2009, at 17:06, Chris Williams wrote:
So you'd rather the user sits there wondering if this huge, highly
complex
application (like any Office or Adobe app) that takes 10-15 seconds
to load,
even longer on a slow laptop, is actually starting up, or should I
click it
again, or is my computer dead, or "what the heck is going on here"...?
If you think Office or any of Adobe's apps really have a good excuse
for that behaviour, I'm afraid you're sorely mistaken. The problem
they're trying to solve is well-known, and has been solved for *years*
in some other bits of software. Since we're talking huge apps, a
reasonable comparison might be Emacs, which, if it tried to load
everything individually like Adobe's apps appear to, would probably
take even longer to load. Yet it appears almost instantaneously.
(Yes, I know, I know, that's because of a horrible unexec() hack, at
least on most platforms, though IIRC the OS X implementation is a
little cleaner than average.)
Another large example is OS X itself; it does an Emacs-like trick with
device drivers, loading them all in one lump from a cache file
whenever possible.
I suppose both Adobe and Microsoft would retort that they have a lot
of historic baggage and that re-implementing the start-up code isn't
high priority for them. Maybe even that there genuinely are things
they need to do that really do take time and can't be avoided (though
I'm doubtful). I'm only picking on their apps because you mentioned
them, and they're easy targets :-)
Splash screens serve a purpose other than advertising. No program I
know of
actually delays the load to show the splash screen.
The point is that most of what they do at load time can usually either
be avoided entirely, optimized somehow or deferred until it's really
necessary.
I have an application that connects to a SQL server. The app itself
isn't a
slow loader, but the connection to the SQL server (often on another
computer
or on hard drives that may be asleep) can take 5, 10, or more
seconds to
establish. The splash screen shows that progress and let's the user
know
what things are being done. Far better than a spinning beach ball.
But much better to display the app's main UI and then use the app's
usual progress indication mechanism. And then, ideally, to make any
parts of the UI that *can* start working work as soon as possible.
Of course, we're generalising here, and there is a fine line between
having a splash screen and having a window that opens that says that
you're just connecting to your server or fetching essential data.
Incidentally, since you're talking about a database app, it's worth
contemplating whether there is anything that you don't really need to
fetch straight away; you *might* find that you don't even need to load
any data up front, but just need to do some queries to establish the
structure of the data that you're going to have to load. I'm sure
you've thought of all of this already wish such a large volume of
data, but even if that's true then it might be a useful pointer for
someone else reading this e-mail.
Anyway, this is getting kind of off-topic, but hopefully it's a useful
post anyway.
Kind regards,
Alastair.
--
http://alastairs-place.net
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden