Developing Applications For Windows Mobile-Based Smartphones
Terence Finan, for Microsoft
Microsoft® Windows Mobile™ 2002 software for Smartphone
Summary: This article provides a high-level introduction to the hardware, the operating system, and development tools for the Microsoft Smartphone. (10 printed pages)
Smartphone At A Glance
Smartphone Platform Architecture
Smartphone Development Tools
Smartphone Applications: Uses and Design Concepts
Smartphone User Interface Elements
In the past few years, there has been exponential growth in the use of cellular telephones and handheld computing devices. One result of this is the burgeoning presence of "convergence" technologies that take advantage of the best of both worlds — the telephone and the mobile computing device. According to the research firm ID, worldwide shipments of "smart" phones are expected to grow from approximately 1.6 million units in 2002 to about 64.3 million units in 2005 — a growth rate of more than 3,900 percent in just a few years.
Microsoft is responding to this exciting new industry. Founded with the vision of a computer on every desk and in every home, Microsoft has expanded its mission to include software that enables access to information at any time, in any place, on any device. This includes an ever-growing array of mobile devices, such as cellular telephones and small but powerful computing devices like those based on Microsoft's Pocket PC platform.
The Microsoft Smartphone is a new, compelling, and equally powerful addition to the Microsoft family of mobile products. Offering both voice and wireless data capabilities in one device, the Smartphone extends the value of the mobile phone concept. It is both a great phone and a platform for both online and offline applications that can help users stay connected to important, time-sensitive information. The sheer size of the potential industry presents ample opportunity for developing applications for users who want the form factor of the Smartphone.
This paper provides software developers – including those in the telecommunications arena as well as applications developers – with a high-level introduction to the hardware, the operating system, and development tools for the Microsoft Smartphone. It includes an "At a Glance" overview of the Smartphone product, followed by a more detailed look at the product hardware, architecture, and application scenarios. It provides Independent Software Vendors (ISVs) with an initial look at the Smartphone, as well as insight into the potential market opportunities for applications that can leverage the upcoming third generation of broadband networks with compelling, content-rich Smartphone applications.
Smartphone At A Glance
What Is The Microsoft Smartphone?
The Microsoft Smartphone is a component of Microsoft's end-to-end wireless computing strategy, providing another means for users to access rich client capabilities, back-end data, and end-user services. The Smartphone combines telephony features with the functionality of a personal digital assistant (PDA) in a compact wireless telephone form factor that can be operated with one hand. Functions include voice, SMS, and Instant Messaging services; email that can be received from sources such as the Outlook® messaging and collaboration client, Exchange, IMAP, and POP3 services; and Personal Information Management (PIM) applications such as calendar and contacts.
What Is the Underlying Platform For The Smartphone?
The Smartphone 2002 platform is based on the Microsoft Windows CE 3.0 operating system, and contains many of the same core applications available on Pocket PC-based computing devices, including email, PIM tools, and Pocket Internet Explorer Web software. The Web software supports HTML, WAP (WML) and XML formats. Because Smartphone is built on the open Windows platform, application developers can use familiar Windows-based technologies available in the Smartphone SDK and the broader Windows development environment for creating innovative and compelling products and services.
Smartphone Platform Architecture
The Microsoft Smartphone architecture is based on the Windows CE 3.0 operating system, and contains many of the same Win32®-based features and functions, including Win32 APIs such as TAPI and Winsock, known to developers worldwide who have designed thousands of applications for the Pocket PC platform. The Smartphone architecture provides a core set of services that will abstract a variety of underlying links for both voice and data services. Applications written on top of the Smartphone's core architecture are not required to know anything about the underlying connections — although they can query to determine the characteristics of the channel. Many applications written to work in a wired environment for the desktop or Windows CE-based devices can be modified so they can establish connections to the Internet with the Smartphone. Similarly, applications that might have originally been deployed to run atop GSM will work without change if deployed on a CDMA network. Ultimately, this flexibility lets developers re-use their knowledge and software across a wide range of wired and wireless networks, platform options and configurations.
Figure 1 is a high-level overview of the primary Smartphone architecture components:
Figure 1. Overview of Smartphone architecture components.
The Applications/UI level refers to the Smartphone shell and customer-level applications such as Pocket Internet Explorer, the Inbox, the control panel, and the phone dialer.
The Logic level contains system application logic that can be used by the application layer. Examples of this include the control of network connections and synchronization capabilities.
The Core APIs level provides the interfaces between the low level architecture components (Operating System, Smartphone software, and radio stack) and the application/logic layers. By developing applications targeted at this layer and the one above, developers do not need to know the underlying low level details in order to take full advantage of their capabilities.
The Radio Stack level refers, in general, to the architectural components responsible for voice and data control and data transmission.
Microsoft Smartphone users will likely be accessing corporate data using their devices or conducting other confidential transactions, such as Internet-based purchases. Because of this, the Smartphone has been designed to be secure "out of the box" with support for Internet security standards such as SSL and PPTP. Security measures that can be added to Smartphone include requiring EXEs and DLLs to be signed before being used; preventing untrusted EXEs and DLLs from accessing critical system resources; allowing applications to configure aspects of encryption; and using authentication procedures on SLIP and PPP via PAP and CHAP. These and other security options are designed to prevent the most likely security issues related to Smartphone use, including spoofing, tampering, information disclosures, and denial of service.
Smartphone Development Tools
Microsoft Smartphone application developers will benefit from a wide range of development tools. Smartphone development is supported by the Microsoft eMbedded Visual Tools — specifically, eMbedded Visual C++® 3.0. This toolset offers a familiar environment for Windows developers and an easy-to-learn environment for non-Windows developers. This product is free of charge and is available at: www.microsoft.com/mobile/developer.
The Microsoft eMbedded Visual C++ 3.0 development system offers the native code C++ compiler for Windows CE-based development. It targets all current devices based on Windows CE 2.11 and higher, including the Smartphone 2002, the original Pocket PC, and the new Pocket PC 2002. The eMbedded Visual C++ 3.0 toolkit must be used in conjunction with the Smartphone 2002 SDK, which contains extensive documentation, code samples, and a comprehensive API set. It also contains an emulator that greatly enhances application development and testing.
Smartphone developers will also be able to eventually take advantage of Visual Studio® .NET, including new and exciting tools such as the Microsoft .Net Compact Framework and Smart Device Extensions. The Smart Device Extensions (SDE) for Visual Studio .NET is an add-on for Visual Studio .NET that allows developers to write .NET applications for devices, enabling distributed computing with connected and disconnected scenarios for mobile devices. The extensive class library available through the .NET Compact Framework allows applications to be written much faster than with traditional tools. The Microsoft Mobile Internet Toolkit (MMIT) complements the Smart Device Extensions and the .NET Compact Framework and is also part of Visual Studio .Net. The MMIT allows developers to build a single mobile Web application that automatically adapts its page rendering for a wide variety of devices, such as Internet-enabled mobile phones, pagers, and Pocket PC-based products.
The Microsoft Smartphone combines telephone features with functions typically found in a PDA and packages them in a mobile phone form factor. With a wireless data connection, a Smartphone 2002 provides a portable voice and data communication tool. Usability studies indicate that end users expect both robust performance and simplicity of operation in such a device. The user may be moving while operating the phone, and could be using the device in less-than-ideal conditions, such as in crowded spaces or poorly lit rooms. Therefore, certain design restrictions have been placed on the Smartphone platform. However, Microsoft recognizes that OEMs and ISVs need to differentiate their products in the market. To balance user expectations and product differentiation, Microsoft has proposed required and optional sets of key codes for handling navigation, dialing, and data access on the Smartphone.
Figure 2 shows a suggested standard layout and control hardware set for Smartphones that is based on usability design research. The placement of soft keys, Home and Back keys, and the five-way d-pad shown here is strongly recommended. All the hardware controls shown here must be present, but OEMs can deviate from the placement of those controls shown in the illustration. Application designers should make no assumptions about the absolute location of controls on the device. **
Figure 2. Suggested standard layout of the Smartphone.
The Smartphone display is an LCD screen in portrait orientation. A typical resolution will be a 0.20 mm dot pitch and a 176x220 resolution. The display can be grayscale or color. The display is designed for one-handed navigation using the five-way d-pad rather than a touch screen display. Research indicates that this is preferable for several reasons, including user expectations of being able to operate a phone with one hand, the lower power consumption, and greater durability of non-touch screens.
Smartphone Applications: Uses and Design Concepts
The application model for the Smartphone is simple and flexible. There are certain types of applications that can benefit from being deployed on the Smartphone platform. These include:
- Line of business applications designed for enterprise tasks such as Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM).
- Company-branded applications that allow organizations such as mobile operators and large corporations to promote their corporate identity through the use of text, bitmaps, splash screens, Home screens, and the Pocket Internet Explorer Favorites screen.
- Infrastructure applications that address functions such as security, firewall, anti-virus, encryption, database, and systems management.
- Productivity applications, including email and intranet access and browsing.
- Messaging applications such as e-mail, Instant Messaging (IM), Short Messaging Services (SMS), Enhanced Messaging Services (EMS), and Multimedia Messaging Services (MMS).
- Entertainment applications*,* including games, multimedia that uses audio and video, and location-based services.
Based on usability research and the likely user expectations for the Smartphone, Microsoft strongly recommends that developers design Smartphone applications with the following principles in mind:
Consistency: Effective applications are internally consistent and consistent with other applications running on the same platform. Consistency increases user comfort and confidence, makes users productive more quickly, and makes it easy for users to transfer skills used in one application to other applications running on the same platform.
Simplicity: A Smartphone has limited screen space and input interfaces, so it is important to keep operations relatively simple. Multiple views, menus, and controls on the screen may result in user confusion and frustration as well as complex code requiring more testing and debugging.
User Control: Users value products that they can easily understand and control. Through settings and configuration options, users should be able to personalize their data management. However, the depth of control and the options available to the user must be balanced with the need for simplicity.
Feedback: Users should receive clear and immediate feedback on their actions when using a Smartphone. Where possible, error messages should provide the user with feedback on how to correct the situation.
Smartphone User Interface Elements
Microsoft has written an extensive Smartphone Design Guide (included in the SDK) that provides a detailed look at all the design elements of building applications for the Smartphone. This section provides some of the highlights from that guide, including the Smartphone user interface elements, which consist of the system font, title bar, menu bar, soft key menus, message boxes, and dialog boxes.
The Smartphone 2002 system font — used in list views, controls, and forms — is 11-point bold Nina. Users can set the font size to either medium or large (large being 16-point Nina). When restarted, the Smartphone defaults to the last font size chosen, so users will see the information on the screen in their preferred font size. Figure 3 shows the system font in a list view:
Figure 3. The system font in a list view.
The title bar, which takes up the top 20 pixels of the screen, is a constant element showing application information and status in 10-point Nina type. For example, in the Calendar application, the title bar displays the date, while in the messaging application, it shows the open mail folder. Icons in the right-hand portion of the title bar provide such information as battery status and signal strength. Figure 4 shows an example of the Calendar title bar:
Figure 4. Calendar title bar.
The menu bar appears at the bottom of the screen, is 20 pixels high, and uses 10-point bold Nina. The menu bar contains two soft keys that are activated by pressing the corresponding hardware button located under the display. Applications use the right soft key to display the menu and the left soft key as a context-sensitive action button. For example, the soft keys in the Contacts list view are "New" and "Menu." When the user goes into Edit View to create a new contact, the soft keys change to "Done" and "Menu".
Figure 5. Soft keys in the Contacts list view.
Soft Key Menus
Pressing the "Menu" soft key displays the menu, as shown in figure 6. Pressing the "Menu" soft key again (or the Back button) closes the menu.
Figure 6. Menu soft key.
The Smartphone contains a message box that performs one of three functions: letting the user know that something has happened (e.g., a shortcut has been created); prompting the user for confirmation of an action (e.g., asking the user to confirm that an email is to be deleted); and informing the user of an error (e.g., when the user attempts an invalid action). Smartphone message boxes can occupy either part or all of the screen and provide up to two options that are accessible through soft keys labeled "Yes/No" or "OK/Cancel." 7 shows some examples:
Figure 7. Examples of message boxes.
Dialog boxes in the Smartphone are full-screen lists of controls. Figure 8 shows the Calendar appointment dialog box uses a time picker, text entry box, and spinner controls (the sets of double arrows in the bottom right-hand corner). The Tasks dialog box uses a text entry box and check boxes.
Figure 8. Examples of dialog boxes.
Controls in dialog boxes can be dynamically populated by another control in the dialog box. For example, selecting the "All day event" check box in the Calendar appointment dialog box automatically changes the start and end times.
Well-designed devices allow users to easily and intuitively move around the screen and perform actions. Because the Smartphone is designed for use with one hand, it uses built-in hardware buttons for navigation and actions, rather than a touch screen and stylus approach.
The Home screen, shown in figure 9, is the first screen displayed every time the device is turned on. A user can easily return to the Home screen at any time by pressing the Home button. The device also reverts to the Home screen after a timeout period that, once specified by the user, is entered into the registry. The Home screen gives users a customizable and programmable start page for their Smartphone. It can be used to display a variety of information, such as phone-specific status, information from over-the-air services, and information from PIM applications. Developers can customize the Home screen to reflect a carrier's or company's branding and messaging.
Figure 9. The Home Screen.
The Smartphone provides two navigation buttons for users: A Home button for returning a user to the Home screen from anywhere at any time, and a Back button that is generally used to return to the previous screen. The Back button is context-dependent, so its function will vary according to the application. For example, if a menu is open, the Back button closes the menu; if a message box is open, the Back button closes the box and cancels the action; and on screens with edit controls, the Back button performs a standard delete function.
Navigation Within an Application
There are three basic views available in a Smartphone application: list view, card view, and edit view. The list view displays a list of items; the card view provides more information about a given list item; and the edit view enables the user to update information contained in the card view. Most applications launch to the list view. Selecting one of the list items opens the card view, which provides more information about the list item. The user can choose to edit the card view to make changes or press Back to return to list view. Figure 10 shows the navigation flow within an application:
Figure 10. The navigation flow within an application.
Navigation within Pocket Internet Explorer
Microsoft Pocket Internet Explorer, the browser software on the Smartphone, provides an additional means of navigating within an application. The direction keys on the phone can be used to scroll in any or all directions; the browser's Fit-to-Screen feature allows viewing of sites specifically tailored to the Smartphone screen. If there are links or other hot spots on the page, the focus jumps from one to another as the user scrolls in that direction. As in other versions of Internet Explorer, selecting a link acts like a mouse click and causes the browser to follow the link, and using the Back button takes users to the previous URL.
Navigating Between Applications
Depending on context, a user can move directly between different applications without having to return to the Home screen or the Programs page. For example, in applications such as Call Log or Contacts, pressing Talk when a phone number is highlighted initiates a call and takes the user to the call progress application. There can also be direct links between applications. For example, in Call Log users can choose a menu item that allows them to add the phone number to their contacts. Choosing this menu item launches the Contacts application, and lets the user fill in the rest of the information. The Back key can also be used to navigate between applications.
The innovative Smartphone is another important element in Microsoft's strategy of providing a range of computing platforms that enable information access anytime, anywhere. The Smartphone is being introduced at the beginning of an anticipated explosion in mobile, multifunctional wireless devices. It will deliver a powerful combination of voice and text communications capabilities in a highly compact, easy-to-use form factor. The Smartphone provides application developers an opportunity to develop innovative applications for a market that will experience exponential growth in the next several years.
For more information about the Microsoft Smartphone 2002, visit the following Web sites:
- For general information about Microsoft's mobile products, including the Smartphone, visit www.microsoft.com/mobile.
- For Microsoft Mobile platform development resources, visit www.microsoft.com/mobile/developer.
- If you are a Microsoft Partner or are interested in joining the Microsoft Partner Program, visit www.microsoft.com/mobile/partners.