Get Time

Wireless Woes and Winners
Wednesday, August 21, 2002
By polgara,TopCoder Member

I have a laptop with a wireless card in it. Before you get jealous, you should know that the range is 150 km (100 miles) from the core Toronto area, and it is SLOW! Dialing-up and pcanywhere-ing to my machine will waste anywhere from 2-4 minutes in connection time, while performing any routine tasks will bring back unwelcome memories of a 300-baud modem. My cell phone has a screen that is two inches by two inches - small and handy to carry - but not ideal web surfing size. In fact, I have had web access via my cell phone for over one year and have only used it once - to look for movie showings at a theatre, when I decided to see "Men in Black II" on a whim. It has been three years since wireless first emerged in a big way on the technology radar, yet we still do not have a single, global standard for wireless technology.

It is worth noting that despite these limitations, according to many of the US industry analysts, mobile phones with colour screens and cameras are some of the hottest technology items today, and are set to be the "star" gadgets for holiday shopping season '02. And manufacturers are doing their bit by offering prettier and faster goodies. For example, Sidekick, from Danger, combines a mobile phone, handheld computer and a large display screen in a tiny, compact-sized kit. Handspring has a combination phone and Palm-based handheld computer organizer. And Sony Ericsson (joint venture between the two companies) sells a phone with a clip-on camera attachment. Service providers have also gotten into the game, with Sprint now offering customers the ability to easily check email and surf the web from their mobile phones. Blackberry's RIM pager, now provides secure email access.

The bottom line is that the added flexibility and mobility of not being physically tied to a network outweigh many of the annoyances. Mobile devices are obviously here to stay, and as a programmer, you have an opportunity to provide better, faster and more convenient applications to your customers. Though the arena is constantly evolving, there are tips or tricks, which can make your job as a developer, just a bit easier, when developing mobile applications.

1. Delivery of application to clients:
You will need a wireless network to deploy your application to customers. Issues to consider when selecting an efficient network carrier to best deliver your particular program include a consideration of:

  • Coverage Range offered (outside)
  • Inside Buildings Coverage
  • Network Congestion/Traffic patterns
  • Packet Size and data "massage" adjustments by network gateways
  • Data transmission characteristics: carriers optimize their networks for different types of data e.g. binary data transfer versus human readable text

2. Standardization does not exist:
Each manufacturer has their own standard and protocols for talking to devices. The Holy Grail of wireless programming involves leveraging the full capabilities of every wireless device while still providing a consistent user experience. One of the most highly anticipated developments in this quest, was "BlueTooth" technology. Named after a 10th century Viking King, and using the unlicensed 1.4GHz band, BlueTooth was supposed to enable devices in close proximity (e.g. computers, printers, refrigerators or other household appliances) to communicate with each other. It was expected to be of special value to users who had multiple mobile devices (e.g. Rim, Palm or Cell) and wanted to be able to control all of them from one source. Thus programmers could code for any one of the devices, and have the others update each other automatically. There are currently several BlueTooth handsets available in the United States and Europe, however the rate of adoption has not been anywhere close to anticipated or matching the hype surrounding it.

3. It's tough to please everybody, so choose carefully:
Everyone has his or her favorite mobile device. Some will swear that they cannot live without their Palm, or Cassiopeia or PocketPC, whereas for me, the cell is my appendage of choice (despite often forgetting to re-charge it). Due to lack of universal standards, it is difficult to create a single application that is optimized for every wireless device. A more sensible approach involves putting personal preferences aside, taking a poll of the top three most popular, wireless devices used by your clients and building for those devices. You can always expand outwards to include other devices, if your mobile application is a success.

4. Customization of the application to different devices:
At minimum, to begin writing a wireless application requires a text editor, since most hand-held tools support WML (subset of XML). WML allows for device neutrality by advocating a lowest common denominator approach that requires catering to myriad screen-widths, input methods and processing power. The trade-off is that the more sophisticated coding opportunities offered by advanced hand-held devices might not be used to full advantage by the coder. Many wireless manufacturers offer a SDK or emulator to optimize the writing of applications for their particular device or series of devices. However, to utilize this method, would require re-writing the application for each set of mobile gadgets.

