On 5/15/12 11:18 AM, Alex Zavatone wrote:
> Yes, and I've tested it and we haven't had a problem with this.  I
> trust your advice, yet all I can see is that if the data transmission
> fails mid 4KB data transfer, it would hang.  In the case where the
> URL is invalid or unreachable, we have a dict to read from on the
> device.

In the "real world" things never behave normally.  Here are just a few
issues that can (and by Murphy's Law, will) come up but won't trigger a
validity/reachability failure:

- The network is reachable but DNS is slow or unavailable.
- A caching DNS server has a stale record, directing traffic to a wrong
machine whose firewall silently drops packets on the floor (i.e. no
reject message sent).
- The client is running inside a captive network that is not detected by
iOS.  (This happens surprisingly often, as far as I can tell in cases
where the captive network passes ICMP traffic but not TCP/UDP.)
- As you indicated, data transmission fails mid-transfer.  This could
happen for a reason as simple as walking into a basement or tunnel.  (I
recall once standing at a construction site, watching in horror as a
backhoe drove right through a fiber bundle, instantly killing all my
connections.)  Of course, until a TCP timeout is reached, this is
indistinguishable from a slow connection.  (Cf. the Two Generals' Problem.)

You really can't assume that a network connection will ever complete in
any finite period.  In fact, you have to assume that any given
connection will take an indeterminate (worst-case: infinite) amount of time.

> Well, the Apple HUI guidelines have been taking some strange
> directions recently on the Mac end of things.  I'm sticking with what
> I know will provide a tried and true expected (good) user experience.

I disagree that splash screens are a good user experience.

> I'm doing it because it's simply lame to display an empty TVC and
> then have it fill in as content appears like an HTML page.

I don't know what you mean by "lame."  That guidance is because it
*appears* to the user to be faster when you display the empty TVC.

There is an even more important reason not to just throw in a splash
screen as Default.png, though.  As the devices get faster (and your code
more efficient), Default.png will be on the screen for a shorter period
of time.  Eventually you will get the jarring experience of a splash
screen flashing for a moment before the UI draws.  This is a terrible,
strobe-like user experience.

The options then are two-fold:

1) Present a UIImageView of Default.png in
-applicationDidFinishLaunchingWithOptions:.  This allows you to
subsequently do a controlled presentation of the UI without a strobe
effect, but irritates users because you are now actively impeding their
ability to actually use the app.

2) Drop the splash screen and replace it with an "empty" (non-localized)
UI image.

I think of this as analogous to watching movies.  One reason that
watching movies on iTunes is more pleasant than DVD or Blu-ray is that I
don't have to suffer through Hollywood's version of a splash screen:
Copyright notices.

> I'm missing your point.  Are you saying don't use a graphic
> (Default.png) when the app launches or the approach I used back last
> century with Director?

I'm not familiar with Director.

I'm saying: grab a screenshot of the initial screen and edit out any
elements that will vary by locale (e.g. text, dynamically sized
controls, etc.) and use that.  Alternatively, create a xib that matches
your UI but without any such localized elements, and use a screenshot of
that xib.

The latter requires maintaining two xibs, though, so I usually just go
the Acorn (or Photoshop, or Pixelmator, pick your poison) route.


-- 
Conrad Shultz

Synthetiq Solutions
www.synthetiqsolutions.com
_______________________________________________

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

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

Reply via email to