iPad devsugar: Three lessons from the iPhone
In pixel-terms, the iPad offers a much larger workspace to develop on than the iPhone but in terms of the human experience, it's not that very far away from iPhone programming. The two share an underlying operating system and a large overlap in human interaction realities. Here are just three of those overlapping iPhone development realities. Consider taking these ideas into account as you're building your new and updated applications for the iPad.Human fingers are big. Although the iPhone has a much smaller screen than the iPad, the size and shape of the typical human finger does not change between the two devices. Do not design interaction elements for the iPad smaller than, say 40-by-40 pixels in size.
When in doubt, design larger rather than smaller. The iPad with its larger screen is more likely to be held further away during use than the iPhone, which is often raised fairly close in during use. Build your on-screen objects accordingly. With its 1024x768-pixel screen, the iPad has the room for clean, large interaction elements. Use that space to better compliment the human finger.
Attention spans are short. Like the iPhone, expect your users to approach the iPad in a sporadic netbook-style fashion. Design your applications around short interaction periods and prepare for your application to be cut off as a user stands up to grab his next Orange-Cranberry Frapaccino.
Always save your application state between sessions, as much as you possibly can. A well designed app should relaunch quickly and, upon relaunching, approximate the same task your user was performing the last time the program was run. This can demand diligence on the part of the programmer, but is worth the time investment due to the payoff in user satisfaction.
One more tip after the break!
Thanks Scott Lawrence, |Agent
You've got to launch fast. If users complained about your launch speed issues on the iPhone, expect even worse criticism on the netbook-like iPad. Get your user into your application and started with work as soon as you possibly can. Apps that display credits and launch videos are wasting the user's time. Remember too that larger screen size means larger image asset sizes; which may take more time to load.
Use threads to keep your GUI from blocking on load. A well-threaded app should be able to catch up with the user without blocking the user from getting started. Remember that you're working in a one-application-at-a-time OS. Users will both want to and need to flip from one app to another as e-mail arrives or when checking a reference on the web. By speeding up your application launches, you help ensure that your user can get back to what he was doing as quickly as possible.
Share
Source: http://tuaw.com/tag/devsugar
In pixel-terms, the iPad offers a much larger workspace to develop on than the iPhone but in terms of the human experience, it's not that...
Add a Comment
As an (extremely smalltime) iPhone developer I am not convinced that the part about short-time attention-span will ring true for the iPad. I suspect that the comfortable nature of a quality screen and ease of entertainment consumption will lead to the iPad being used more than a lot of people's laptops eventually.
I can actually see the device becoming a real contender when it comes to single-task work, for instance I believe an iPad with a keyboard connected could be just about the best writing station for someone writing creatively. Distraction free and a setup that mimics the old type-writer a lot better than a regular laptop. (Not to mention the fact that it's a much better device for proof-reading).
Is there any good reason why the SDK doesn't include an API that can save application state (heap, stacks, registers) with a single call, and restore it with another? For apps with a small memory footprint and few threads this should be very fast, certainly much faster than any non-binary serialization process the developer has to write herself and that cannot capture state completely (stack, registers), and could provide an experience like on a "switch task" O/S - as some of you may recall, we had those on the PC back in the day as an intermediary step on the way to multitasking.
At least on the iPhone, I don't really need multitasking at all. There is nothing I can think of I want an application to be doing on the phone when I am not using it. But I frequently need to jump between apps, to copy/paste something or to read that paragraph on the web page again before continuing on my e-mail. Push notifications are a better solution for the other scenarios - I'd much rather have an incoming Skype call appear as a push notification than spend my battery on having Skype running continously in the background.
I think this will largely apply on the iPad too, although if people start using them for real work they might want to be able to use other apps while those music files are being converted or Picasa for iPad matches faces to people... or any long-running task really.
Perhaps the save/load state at program exit/startup could even be the default behavior for future apps? Coupled with some O/S provided UI to easily access the most recently used app this would considerably enhance the user experience at little cost to developers or battery life. And it would end the frustration with all those apps that are useful but simply haven't implemented this "go back to where you left off" feature.
The prime example from my own use is an app from RATP, the entity that runs public transport in the Paris metro area. It shows estimates of when buses and trains will arrive at various points, but since this is inherently unpredictable I want to re-check the estimates fairly frequently. Doing so currently requires me to launch the app, watch the splash screen, select network (bus, metro, regional train, etc.), select line, select stop... then finally look at the estimate for two seconds and close the application. While it does have a "favourites" list that shortens this process to launch, select favourites, select favourite, I still spend 90% of the time with this app navigating it. Since it provides me with very useful information - and the total time is still fairly low - I can endure it, but it would no doubt have been a lot better with a "switch task" concept built right into the platform itself.
I think we will start to see richer apps on the iPad making use of the extra screen real estate.
Apps like Facebook will be used less tho imo due to the screen being big enough to just browse the web on the full site.
Sure, the full website will be viewable. But just like the native app on the iPhone runs rings around the mobile site, a native app on the iPad (or the desktop PC or Mac for that matter) can run rings around the full-blown site.
I personally suspect the main reason they made a native app for the iPhone and not for the desktop is that the iPhone was cool and devs wanted to do it. But maybe it really was (the more rational reason) that a mobile web facebook app was just too painful to use.
I must admit I am amivalent about the whole web thing and where it's going. Native apps that use client-server architecture can get their specialized job done way more efficiently (and sometimes effectively), but a bunch of separate client-server systems is not a web; it's a disaster for interoperability. Unfortunately my wishing that there was an interoperable W3C-style client-server standard that was really designed for making applications rather than interlinked documents doesn't have much impact on reality. :) Such a system would have to include standardized, rich client-side libraries and strict communication protocols. Beyond that, clients and servers could be open or proprietary and differ in implementation (just like there are different browsers and web servers, both open and proprietary). Yes I know there are JavaScript libraries, but I'm talking about running native (or JITted native) code on the client, installing the code on the client (rather than downloading it and the libraries it depends on each time).
I agree, fewer dedicated website apps and more full-featured apps will appear.
February 05 2010 at 9:17 PM Report abuse Permalink rate up rate down ReplyInteresting to see how the extra real estate will work with third-party applications. Some apps MUST go larger on the iPad, like facebook for example, sure it worked fine on the little screen but you should have a much better experience on the big screen.
February 04 2010 at 1:51 AM Report abuse Permalink rate up rate down ReplyConstructive. Nice.
February 03 2010 at 10:43 PM Report abuse Permalink rate up rate down ReplyGood ways to remember to be friendly to the user.
February 03 2010 at 8:02 PM Report abuse Permalink rate up rate down ReplyGreat article, even though I'm not a developer or coder of any kind, still interesting to see best practices in sausage making.
February 03 2010 at 7:58 PM Report abuse Permalink rate up rate down ReplyOne other note: the screens have different pixel densities. It's about 160ppi on the iPhone and about 130ppi on the iPad, so a shape of certain pixel dimensions will be about 25% larger on the iPad. For example, a 160px x 160px square will be 1" on the iPhone and 1.25" on the iPad. If you make an element that is to be touched and it's a little on the small side on the iPad, it'll be REALLY small on the iPhone.
February 03 2010 at 7:40 PM Report abuse Permalink rate up rate down ReplyI agree with Erica, this device will be held more at arm's length (or close). I think the pixel density will appear the same because of this.
February 05 2010 at 9:18 PM Report abuse Permalink rate up rate down ReplyHot Apps on TUAW
Deals of the Day
more deals- Refurb Apple MacBook Air Laptops: 12" 64GB SSD for $699 + free shipping
- JVC Motion Sensing Clock Radio with Dual iPod Docks for $55 + free shipping
- Apple iPhone Headset with Mic for $4 + $2 s&h
- miFrame Picture Frame Dock for iPad for $64 + $8 s&h
- Refurb Apple iPod nano 8GB MP3 Player for $99 + free shipping, 16GB for $119
- Hannspree Apple-Shaped 28" 1080p LCD HDTV for $270 + free shipping
Software Updates
more updates- EFI Firmware Update brings Lion Internet Recovery to 2010-model Macs
- OS X Lion 10.7.3 released with Safari 5.1.3, Wi-Fi bug fix
- Aperture updated to 3.2.2, addresses Photo Stream issue
- Apple updates Keynote to address Lion issues
- Google Search app gets new look on iPad
- Apple releases Apple TV Software Update 4.4.3



11 Comments