How Do They Do That?: Ferrari GT on Windows phone

Hi, I'm Gian Wilson – Gaming Product Manager in Microsoft’s Mobile Communications Business.  I plan to keep you up to date with what is going on in the world of Gaming on Windows phone, and from time to time I'll have some guest bloggers write some stuff as well.

This installment is from our good friends over at Gameloft. This is the first in the "How Do They Do That?" series and explains how Ferrari GT made its way on to Windows phone! 

Enjoy!

 

Who hasn't dreamed of driving a Ferrari car? They are the benchmark when it comes to outstanding vehicles, and here at Gameloft, we wanted to give everyone the opportunity to drive one in the most realistic mobile game possible. Anytime and anywhere, all you have to do is use your Windows mobile phone to enter the world of the most famous car brand.

To create a 100% Ferrari game we worked close with Ferrari's engineers. Every car in the game is a Ferrari, even the traffic cars you pass on the road are in fact Ferrari 412s, a model from 1985.

Our game designers went to various locations such as Rome, Madrid, Los Angeles and New York City to accurately recreate these famous settings for each race, bringing you fully detailed environments.

You may think that small details are not needed when remodeling a car for a phone-sized screen, but the truth is that every car in the game has been modeled in complete high-definition 3D rendering before being re-sized to fit on your screen. Every car model was then individually submitted to the Ferrari engineer that created it, and was reworked until the engineer was satisfied with the virtual appearance of his creation.

For example, take a look at these 3D models for the Ferrari Testarossa:

clip_image002    clip_image002[4]

 

clip_image002[6]

clip_image002[8]

Nice isn't it? Well, that's where the Testarossa you play in the game comes from!

Finally, we succeeded in creating the most realistic Ferrari game, but the spirit was still missing. What makes Ferrari is its heart and its history. So, we spoke to our contacts at Ferrari and obtained authorization to use the original Ferrari encyclopedia to add facts and information to every loading screen, bringing you the real story of the prancing horse company.

And all of this is now available for you on Windows Marketplace for Mobile.


Windows Marketplace for Windows Mobile 6 and 6.1

After last week’s news, I’m pleased to tell you that Windows Marketplace for Mobile has today reached another major milestone by adding support for Windows Mobile 6 and 6.1 devices. This is an especially proud day for Microsoft because it marks our fulfillment of the Marketplace vision that we put forth only 9 months ago at Mobile World Congress. Last week we expanded the Marketplace experience to the PC and updated the developer portal to include stronger anti-piracy protection features for developers. Today, Marketplace is delivering some great free new features that enhance and expand the Marketplace experience to even more Windows Mobile customers.

Now available for phones with Windows Mobile 6.0 and 6.1
Initially, Marketplace was available for the new Windows phones with Windows Mobile 6.5. Today, almost all people with phones running Windows Mobile 6.0 and above with a supporting data plan can now access Marketplace. We’re delighted to bring the benefits of Marketplace to even more people, and give Windows phone developers the opportunity to reach more than 30 million devices worldwide. To get Marketplace for a Windows Mobile 6.0 or 6.1 based device, customers can simply point their phone’s browser to http://mp.windowsphone.com to start the download process; from the Web, customers can visit http://windowsphone.com/getmarketplace or simply click here. Then browse and shop a wide range of quality applications for work and play; roughly 90% of the apps in our catalogue already support Windows Mobile 6.0 and 6.1 devices.

Updated application catalog and software vendors

The activity we’re seeing on Marketplace continues to give us confidence that we’re delivering the right value to the right market. Customers and developers alike are responding well to our focus on quality, ease of use and flexibility – both in the shopping experience and in our relationship with the developer community. We now offer over 800 applications, more than three times the number we offered when Marketplace launched just over one month ago. Additionally, over 1,000 software vendors and counting are registered to deliver great applications for work and play on Marketplace.

Microsoft was among the first to make transparency a core tenet of our relationship with developers and we’re pleased to see others in the industry follow suit. We may not have built the first application store, but we did set out to pioneer a fresh Marketplace experience that we look forward to expanding upon in the months and years ahead.

New online marketing campaign

Over the past 9 months we’ve made some promises. We told you that we would bring to market a fresh take on the mobile application store that delivers strong value and opportunity for developers and a convenient and confident shopping experience for people, across their choice of handset and mobile operator. Today, Marketplace is flourishing and the new features described above further deliver against our vision for establishing a new mobile application market. To celebrate this latest milestone, we are launching a multi-faceted online marketing campaign to ensure people surfing the web are aware of all the high quality applications that our developers have made available for Windows Mobile 6, 6.1 and 6.5 based devices. As we said in October, in the coming months you will see more exciting news coming from Windows phones and Windows Marketplace for Mobile as we continue find new ways of improving the Windows phone experience for customers and creating new business opportunities for developers.

We’re just getting started!


Video: Windows Mobile And Bing Navigation

Whenever traveling to other cities for business I always print off a list of address, phone numbers, etc. On this latest trip to Atlanta however I decided to forego this practice and put the Microsoft mobile experience to the test. I made a conscious decision to rely completely on the integrated backend systems that combine web services with Microsoft Exchange and SharePoint combined with their surfacing of information through my HTC Ozone Windows Phone on the Verizon Network. Toss in the stellar GPS capabilities of the device and this latest business trip I was living the mobile dream. In this episode of Michael on the Go I demonstrate how all this took place.

- Michael Gannotti is a Portals Technology Specialist for Microsoft and the author of the blog SocialMedia Talk.


New Windows Phones are Here!

Today’s the day – new Windows phones are available worldwide! We’re thrilled to share this moment with our hardware partners and mobile operators who are bringing new Windows phones to market today and into the holiday season. In fact, we expect our partners will deliver more than 30 new Windows phones in over 20 countries by end of this year alone. To find out which phones are available for your country/region and carrier, check out the initial list here!

The virtual walls between work and play are crumbling. In a recent Omnibus survey in the U.S., survey respondents told us mobile phones help them bridge the gap between their personal and professional lives. Sixty eight percent of mobile phone users say they use their mobile phone for personal purposes while at work or school. Sixty-three percent of adults make social plans at work or school, Fifty-two percent take pictures and send them to friends, and forty-three percent would starve without their mobile phones (they use them to order meals).

Bottom line is people want great phone experiences wherever they are. They have come to expect rich communications from their Windows phone, from doing real work on their mobile phones using PowerPoint, Word and Excel, to staying connected in their social lives through support for Windows Live messaging, the new MySpace application for Windows phone and photo sharing across other major social networking sites like Twitter, Facebook and Flickr. We’ve also worked hard to deliver a browsing experience in new Windows phones that displays Web pages on the phone similar to the desktop and provides support for Adobe Flash Lite so people can view Flash-based video content right on their phones.

People also want the ability to get stuff done with the confidence that comes from a Windows phone.  The Omnibus research revealed that more than eighty percent of adults who own a mobile phone would be willing to offer an award if they lost it. With this in mind, today we are unveiling My Phone, a free service that syncs data from a phone -- like pictures, music and text messages -- to a Web portal for safe keeping. If a phone is stolen, left behind, sandwiched between couch cushions or otherwise lost, My Phone can locate it, ring it (even if on vibrate), lock it or wipe it clean of personal information. And when you buy a new Windows phone, My Phone will restore contacts, photos, videos and messages right back to the new device.

Finally, people want a phone that meets their specific needs. They want to choose a phone that is unique to them, with the apps that matter to them, that is capable of connecting them with the people and information that matter to them – that reflects their unique lives, styles and lifestyles. Windows phones give people the choice of a broad selection of form factors from sleek, touch screen devices to full QWERTY keyboards. They have access to a wide range of quality applications for work and play through the Windows Marketplace for Mobile. And they can change the look and feel of their phones with personal themes for their Windows phone with a quick visit to the Custom Theme Creator, or choose from designer themes available from icons Diane Von Furstenberg, Vera Wang, Isaac Mizrahi, Rock&Republic and Ron Arad.

As you can see, I’m super excited about new Windows phones hitting stores today. They represent a significant step forward in helping people work better and play happier through the phone that connects them — to their information, to other devices, to their worlds and to each other. I encourage you to find the new Windows phone that fits your needs and style today.

More information about Windows Marketplace for Mobile and My Phone, plus a wide array of videos, screen shots and much more are available on PressPass.


Windows Marketplace Update - Countdown to Launch

With less than a week until the launch of Windows phones and Windows Marketplace for Mobile, I wanted to take a minute to thank the global developer and ISV community for rallying around Marketplace and offer a quick update on what we’ve been up to.

First and foremost, the response to Windows Marketplace has been impressive in terms of the number of creative developers we’re working with and the depth of engineering- and process-oriented feedback we’ve received and incorporated. Our commitment to transparency has generated a surprising level of collaboration that impacts Marketplace development on a daily basis. I know that getting in on the ground floor of an ambitious effort like Marketplace isn’t easy. I sincerely appreciate your patience, feedback and desire to help us create a world class experience for both developers and end users.

In fact to show that we’re listening and responding, let me run through a few of the top issues you’ve raised or experienced around registration and certification, and what we’re doing about it.

Known issues that we’re addressing because they slow the application submission process:

1. Marketplace catalog icons: We need to ensure that icons meet the correct dimensions upon upload. We didn’t make this as clear as we could have on the submission portal. This was recently corrected.

2. Screen shots: Screen shots also need to meet the correct dimensions and aspect ratio. New guidance on screen shots is available on the Windows Marketplace for Mobile technical forum and we will update Marketplace before launch to ensure that only the correct screen shot dimensions are submitted.

3. Expanding to multiple markets: ISVs have experienced problems when submitting their app to additional markets through the developer portal. We are addressing this in a Marketplace update prior to launch.

4. Finding the answers: We’re working to make it easier for you to find what you need to know. We’ve updated the Marketplace FAQ, remained active in the forums and produced videos to help guide you through the app submission process.

Application Submission Walkthrough

 

We’re also frequently asked what developers and ISVs can do on their end to help speed the process, here are a few tips:

1. Review documentation: Be sure to read through the Application Submission Criteria, Policy Guidelines, Prohibited Applications List and Market Validation Guide prior to application submission. It sounds obvious, but it really is best to spend the time on the front end of the process.

2. Alert your team: Proactively contact the Corporate Approver you designated during Windows Marketplace registration. The Corporate Approver will receive several emails from GeoTrust, who is partnering with Microsoft to provide identity validation services. This will accelerate the identity validation process and reduce the time required before you can submit applications to the Windows Marketplace.

3. Have your ID ready: Individuals may be required to send a copy of government issued photo identification to GeoTrust. Notarized documents for individuals are no longer required. (note that the preferred method for GeoTrust support is through live chat at http://www.geotrust.com/support/chat/order-processing.html )

4. Use App Verifier on Native Code: Remember that Application Verifier only applies to applications written in Native code.

5. Start with the emulator: We recommend testing your application in the Windows Mobile 6.5 emulator prior to submission to the Windows Marketplace. Even better, test the application on a Windows Mobile 6.5 device.

6. Keep reading this blog: Check back to review technical criteria and top tips to help your certification go more smoothly.

As we’ve been discussing since July, our plan is to deliver the full Marketplace experience in two phases. First, we’ll launch Windows Marketplace for Mobile with Windows phones on October 6th. We’ve also discussed following this launch with an update that will include support for Windows Mobile 6 and 6.1 by the end of the year. More specifically, we’re targeting November for phase two. In addition, this second phase will bring the PC based catalog and shopping experience, user generated app reviews, advanced key-based anti-piracy protection and other enhancements that expand your business opportunity and make it easier for a larger number of customers to find and buy your application.

As you can see we’re working hard to deliver on our two core commitments with Marketplace; to create a more open, transparent and rewarding processes for developers and ISVs, and to bring to market a fresh take on the mobile application store that delivers strong value and a great shopping experience for customers. We’re engaged with hundreds of ISVs on a daily basis who are eager to certify their apps and offer great insight into how we can further distinguish both our process and our user experience – keep it coming! And don’t forget that the apps in Marketplace at launch will have a head start in the Race to Market Challenge, and who doesn’t need a Microsoft Surface table?


Demonstration: Enterprise Geocasting, Photosynth, And SharePoint Dashboard With Windows Mobile

This post originally appeared here on SocialMedia Talk with Michael Gannotti

I have done several video where I talked in the past about using the power of Windows Mobile for geocasting in business focused scenarios. The opportunity to leverage the ability to capture rich data with contextual commentary combined with rich ancillary data has powerful applicability in a wide range of scenarios. Law enforcement, emergency responders, physical plant inspection, researchers, news reporting, travel industry, and much much more.

Last week while on my Charlotte visits I used my dearly departed Windows Mobile phone, a Samsung Omnia from Verizon (learn about demise here ;-), to create a geocast using the IncaX LiveMedia GPS application and talked through a scenario where I might be doing a physical plant inspection. I then combined this with a quick and dirty Photosynth of one of the Microsoft office buildings in Charlotte that I drove up to. During the geocast portion I talk about the scenario, road conditions, things that might be reported on, etc., all the while capturing information that in the event of a real business case could be played back in real time for analysis. With the addition of the Photosynth I then was able to create a rich 3-D view of the building in question that could also then be navigated and further analyzed. Finally, all this was then easily served up via my SharePoint dashboard page, an out of the box feature of SharePoint, making this a navigable record that could be further extended with textual reporting (oh say via InfoPath form services) and other data as desired.

The powerful combination of geocasting leveraging the Windows Phone platform with IncaX along with Photosynth and SharePoint delivery can be real business enabling features where rich data capture for analysis, entertainment, and so on is important. Think about the competitive advantage such a solution could bring to a cruise lines, the benefits to insurance companies assessing the damage done during a natural disaster, the evidence captured in law enforcement.

Check out the simple dashboard I have created with very little effort and think about how leveraging the Microsoft platform can enable your business. Be sure to toggle through the views (arial, road) in the geocast mashup stream (delivered via Microsoft Silverlight technology), zoom in and out,  as well as the blow out underneath  the video box. The click around the Photosynth itself and see how it is possible to create an immersive 3-D experience of a physical structure. All of this done using common, low cost equipment.

dash

Technology resources cited/used in this demonstration:

Technorati Tags: Microsoft,SharePoint,WindowsMobile,IncaX,Silverlight,Verizon,SocialMedia,Gannotti,Technology


Widget Anatomy – Performance and Battery Life

This is part three of my Widget Anatomy series which which will explain the ins and outs of the Widget Framework that is shipping as part of Windows Mobile 6.5.  In this installment I will discuss how to squeeze the last drop of performance out of the Widget framework to ensure all our Widgets are interactive, alive and fun to use while being good mobile citizens and not draining the user’s battery dry in the process.

All good things

JavaScript is a cool language. It’s simple to learn, use, and understand but it really can get us into a lot of trouble if not used wisely. this is true on all platforms but we must pay special attention to its implications while developing for a mobile platform.

So, just because we are among friends here I’ll share a little secret that showcases the biggest challenge to creating responsive Widgets.  Here it goes… are you ready?… On Windows Mobile 6.5, JavaScript execution blocks the UI.  This means that, whenever there is a script running nothing else can be processed in the widget which includes menu commands and keyboard or touch input processing. Also note that, during script execution the Widget can’t redraw – in other words, any screen updates done during the execution of the script will not be reflected on the screen until after the script finishes its execution.

I know that this sounds like a big obstacle to overcome but it is really not that bad.

One Small Step

On very interesting aspect of performance is that, in most cases, perception is reality.  In a mobile application world, this means that for every user action there is a immediate response from the application that assures the user that their input was acknowledged and is being processed.

The best way to accomplish this on widgets is to minimize the amount of code that is executed on the event handler and defer all actions that are not related to updating the UI to give feedback to the user after a small timeout.

   1: function onCoolActionClick() {
   2:     document.getElementById('waitCursorLayer').style.display = "block";
   3:     window.setTimeout("doCoolStuff()", 50);
   4: }
   5:  
   6: function doCoolStuff() {
   7:     countToAMillion();
   8:     document.getElementById('waitCursorLayer').style.display = "none";
   9: }

The same technique can be applied to break out expensive operations to allow processing of the always important user events.

   1: function countToAMillion(currentCount) {
   2:     // Count to a million in 10 incremets to ensure the UI events can be processed
   3:     var countBlockStarts = currentCount;
   4:     var countBlockEnds   = countBlockStarts + 10;
   5:     
   6:     for(var i = countBlockStarts; i < countBlockEnds; i++) {
   7:         
   8:         // Check to see if we are done
   9:         if(i >= 1000000) {
  10:             return;
  11:         }
  12:         
  13:         // Write the current count
  14:         document.getElementById("currentValue").innerHTML = i;
  15:     }
  16:  
  17:     // schedule the next few elements
  18:     window.setTimeout("countToAMillion(" + countBlockEnds + ")", 50);
  19: }

Another trick that will come handy for most Widgets since they are generally full of dynamic content is that using innerHTML is significantly faster than creating the DOM elements individually and then appending them to the document.  You should never append them to the document one by one, as this will completely destroy your performance since it will force the Widget to re-layout multiple times -- and this is really slow!. I know that this might not be possible in all cases but it is a nice tool to have in case your widget is having performance issues creating dynamic content.

Awakening

Now let’s focus our attention to the flip side of performance which is, without a doubt, battery life.  It is a fact of life that our Widgets, since they are executing code on the device, will have an impact on battery life. The goal is to minimize its effects to ensure happy users.

Thankfully the road to user happiness is not as rough as it might seem, there are a few principals that, if we keep them in mind while writing our Widget code, then we will know for sure that we are only using the power that is necessary to complete our task.

  • Only consume network resources when your widget is active.
  • Minimize animations when the widget is idle.
  • Cache data locally as aggressively as possible, use the widget persistent storage as a repository since it will be preserved across runs (and even upgrades).
  • Be aware of the current battery level and minimize network operations when the battery is running low.
  • Always (and by that I really mean always!!) use asynchronous network requests.

Example:

   1: function onShow() {
   2:     // The widget was activated and is running in the foreground
   3:     // refresh the widget data
   4:     refreshWidgetData();
   5: }
   6:  
   7: function onHide() {
   8:     // Stop al recurring timers to be a good Widget citizen
   9:     stopAllTimers();
  10: }
  11:  
  12: function onLoad() {
  13:     var systemState = widget.createObject("SystemState");
  14:     var batteryStrength = systemState.PowerBatteryStrength;
  15:  
  16:     batteryStrength.addEventListener("changed", optimizeNetworkUsage);
  17:     
  18:     widget.onshow = onShow;
  19:     widget.onhide = onHide;
  20: }

That’s it for now, but before I completely forget, one set of tools that will be your friend tracking performance issues on your widgets (and web applications as well) is the IE8 amazing developer tools (to start them, just press F12) which include a script profiler and it works great for widgets!

Next post: Widget Anatomy – Security


Windows phone Designer Themes

Fashion Week is in full swing in New York City this week, and today, we’re excited to announce five designer themes created just for Windows phones. The themes, which include custom palettes and wallpapers, were designed by some of today’s hottest designers: Diane von Furstenberg, Vera Wang, Isaac Mizrahi, Rock & Republic and Ron Arad.

Vera Wang Rock & Republic Ron Arad

We feel these designer themes are great examples of how Windows phones are moving into the consumer space and our Windows phone offerings on October 6 will continue this expansion of the brand.

Smartphones are just as much a fashion statement as the clothes you wear and are quickly becoming a must-have accessory. The designer themes are just one more way that Windows phones help folks customize their device to fit their style.  No other mobile platform offers this level of self-expression.

We’re excited to team up with these designers to let people customize their mobile device to fit their personality and express their style. It’s time to cast aside your drab default wallpaper and devices theme and make this year about style, color and fun!

These Windows phone exclusive designer themes will be available for free on all Windows phones running Windows Mobile 6.5 on October 6 and can be downloaded for free from Windows Marketplace for Mobile.


Widget Anatomy – The Keys for a Great User Experience

Previous post: Widget Anatomy – The Manifest

This is part two of my “Widget Anatomy” series which will explain the ins and outs of the Widget Framework that is shipping as part of Windows Mobile 6.5.  In this Article we will discuss the major challenges of creating a great user experience that not only looks great, but it integrates nicely with the phone and it’s snappy and fun to use.

The dark side of choice… dealing with screen DPIness

One of the coolest things about the Windows Mobile®  ecosystem is that there are many different devices with all shapes and forms for me to pick up the one that matches my lifestyle best.  All those choices do have a dark side though, there is a variety of screen resolution/sizes we need to make sure our Widgets work and look great on.

The table bellow shows all the supported Resolution/DPIs Windows Mobile 6.5 supports and as you can see it is a big table.

bb264320.wm6_2(en-us,MSDN.10)[1]

Thankfully for widget writing, there really are only two options, one that we will call HiDPI (for 192) and then LoDPI for the rest.  The reason is that, in practice, a document designed for 96 DPI (Internet Explorer on the desktop at 100%) will look fine on 96 DPI, 131 DPI and 128 DPI but it will look way too small on a 192 DPI screen.

Now that we have reduced the supported DPIs to only two, then the best (and easiest) way to handle this in your widget is as follows:

1) Generate two CSS Style Sheets for your widget. You can call them something like HiDPI.css and LoDPI.css, and the basic rule is, for HiDPI, things should be about twice as big to look the same way as they do on the desktop.

