|
Comments
|
Today's Top SOA Links
BF on CF WAP Revisited
WAP Revisited
By: Ben Forta
Jan. 27, 2001 12:00 AM
Fourteen columns ago in CFDJ (Vol. 1, issue 6) I wrote about wireless computing having finally come of age, the importance of WAP, and that ColdFusion developers could leverage this new and exciting technology quickly and easily. During that time WAP has become quite the buzzword. Developers seem to love it, industry pundits love to hate it, and all the while more and more WAP devices and content are becoming available. According to Pinpoint.com there were less than 1,000 publicly available WAP pages at the end of 1999 and over 2,000,000 by June 2000 (a growth curve that even dwarfs the Web's). And based on current trends, IDC is predicting that by mid-2002 more users will be accessing Internet services using wireless devices than traditional wired connections (this is already the case in Japan). What all this means is: like it or not, WAP is here to stay. With WAP 2 on the horizon (a more complete specification that adopts XHTML instead of the more "proprietary" WML), WAP creates interesting new possibilities and opportunities for developers willing to give it a try. In this month's column I'd like to revisit WAP, but not from a beginner's perspective (for that, refer to my aforementioned column). Rather (based on the questions I get asked most frequently), I'd like to take a big step back and look at some overall design and development considerations - things to keep in mind when looking at WAP.
The "Killer App" that Isn't
There is no killer WAP app - the platform and devices are not designed for applications, never mind killer ones. If users wanted to run apps, they'd use browsers or more traditional clients. WAP is used because it allows instant access to small, bite-sized chunks of highly relevant information. The relationship of WAP to the Web is similar to the one between pagers and cell phones. Your phone is used for full-blown conversations, while pagers are used for small bursts of immediately needed information. Even though most phones nowadays are pagers too, the analogy still works - one does much less but is well suited for short bursts of information; the other does much more but has more overhead. The same is true for WAP and the Web. The "killer app" is actually not an app at all - it's data, any data that's time-sensitive. Examples are:
Incidentally, many columnists (including some very respected ones) have denounced WAP with a "who would want to surf the Web on a device with a postage stamp-sized screen" argument. And they're right, who would? The problem is, they're totally missing the point here - the fact that they're thinking about surfing the Web means they've completely misunderstood the use of this technology. They're right, no one should be surfing the Web on a WAP device, but for instant access to the data you need when you need it, WAP makes all the sense in the world.
Forget Pretty, Make It Functional
This is proving to be one of the most difficult transitions for Web developers looking at WAP - in the WAP world functionality is not the primary objective, it's the only real objective. Making screens look pretty is pointless for a whole slew of reasons:
Keep Bandwidth in Mind
Before you go off to check file sizes, it gets a little more complex. Data is compiled when sent to the device (instead of as raw text), and the packet size you need to watch is the compiled packet size (which can be bigger or smaller than the raw text size). You usually don't have to compile data yourself (the WAP gateway does that); however, even though you're delivering raw (uncompiled) text, you should still know the number of bytes it'll compile to. Most development SDKs (like Phone.com's UP.SDK and Nokia's SDK) feature mechanisms that determine compiled content size. These options should be used. Another important note is that every effort should be made to fill packets - it takes just as long to send a packet that's half full as it does to send a packet in which every byte is used. When planning your design pay attention to this - perhaps you could send multiple cards (a deck) instead of a single card so the next request won't need a round-trip to the server, or perhaps you could afford to provide more information within a card (preventing the need for another request) if space permits. Bandwidth concerns will go away eventually, but you can't afford to wait until then. If you're serious about WAP development, you need to worry about this right now. Emulators - Love Them and Hate Them I've mentioned that the SDK is available from Phone.com and Nokia. These SDKs include device emulators - software programs that let you simulate a device's operation on your computer. Emulators are important, and you must use them. Actually, I'd go as far as to say that you must use them all, or at least the major ones:
But don't rely on emulators - ever. They're called emulators for a reason - they're not real devices, they just emulate (pretend to be) them. Emulators can give you a good idea as to how your code will behave (and the better emulators actually run the same software that's running on the device being emulated), but there's no substitute for real-world testing. In an ideal world you wouldn't need emulators at all, but this is not an ideal world. Developers don't have access to all major devices. Some devices operate only in specific parts of this planet, and the exact same device can function differently based on the provider using it. So emulators are needed, but they must be viewed for what they are - emulators. Before you deploy your app you must test it on real devices, as many as you can. You should even try to find users with other devices and enlist them in the testing, even users in other countries. This should be obvious, but I'll say it anyway - the more you test, the better.
Rethink User Interfaces
Here are some points to consider:
Writing for HTML and WAP
As explained above, WAP sites and Web sites have different goals. If you're trying to port an HTML app to WAP, I suspect you're not creating a WAP site that will truly deliver what WAP users want. What makes a good Web site is not what makes a good WAP site, and the reverse is true too. The goals are different, the user experience is different, the navigation is different - there's usually more that's different than the same. Even if the HTML and WAP sites were so similar that you could use XML and XSL to render the content in different ways, chances are it still won't work properly. For example, a single HTML page doesn't map to a single WAP card - sometimes a single HTML page needs to be multiple cards, other times many HTML pages need to be a single deck of cards. Trying to render content for both platforms at once usually means that you deliver content for neither effectively. If you're serious about WAP (and I believe you should be), you need to take a big step back when thinking through your wireless application. If you can reuse existing code or content, great; if not, don't try and force it anyway. It just won't work. Having said that, I do believe content can (and should) be reused. If you've created your Web application correctly, separating content from presentation and business logic, you'll likely find that content (and perhaps even business logic) can be reused. (Incidentally, this is why Spectra is so well suited for HTML+WAP development). If you're developing code from scratch, you should definitely tier your code this way in order to reuse as much of your investment as possible.
Summary
Reader Feedback: Page 1 of 1
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week |
|||||||||||||||||||||||||||