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 (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to