2) Detect the screen resolution at runtime to determine which CSS to load.  Here is an example:

   1: function applyCSSStyle() {
   2:     var width = document.documentElement.clientWidth;    
   3:     var cssFile = "css/LoDPI.css";    
   4:     if (width >= 480) {        
   5:         // The document is wider than 480 pixels        
   6:         // it must be a High DPI device       
   7:         cssFile = "css/HiDPI.css";   
   8:     }
   9:     
  10:     // Add the correct CSS style sheet to the document    
  11:     var headID = document.getElementsByTagName("head")[0];    
  12:     var cssNode = document.createElement('link');    
  13:     cssNode.type = 'text/css';    
  14:     cssNode.rel = 'stylesheet';    
  15:     cssNode.href = cssFile;    
  16:     cssNode.media = 'screen';    
  17:     headID.appendChild(cssNode);
  18: }
  19:  
  20: function onLoad() {    
  21:     applyCSSStyle();
  22: }

How to best utilize those SoftKeys

The Widget API gives you full control over the soft key menu bar, but since we want our widgets to behave as native  applications do there are a few guidelines we should try follow:

1. The left soft key should always represent the default action and it should be context sensitive to what the user is supposed to do at that particular step in the User Scenario.

2. The right soft key can be either a menu or a button, when there only are two possible actions you should save the user one click and make it a button… that said, if you do this there should be a way for the user to exit the widget somewhere on your UI.

Just as a quick reminder, calling widget.menu.append(menuItem) Adds a menu item to the right SoftKey, if it was a button it will turn into a menu with the non configurable label “Menu”, also, the “Exit” menu item is added automatically and can’t be renamed nor removed.  calling widget.menu.setSoftKey(menuItem, widget.menu.rightSoftKeyIndex) removes all menu items from the right SoftKey and turns it into a button.