There are ways to get around developing for each individual device, by using third party software. These products fall into two major methodologies:

  • Screen Scraping Programs:
    Most first generation software products that assist in creating Wireless applications (like IBM's Transcoding Server) use this approach. In this model, data is pulled from existing website content (or the data can be pulled as an XML feed) and then formatted using a style sheet for each particular WAP device. The advantage of "Screen-Scraping" is that you can take advantage of your existing web pages, without re-writing your code and you can continue to develop in the CGI or scripting language of your preference.

There are a number of disadvantages to "Screen-Scraping":

  • Your website may need to go thorough a major overhaul so it is better able to appear on a WAP device. For instance, many web applications require acknowledgement of a legal disclaimer before utilizing the services. A WAP device is not an ideal device for reading legal disclaimers.
  • If your website relies on ECMA Script or other client side technologies, they are unlikely to be supported in the browser.
  • You may have to manually tweak each style sheet (for every kind of WAP device) so your site appears more appropriately, though this can also be considered an advantage in the end.

  • Abstract Application Creation:
    The other approach to developing wireless applications is to build it as an abstract application. Companies like Bitmovers or Verisign provide a set of tools which allow programmers to develop code or modules in the IDE. Their software then figures out how best to render the modules/code to each type of PDA unit. The software company is responsible for providing updates and plug-ins to facilitate proper rendering, as new types of devices enter the market.

    The advantage of an "Abstract Application" model, is that it features a Write Once, Deploy Anywhere (isn't WODA a cool acronym?) philosophy. Most of the technologies that advocate this approach use Java as their base, so that gives the added bonus of being able to re-use Java classes that may have been previously written for other applications.

    The primary disadvantage of this latter system is that it requires learning to program in the development environment provided by the software company.

5. Security of mobile applications:
Wireless devices cannot verify the status of a traditional SSL certificate, but companies like Verisign offer short-lived certificates (WTLS) that are re-issued every 24 hours to lessen the risk of encountering a compromised connection. Verisign technology works with a number of major manufacturers (Motorola, Nokia, Ericsson, CMG, Materna, 724 Solutions, and Openwave), however it does not work with all WAP servers, so check before you build and deploy your program. You also need to consider the case that the customer loses their mobile device - assess the security risks to your data or network if the device is stolen or goes missing.

6. Testing phase:
There is a great deal of pressure to push applications out the door as quickly as possible, especially when it is a relatively hot technology like wireless. Just like a traditional application deployment though, it is important to go through a Beta-testing phase before rolling out to the world. This gives you the chance to correct deficiencies as well as to fine-tune your application and optimize it for latency, coverage and time-of-day considerations.

7. Futurama:
Always build for the future, whether it is wireless or wired technology. This means considering software updates and changes to your application. Does the client have to do anything, if you change the application (e.g. download an updated program)? Will the customer need to be re-trained, if the program changes? Are you going to expand the application and optimize it for other mobile devices?

8. You cannot step twice into the same river:
Wireless technology is constantly changing. To keep up with the mobile market is a constant struggle between being "bleeding" edge, having no customers or lagging behind, and knowing that there is a good chance of finding an audience for your application.

There are several factors currently limiting the spread of wireless applications. Network speed, security issues and competing operating systems are among the major obstacles. In addition to physical limitations, it is necessary to think really hard about what would constitute appropriate mobile programs. After all, do you really need to be able to pay your hydro bill via a cell phone - is there any added convenience over using a regular desktop or laptop to perform web-banking transactions? However, while demand from customers for programs has been low, there are still "killer" applications for the wireless world:

  • Location-based Services:
    Generally your cell phone "knows" where it is as long as you have service (at least it "knows" within a triangulation of cell towers). Using your mobile unit to look for alternate driving routes, to check movie locations, bus schedules or other location-based services are ideal applications for PDAs.
  • Wireless Gaming:
    Game playing is big in Japan. And according to Frost and Sullivan, the US wireless game industry could be worth US $2.8 billion by 2006. While waiting in lines for transportation or other services, checking e-mail, downloading music or playing games with friends, can be a more pleasant way to spend the otherwise wasted time.
  • Email:
    Blackberry's handheld RIM or Palm's i705, which has service all over Canada and the United States, are some of the hottest growing devices in the portable e-mail delivery field. Updating in real time, with the addition of secure connections, means leaving the heavier, clunky laptop behind, but still being able to stay in touch with the office.
  • Virtual Offices:
    Use of PDAs can give the illusion that your company is much larger in size that is actually true, since it allows entrepreneurs to respond to customer requests immediately. Or it can be used to maintain the illusion of a local office, where there is no physical presence. Any software application that augments this illusion or provides the means for better communication with clients can be a winner.
  • Quick Peek at Financial Data:
    While performing a lengthy banking transaction is not an ideal wireless application, providing a quick summary page of financial status can be a useful program. For example, a quick peek at my visa account via cell-phone or other mobile device, would be handy - particularly when traveling. It is not necessary to display the detailed transactions, but simply a summary of current balance and outstanding credit.

And perhaps my favorite use of cell phones - not having to remember to change phone number listings with all my friends, when I move!

By polgara
TopCoder Member
Author Profile

Would you like to write a feature?