Re: How to make app login window to look like OS X user login window ?
Re: How to make app login window to look like OS X user login window ?
- Subject: Re: How to make app login window to look like OS X user login window ?
- From: Chris Hanson <email@hidden>
- Date: Wed, 22 Apr 2009 20:33:08 -0700
On Apr 22, 2009, at 7:30 PM, Mario Kušnjer wrote:
Well I was thinking this way: First window that shows when you start
the app is login window because user can't use an app if he doesn't
log in.
My point is that this isn't the logic your application should be
following. Instead, your application should just attempt to log in.
If the user can't be logged in using their stored credentials —
because there are no stored credentials, because their log-in
information was rejected, etc. — then show your application's log-in
panel. And be sure that your log-in panel has a checkbox that allows
the user to save their credentials in the Keychain.
And about Splash Screen: The user name and password provided in
login window is checked against a remote database over network, so
that is why network check is done on app launch and while
that is performed I show Splash Screen. If network resources are
unavailable no login window is showed but instead a window that
perform certain tasks regarding the problem (if no connection - open
network pref, if no database - select or create database, etc).
Again, the network may become unavailable between when the network
check takes place and when the user actually attempts to log in. This
happens all the time to users on wireless connections, so it's not
something you can just dismiss. Your application needs to be prepared
for the network state to change over its lifetime, at any point in the
application's execution. Application launch isn't a special time that
should be singled out.
Furthermore, there are a ton of ways any particular Mac may be able to
reach your server over the network: A wireless network, a wired
network, a 3G network card, a FireWire network, a VPN… And there's no
"primary" or "default" connection, any & all network connections may
be available from any given Mac at any given time, with the built-in
routing infrastructure deciding which one a particular connection gets
routed through. There's no simple "Are network resources available?"
check that you can make, other than "Can I connect to my server, right
now?"
And even then, you're still not out of the woods: Some networks may
have proxies in place that will intercept your attempt to connect to
your server until the user visits a log-in page in their web browser.
(Coffee shops often do this in the United States.) Your software will
need to cope with that situation too.
To sum up: Your application will need to deal sensibly with shifting
network conditions while it's running. Application launch time is not
special or different in this respect.
-- Chris
_______________________________________________
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