Best practices

The following are some of the best practices we have found really help greatly widgets be the best they can be:

  1. When possible, integrate with the phone “skin” by using theme able colors like “highlight” (details)
  2. Use art assets that match the screen DPINess, or, just provide a high resolution set (shrinking is always better than expanding)
  3. Minimize scrolling, vertical scrolling is ok on some cases, horizontal scrolling in almost all cases is a general NO NO
  4. Handle the screen rotation event, remember that this must be fast
  5. Load fast, generate all dynamic content after the widget is loaded.
  6. Give visual feedback to all user actions.

  7. Next post: Widget Anatomy - Performance and Battery Life


Windows phones are Coming on October 6th!

In just five weeks, you’ll have a bunch of new Windows phones to choose from. But before we show you some of the cool, new phones that will be coming out, I want to explain how we’re trying to make phones even better with Windows.

When we started work on Windows phones, we met with people all over the world who were likely to buy a smartphone and talked with them about what’s important to them in their phone. Looking at the U.S. market, for example, we found that about 15 million people in the next year will buy a new smartphone.

Of the people we talked to, 74% listed productivity as the top feature they value in their smartphone. We took this feedback to heart, making the user interface more touch friendly and improving notifications and updates from e-mail, text and calendar items. We also included the latest Internet Explorer Mobile browser and added free services like My Phone to help protect data in the event of a lost phone and Windows Marketplace for Mobile for access to a wide variety of applications for direct download.

Windows phone Windows phone Windows phone

Interestingly enough, we discovered that most people who carry a Windows phone don’t realize it’s running Windows Mobile. We also heard from many people considering their very first smartphone purchase that they’d very strongly consider a phone running Windows because it’s a brand they know and trust. You’ll see us try to simplify our branding so it’s easier for people to know when they’re carrying a Windows phone and easier to find them in stores.

One thing that was very clear after all these conversations about phones is that there is no “one size fits all” in this market. On Oct. 6th, you’ll see new Windows phones designed for a variety of tastes, needs and price points - with or without keyboards, with or without touch screens, as well as your choice of GPS, accelerometer and high resolution camera. There are a lot of great options and we can’t wait to show them to you. Until then, keep an eye on our partners as they announce details on new Windows phones and where you can find them this fall.

· In North America: Mobile operators AT&T, Bell Mobility, Sprint, TELUS and Verizon Wireless, and phone manufacturers HP, HTC Corp., LG Electronics, Samsung and Toshiba Corp.

· In Europe: Mobile operators Orange, Deutsche Telekom AG and Vodafone Group Plc, and phone manufacturers Acer, HTC, LG Electronics, Samsung, Sony Ericsson and Toshiba

· In Latin America: Mobile operator TIM Brazil, and phone manufacturers HTC, LG Electronics and Samsung

· In Asia Pacific: Mobile operators NTT DOCOMO Inc., SOFTBANK Mobile Corp., SK Telecom, Telstra and WILLCOM Inc., and phone manufacturers Acer Inc., HTC, LG Electronics, Samsung, Sony Ericsson and Toshiba


Windows Marketplace for Mobile: Registration and Application Submission Walkthroughs

If you are new to Windows Marketplace for Mobile or wished there was available a straight forward, step-by-step, tour of the process, the Marketplace team has put together the following two walkthroughs you should find useful.

Enjoy,

Mike


Announcing Mobile Incubation Week: Washington, DC!

Mobile Incubation Week is back, and this time we’re heading to our nation’s capitol in search of the best and brightest mobile entrepreneurs.  The fourth Mobile Incubation Week will be held at Microsoft’s offices in Washington, D.C., September 28 through October 2, 2009. 

If you’re an entrepreneur and have an idea for a great Windows Mobile application, would like to port your existing app, or want to accelerate development of your current Windows Mobile application, we are now accepting nominations. 

Mobile Incubation Week puts you on the fast track to success with dedicated coaches, development support, and business insights.  The week will feature development time supported by Windows Mobile technical gurus, business coaching from members of Microsoft’s Emerging Business Team, sessions on upcoming releases such as Windows Mobile 6.5 and Windows Marketplace for Mobile, and more!  We’ll wrap up on Friday with final judging and prizes, featuring a panel of industry experts, venture capitalists, and members of the press.

This event offers a unique perspective and exciting opportunity for any startup building on the Windows Mobile platform.  Check out the feedback from our last event in Mountain View:

  • “This was truly amazing.  The on-hand development & support staff of Microsoft was outstanding.”

  • “We accomplished more in this week than we could have in six months on our own.” 

  • “All the onsite help dramatically reduced our time to market.”

How do I apply?

To nominate your team, please submit the following details to Mobile Incubation Week:

  • Contact information

  • Location of Company

  • Size of company and year founded (if applicable)

  • Overview of your idea

  • Why you would like to participate

  • How your applications is unique to Windows Mobile

    *Note: please do not send confidential materials at this time as no NDA has been signed.

Applications will be judged according to the strength of the founding team, originality and creativity of the idea, and uniqueness to Windows Mobile. 

How do I keep up with the latest news? 

For more information and to keep up on the latest news and updates on the event, subscribe to our Twitter alias and stay tuned to the blog.

Questions?  Email Mobile Incubation Week.


Microsoft Mobile Security Receives Global Recognition

In case you haven’t heard the news from Sydney Australia, here is the latest scoop.

The Windows Mobile 6.1 operating system, System Centre Mobile Device Manager 2008 and System Centre Mobile Device Manager 2008 Service Pack 1 (SP1) have obtained Common Criteria Evaluation Assurance Level 4 (EAL4). This news follows successful completion of the Defence Signals Directorate (DSD) Australasian Information Security Evaluation Program. The DSD is the Australian Government’s national authority for information security.

By meeting the security criteria for EAL4, Windows Mobile 6.1, System Centre Mobile Device Manager 2008 and System Centre Mobile Device Manager 2008 SP1 are accepted under the Common Criteria Recognition Arrangement (CCRA) by Australia and 25 other countries worldwide including the United States.

The CCRA ensures that evaluations of IT products are performed to high and globally consistent standards. Thus, this certification provides government and enterprise customers with definitive information about the security features in Windows Mobile 6.1, and assurance that mobile workers can securely access sensitive data on information networks.

Windows Mobile 6.1, combined with System Centre Mobile Device Manager 2008, extends mobile security for government and enterprise customers with on-device file encryption and remote device wipe, in the event of theft or loss. Users can access corporate data and intranets with mobile VPN and manage mobile fleets similar to the way IT departments manage PCs.

Commenting on this certification milestone, Don Kerr, product marketing manager for Windows Mobile, said, “We are extremely proud of this successful Common Criteria evaluation as it offers widely recognised assurance that Windows Mobile delivers a very high level of security and protection of information networks.”

“Microsoft is committed to globally recognised evaluations and certification processes as a way of building trust in computing and providing customers in the public and private sectors with a more secure and reliable platform,” said Mr Kerr.

Mike Burgess, first assistant secretary, Information Security, Defence Signals Directorate, said, “We have worked very closely with Microsoft throughout this assessment process to ensure that Windows Mobile 6.1 meets the security needs for government and enterprise networks.”

“Our evaluation of emerging technology is rigorous, but ensures secure use in government systems. Government organisations and enterprises can be assured that Microsoft’s successfully evaluated products can be used to securely enable remote working. DSD looks forward to vendor interest in evaluating a hardware handset that will take advantage of Windows Mobile 6.1 to provide government with another secure option,” said Mr Burgess.

The 26 members included under the Common Criteria Recognition Arrangement (CCRA) are: Australia and New Zealand, Austria, Canada, Czech Republic, Denmark, Finland, France, Germany, Greece, Hungary, India, Israel, Italy, Japan, Republic of Korea, Malaysia, Netherlands, Norway, Pakistan, Singapore, Spain, Sweden, Turkey, United Kingdom and United States.


Widget Anatomy – The Manifest

This is the first part of a new blog series that will describe, in detail, all major aspects of the widget framework available in Windows Mobile 6.5.

The widget manifest is an XML file that describes the corresponding widget in detail so that Windows Mobile can actually do something with it.  This is the first file we look at when the widget is being installed or executed so, even though it is simple, it is extremely important.

For Windows Mobile 6.5 we implemented widgets based on the W3C Widgets 1.0: Packaging and Configuration standard dated Dec-22-08. While the standard continues to evolve, our implementation remains backwards compatible with very few exceptions – notable exceptions will be called out in this blog series.  To save you some W3C reading time, in summary, the widget manifest has to be called config.xml and its presence is required in order for the widget to be considered valid.  Technically you could provide an empty widget manifest and thus get something installed, since all elements inside config.xml are optional.  That said, I recommend that at the very least you define the elements that are present in the following example:

<?xml version="1.0" encoding="utf-8" ?>

<widget xmlns="http://www.w3.org/ns/widgets"

        version="1.0"

        id="http://someSite.com/MyUniqueWidgetID">

  <name>My first widget</name>

  <content src="widget.htm" type="text/html" />

  <access network="true" />

  <icon src="icon.png"/>

  <icon src="icon.ico"/>

  <description>

    This is my first widget,

    it won't make a lot of money on the

    marketplace but at least is cute!

  </description>

  <author href="http://www.windowsphone.com/blog"

          email="jorgeperaza@hotmail.com">Jorge Peraza</author>

  <license>

    Example license (based on MIT License)

    Copyright (c) 2008 The Foo Bar Corp.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS

    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY

    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,

    INSULT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE

    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

  </license>

</widget>

The Widget Element: What Makes Me… Me?

The first element I would like to cover in detail is the <widget> element, the father of all other widget configuration elements.The document can have only one and, from the many attributes that can be specified, we only honor the following two in the current release:

  •  version="1.0" This attribute specifies the widget version number, we use this to check if, when trying to install a new widget with the same id it should be allowed as an upgrade or not.
  • id ="http://someSite.com/MyUniqueWidgetID" This attribute is actually extremely important, this is the unique per widget ID that the framework uses to identify installed widgets.This has to be a well-formed URI but it does not have to be valid.

Some of the child elements like <name>, <description>, <author> and <license> are self-explanatory so I won’t bore you with details for them. See? I’m nice sometimes :-).

Now, let’s talk about one of the most important child elements which happens to be <content src="widget.htm" type="text/html" />This element tells the widget framework which source file to load to execute the widget.You might also notice that the MIME type is also specified here… however on WM 6.5 we only support "text/html" so don’t get any ideas!!

The next group of interesting child elements are the set of <icon src="icon.png"/> which allow you to specify one or more icons for your widget. Icons are very important because they give your widget their unique personality.  Now, there are some important limitations widget writes should be aware of.  Windows Mobile Professional (touch screen) supports both PNGs and JPGs as image file formats to be used as widget icons, however, Windows Mobile Standard only supports ICOs (Please, don’t ask :-)) Soooo, in order for your widget to show best on both platforms I recommend having both and listing the PNG or JPG first.

Last but not least let’s talk about  <access network="true" />. This is an optional element that is required to be “true” if your widget accesses network resources, otherwise you can leave it out (but all cellular network calls will fail).

I went to all the effort for defining all fields in the manifest… can I at least access them from my widget?

Glad you asked, and the answer is… of course!  You can do this by using the widget metadata API available to you courtesy of the “widget” javascript object.  Below are the relevant properties that you can use to get information out of the manifest:

  • widget.version
  • widget.identifier
  • widget.name
  • widget.description
  • widget.authorEmail
  • widget.authorName
  • widget.authorURL
  • widget.height
  • widget.width
  • widget.locale

That’s it for now.  Please stay tuned for more information and happy widget writing!


Using Custom Icons in Windows Mobile 6.5

Update: Updated sample code, you can download it here. Read all about it here.

If you’ve seen the any of the plethora of Windows Mobile 6.5 screen shots, likely you’d agree that it looks much better than previous versions. A component of this ‘face lift’, is support for PNG files in the Window Mobile 6.5 Start screen. Including a nicely rendered PNG file as your application icon is important to ensure the highest quality user experience across different devices.

If you plan to distribute your application via Windows Marketplace for Mobile (and I don’t know why you wouldn’t) the requirements document requires that you use a 90 x 90 Start screen icon for your application. This post will cover how to use PNG files as icons in the Windows Mobile 6.5 Professional Start screen. For information on creating PNG icons, see my previous post on Creating Custom Icons for Windows Mobile 6.5. The sample code I will be referring to in this post can be found here.

Contents:

Start Screen: Resolution / DPI and Icon Size
Registry Keys
Setup: Static or Dynamic
Cached Icons
Games Shortcuts Folder

Start Screen: Resolution / DPI and Icon Size

The Start Screen is one of the huge improvements in Windows Mobile 6.5 Professional. This replaces the Start Menu in previous versions. The improvements include: enhanced touch screen navigation (tap, tap and hold, pan, and flick) and more options for organizing and presenting Start menu items. image

If you are an experienced Windows Mobile developer, you know that depending on the DPI and resolution of the device, the shell extracts the appropriately sized icon from the EXE for display in the Start screen. Windows Mobile 6.5 still supports this; however now it also supports the display of PNG file icons. The shell does not automatically select the size of the PNG icon based on the device DPI. This dynamic selection of the icon is done in a setup dll. (See dynamic setup below.) However, if you do not want to provide a separate PNG file for each DPI, you can provide one (90x90) and the shell will scale down the icon as necessary, depending on the DPI of the device. (In fact, this is the Marketplace requirement.) The table below illustrates the DPI / resolution and icon size relationship. 

 

Windows Mobile Platform Resolution DPI Orientation Small Icon Large Icon Start Menu PNG Icon (6.5)
6.x Professional 240x240 96 Square 16x16 32x32 45x45
6.x Professional 240x320 96 Portrait & Landscape 16x16 32x32 45x45
6.x Professional 240x400 96 Portrait & Landscape 16x16 32x32 45x45
6.x Professional 320x320 128 Square 21x21 43x43 60x60
6.x Professional 480x480 192 Square 32x32 64x64 90x90
6.x Professional 480x640 192 Portrait & Landscape 32x32 64x64 90x90
6.x Professional 480x800 192 Portrait & Landscape 32x32 64x64 90x90
6.x Professional 480x864 192 Portrait & Landscape 32x32 64x64 90x90
6.x Standard 176x220 96 Portrait 16x16 32x32 N/A
6.x Standard 240x320 131 Portrait & Landscape 22x22 44x44 N/A
6.x Standard 240x240 131 Square 22x22 44x44 N/A
6.x Standard 240x400 131 Portrait & Landscape 22x22 44x44 N/A
6.x Standard 440x240 131 Landscape 22x22 44x44 N/A
 

Registry Keys

To have the Start screen use a PNG file instead of an icon embedded in the EXE, you need to provide the following registry entries:

[HKEY_LOCAL_MACHINE\Security\Shell\StartInfo\Start\Phone.lnk]
"Icon"="\Application Data\My App\newphoneicon.png"

Here are the definitions of the value pair settings:

Name Type Description
Name REG_SZ Specifies the display name of the item. If the value is not specified, the file name will be displayed without the extension.
Group REG_DWORD Specifies whether the item is a folder. The value can be set to TRUE or FALSE. Set the value to TRUE to indicate that the item is a folder. If the value is not specified, the system will determine the Group value by verifying whether the registry key has any subkeys.
Icon REG_SZ Specifies the path and file name where the icon is located. The icon can consist of a PNG file or an embedded icon resource module. If this value is not specified, the default icon of the shell will be used.
Rank REG_DWORD Specifies the rank of the item. An item that specifies a larger value for Rank will be displayed before items that specify a lower value. If this item is not specified, the Rank will be set to 0.
 
Security note: This requires creating a registry key underneath HKLM\Security. This is a protected registry location. To write to a protected registry key, the CAB file needs to be signed. This will not be a problem for Marketplace applications, since by definition they are signed. As mentioned, this article only applies to Windows Mobile Professional devices. However, if you use the same CAB for a Standard device installation, you will need to make sure your application is signed privileged, otherwise setup will fail. To avoid having to sign your CAB privileged (and incur the extra Marketplace approval time this requires) you can use the dynamic setup mentioned in this post. Be sure to include in your setup dll, the conditional creating of the StartInfo registry key and copying of the PNG file, and only do these steps if installing on a Professional device.  See the sample code here for an example on how to do this.

Setup

In the next two sections, I’ll walk through two deployment scenarios, static and dynamic.

Static Setup:

You can specify the registry key as part of your CAB file configuration. Per the Marketplace requirements, I will use a 90 x 90 PNG file as the Start screen icon. In my Smart Device CAB project, I have added the following registry key:

image_thumb7

Note: This registry key supports ‘CE strings’ and .INF file strings. Above %InstallDir% maps to the ‘\Program Files\SMS Intercept’ directory.

My CAB file also includes the (90x90) AppIcon.png and a shortcut of the same name as the registry key above (SMS Intercept.lnk). See below:

image_thumb2

Dynamic Setup:

Detecting DPI:

Another way to configure the Start screen icon is dynamically: copying the appropriately sized PNG file based on the DPI of the device. We will use a setup dll to detect the DPI, and copy the appropriate PNG. You may know that WCELOAD (the EXE that process the CAB file) or a DLL that is loaded into its process, will return the same DPI (96) no matter the actual DPI of the device. To workaround this, we launch a very small helper EXE that quickly exits, without UI, and returns the DPI. The SDK sample ResDLL uses this technique as well as demonstrates how to install DPI specific resource DLLs. Here is the code used to detect the DPI:

int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HDC hdc = ::GetDC(NULL);
INT ans = ::GetDeviceCaps(hdc, LOGPIXELSX);
::ReleaseDC(NULL, hdc);
return ans;
}
Copy DPI specific files:

Our dynamic CAB file contains four png files:
        45.png
        60.png
        90.png
        AppIcon.png

Based on the DPI detected, we copy the appropriate PNG file to the filename AppIcon.png. AppIcon.png is included in the CAB as a fallback in case our DPI detect logic fails. The unused icons and the DPI detect EXE are deleted.

Here is a code snippet from the sample setup dll (SetupDPI) implementing this:

wsprintf(szFile,_T("%s\\%s"), pszInstallDir, _T("\\GetRealDPI.EXE"));
// Launch DPI Detector
::CreateProcess(szFile, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, &pi);
::WaitForSingleObject(pi.hProcess, 10000);
// DPI is returned in exit code of detector app
::GetExitCodeProcess(pi.hProcess, &nSystemDPI);
::CloseHandle(pi.hProcess);
::DeleteFile(szFile);

// Based on DPI, copy xx.png to AppIcon.png and delete unused files
wsprintf(szOutFile,_T("%s\\%s"), pszInstallDir, szTargetFilename);
for (INT i=0;i<ARRAYSIZE(DPI_Icon);i++) {
wsprintf(szFile,_T("%s\\%s"), pszInstallDir, DPI_Icon[i].lpstrIconSize);
if (DPI_Icon[i].DPI==nSystemDPI) {
::CopyFile(szFile, szOutFile, FALSE);
}
::DeleteFile(szFile);
}

Create Shortcut:

As mentioned, we do the post-processing of the files after the CAB is installed (in the Install_Exit function). That is, because the icon image in the Start screen is created when the shortcut is created (see the cached icons section below), we need to create the shortcut in the setup dll instead of in the CAB file as was done in the static CAB sample. Otherwise, the Start screen will use an icon extracted from the EXE instead of the PNG file. Here is the language independent code that creates the shortcut:

// Build lnk filename
PTCHAR pAppDir = wcsrchr(pszInstallDir, '\\');
TCHAR szShortcutPath[MAX_PATH];
// CSIDL_PROGRAMS == \Windows\Start Menu\Programs
SHGetSpecialFolderPath(hwndParent, szShortcutPath, CSIDL_PROGRAMS , false);
wsprintf(szFile,_T("%s%s%s"), szShortcutPath, pAppDir, _T(".lnk"));

// Build exe filename
// CSIDL_PROGRAM_FILES == \Program Files
SHGetSpecialFolderPath(hwndParent, szShortcutPath, CSIDL_PROGRAM_FILES , false);
wsprintf(szOutFile,_T("\"%s%s%s%s\""),
     szShortcutPath, pAppDir, pAppDir, _T(".exe"));

SHCreateShortcut(szFile, szOutFile);
 
Note that the dynamic CAB sample does not not contain the file system declaration that creates a shortcut as the static sample CAB does.

Cached Icons

During development, you will likely want to change the PNG file as you experiment will different artwork. You will notice that if you overwrite the PNG file, the Start screen will not use the new image. This is because when the Start screen shortcut is created, the icon image is cached by the shell. Thereafter for better performance, the shell retrieves the image from the cache. The cache is rebuilt a boot time. Here is one possible workaround:

  1. Delete the shortcut
  2. Rename (or copy) target EXE name. For example, rename hello.exe to hello1.exe
  3. Recreate shortcut pointing to new EXE name.

Here is provisioning XML that does this. You can run this using RapiConfig.exe:

<wap-provisioningdoc>
<characteristic type="FileOperation">
<!-- Delete Shortcut -->
<characteristic type="%CE11%\SMS Intercept.lnk" translation="install">
<characteristic type="Delete">
<parm name="ForceDelete"/>
</characteristic>
</characteristic>

<!-- Copy EXE name to new EXE -->
<characteristic type="%CE1%\sms Intercept\sms Intercept1.exe"
          translation="install">
<characteristic type="Copy">
<parm name="Source" value="%CE1%\sms Intercept\sms Intercept.exe"
          translation="install"/>
</characteristic>
</characteristic>

<!-- Create new shortcut pointing to new EXE name -->
<characteristic type="%CE11%" translation="install">
<characteristic type="MakeDir" />
<characteristic type="SMS Intercept.lnk" translation="install">
<characteristic type="Shortcut">
<parm name="Source" value="%CE1%\sms Intercept\sms Intercept1.exe"
translation="install" />
</characteristic>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>

Games Shortcuts Folder

If we were installing this application into the Games folder, the key pointing to the PNG file would look like this:
[HKEY_LOCAL_MACHINE\Security\Shell\StartInfo\Start\Games\Phone.lnk]
"Icon"="\Application Data\My App\newphoneicon.png"

Game developers have raised the question, “How do I create the Games registry key in a language independent way?” Without the Games folder, this key is language independent. However, the shell will look for the shortcut (.lnk) files in the directories below Start, therefore we need to setup this key using the localized name for Games. This requires a Setup DLL. See the sample code for this post here.

To have your shortcut created in the Games folder, you must change the following line in the SetupDPI.CPP and rebuild the project:

// Set this to true to create shortcut and 
// registry key in the localized 'Games' Folder
BOOL g_bCreateInGamesFolder=FALSE;

Conclusion

You should now understand how to configure your CAB file projects to include PNG files as icons in the Windows Mobile 6.5 Start screen.

For a list of frequently asked questions on this topic see here: Start Screen PNG Icon FAQ


  • Page:
  • 1
  • 2