Recent trends in computing have made its way into hand held, wireless devices. These exciting new devices present new opportunities in the area of software engineering. The same applications that use to be on the desktop can now reside on portable and ubiquitous devices. However, their size and limited resources can make it difficult to implement certain applications.
One such challenge is Internet email. Email over handheld telephones have existed as paging technologies over the past decade (text message notification, Short Messaging Systems, etc), but handling Internet email over handheld devices can present a number of problems and issues:
Currently, Internet emails are growing in complexity. They can contain different character encoding, as well as proprietary display and file formats. Large emails can also contain advanced Internet links and messages.
IMAP, POP, SMTP, MAPI are just a few protocols that are available. Support for a few of these is a minimum requirement.
Users have different mail accounts for different reasons. The mail client should provide mechanisms for accessing all of their mail accounts and consolidating them as well.
User interface considerations
Emails that can be read on large terminal screens cannot be read well on 40x4 character screens. Images (and maybe text) need to be scaled down to accommodate the limited screen real estate.
Even though some users may feel comfortable receiving all of their emails and notification, most will wish to place importance of some emails over others. Users must be able to set different notification priorities for Spam mail, email from businesses, people, etc. Current email technologies allow users to change priorities, but handheld demand more customization since they are more likely to interrupt the user whenever and wherever they are. The context of where they are may also change the priorities of some message. For example, in the afternoon on a weekday all business emails should notify the user immediately and suppress them once they are at home. Users may also want to change the priority level through other mechanisms such as emphasizing a buzz to a beep for urgent messages. Design of a simple customizable UI for this utility is non-trivial.
Bits on the Internet are free, but not for wireless devices. Service providers often charge for information sent on a transactional basis (per message) or by number of packets (per payload), and often both. Its important that the email client minimizes use of bandwidth, wherever possible, but without reducing or removing the context of the original message. Smart text filtering algorithms, image reduction, removal of gratuitous text formatting are several techniques that can reduce the quantity of bits transferred without affecting quality. Priority flags and message filtering mechanisms can halt certain messages from ever reaching the client, thus reducing cost and unnecessary interruptions to the user.
Users should be able to quickly access all features of the phone, in all environments (while walking, driving, etc.). Shortcuts, simple menu navigation, etc. can help reduce the time to reach certain functions, while logical placement of menus can help reduce the learning curve.
Replying to emails will be a challenge. Companies today are integrating 8000 word dictionaries and word auto-completion into the phone to aid in typing text to reply to messages. Address books and aliases are other mechanisms that must be used to reduce the typing (and usability) of the phone.
You will be designing a email client and server that will work over a (simulated) wireless phone. You will need to design and implement a system that will address the issues above. A Nokia WAP server and toolkit will provide you with both the server and client on a Windows NT workstation. Some of the tools and documentation can be found on the websites below: