| Comments

I just got back from speaking/attending the Norwegian Developers Conference in Oslo, Norway.  It was a great time and a well run conference.  Like many other conferences I found myself looking for two things I wanted on my mobile: the schedule and a map/guide for the city (I’ve never been to Oslo).  You see every time I take a trip, here’s what I do:

  1. Search for an app that contains the schedule (or offline version).  Ideally allows me to build my schedule and gets updates for changes
  2. Find the metro/map/guide for the city because I know I’ll be lost.

Rinse, repeat.  I do this every conference, trip.  And then I end up with a multitude of apps installed that are single purpose throw-away.  Seesmic Desktop platform has spoiled me in thinking of this eutopia of a single-purpose shell which can have pluggable content.  For Seesmic, this is my ‘social media’ shell.  But I want more now.

You see, at MIX10 there was a great mobile app that was created by Chris Hardy.  It was written in MonoTouch, nonetheless!  It pretty much did everything I would want in a conference app.  But after MIX it is kind of dead.  Uninstall. (Yes I know it looks like someone repurposed the app for a REMIX event, but same purpose…delete.).  Same thing after my trip to Berlin last year.  After that trip I didn’t need the metro rail map anymore.  Delete.

But then I head to Norway.  I want the Oslo guide/metro schedule.  I want a conference app.  There is both, but again they are separate apps.  Is my vision that far off?

I have been bugging Chris to modify his app to be more of a shell.  I like everything about the structure and think he should make it a basic “Mobile Conference Guide” app – enabling conference providers to publish a feed of their data and personalization (i.e., for background, icons, etc).  As an end user I would have one app installed.  I could then launch the app and (perhaps) browse a catalog of known events (organizers can publish to a specific feed location) or enter a URL to a conference feed that conforms to the data specification.  I don’t care if that data specification is OData, RSS, whatever – just have the app define a standard.  What conference provider wouldn’t love to just worry about providing data and not worry about providing the app?!  Am I way off here?

Same goes for travel guides (I’m guessing this one is out there and I’m just not finding it).  I have an app called “Metro” that allows me to subscribe to metro/public transportation for various cities in a singular app.  That’s great, but what about city guide information?  Restaurants?  Museums, etc.  I want more.  You know I want the Rick Steves travel app (does it exist and I’m just an idiot) with in-app purchases for more guides for other cities…all offline.

Anyhow, just a rant as I uninstall, yet again, two very useful apps after a trip.  Please bombard Chris with requests :-).

| Comments

As most of you know at MIX10, we released the first version of the Windows Phone 7 developer tools (which are free) targeting Silverlight and XNA development to the world.  This was a community technology preview (CTP) release and targeted Visual Studio 2010 RC at the time (which was the publically available version).  Since MIX10, Visual Studio 2010 has released in final form and the phone developer tools team has been working to get a working version finalized.

Windows Phone 7 Associated Press applicationToday is that day – we’ve just made available the Windows Phone Developer Tools CTP (April 2010 Refresh) (direct link download).  This is the installer that will install directly on your machine.  If you don’t have any version of the tools installed, this will install the Visual Studio express edition for Windows Phone 7 (free).  If you already have any released version of Visual Studio 2010, this will install the tools on top (integrated) into those.

This April refresh is still a CTP-quality and as such there are a few known issues with this latest release.  Our goal was at least to get a set of tools that would be available to enable people to move to Visual Studio 2010 release.  The known issues are documented in the release notes for the April 2010 refresh.  Specifically the first item as a known issue in the release notes:

Authenticode signed assemblies fail to load. When including Authenticode signed assemblies in your project, the application XAP will fail to deploy and run. This includes the use of Microsoft client libraries such as WCF Data Services, the Silverlight Toolkit, and 3rd party managed libraries. This issue will be resolved in a future release to permit the inclusion of Authenticode signed assemblies.

This might be annoying for some.  We will eventually get this fixed in a future release and understand this is annoying to some.  We apologize for this.  We do have a workaround for you in the manner of a PowerShell script (note: PowerShell is included in Windows 7, otherwise download a version here).  Here is the workaround (also noted on Charlie’s blog).

You will know if you hit this issue if your app deploys to the emulator but fails to actually run with a System.IO.FileLoadException then you are likely hitting this issue.

The PowerShell Script

Attached here is the PowerShell Script – right-click and save this somewhere known.

Download: wp7ctpfix.ps1

Using the script

Here’s the steps to using the script on the assemblies that will cause you issue (those signed assemblies).

  1. Copy the script to the folder containing the signed assemblies
  2. Open an elevated command prompt (this must be done in elevated mode) and enter powershell (type: powershell) – alternatively you could start powershell itself
  3. Run “.\wp7ctpfix.ps1 <your-signed-assembly-fully-qualified-path>” in the PowerShell window
  4. The script should show ‘operation succeeded’ if successful.
  5. A *new* assembly prefixed with “WP7_CTP_Fix_<signed-assembly>” in that directory

NOTE: If you get a warning that the script couldn’t be run, in PowerShell first run set-executionpolicy Unrestricted and then proceed (and reset back to Restricted if desired).

You’ll need to do this on all assemblies you reference that might be impacted.  NOTE: This does not alter the existing assembly, but rather creates a NEW COPY for you to use temporarily.

Using the fixed assemblies

Once you’ve completed the step above, you’ll have to change your project refrences:

  1. Expand the References section of your project and remove any of the problematic references
  2. Add a reference pointing to the newly created copies done in the step above

Using these fixed assemblies will only work in the emulator.  Since right now there is no means of application distribution for the masses, this isn’t an issue.  Again, we will be fixing this issue and it is only temporary – we have no announcements yet, however, on when the next update of the tools will be.  As noted in Charlie’s blog because this is a little bit of a ‘brute force’ technique, Microsoft is giving permission to do this with this fine print:

So as to enable you to load your applications on the pre-release version of the Windows Phone 7 operating system that is included with this April 2010 CTP of the Windows Phone Developer Tools, you may temporarily remove the signatures from any Microsoft-owned assemblies that you would otherwise be licensed to include in your programs, solely for the limited purpose of evaluating this CTP.  Upon the next pre-release of these Developer Tools or July 31, 2010, whichever is earlier, you must replace such signature-stripped assemblies with assemblies from which the signatures have not been removed.  Nothing in this statement should be interpreted as permission on behalf of owners of non-Microsoft assemblies.

What’s New in April refresh?

There are some new items in this refresh that we’ve changed/added which are noted in the What’s New topic in MSDN.  Here are some highlights:

And a few others – be sure to review the topic link above on MSDN.

What about Expression Blend?

Expression Blend 4 had a plugin that enabled Windows Phone 7 development as well.  This plugin has also been updated for this April 2010 refresh.  You must have the Expression Blend 4 RC installed first.

You can get the updated Blend plugin here:


Please read the release notes before installing the tools.  If you think any of the known issues will impact you significantly, please do  what you think is right (if that means sticking with the March CTP build on Visual Studio RC).  The bug above was discovered late in our plans.  We had to make a decision whether to hold up another potentially ‘weeks’ or release what we had in another CTP form.  In this case we chose the to release what we had to provide something that customers have been asking for. 

There are a few other known issues of this refresh that you should review, but also some new items as indicated above.

Other useful resources:

Hope this helps!

This work is licensed under a Creative Commons Attribution By license.

| Comments

Earlier this year I wrote my thoughts on the current mobile scene and what troubles certain players more than others.  I made the assertion that Android will face the same troubles that Windows Mobile is challenged with.  That being that Google/Android are providing a platform and not a physical device.  I think it would be hard to argue that owning the complete platform and hardware is not a good idea.  Apple’s complete control of every aspect of the channel provides them with the ability to deliver in a somewhat more reliable fashion (except for the fact that Contacts suck and their implementation of ‘enterprise’ features is questionable).

So why another post on the failure of Android?  Take a look:

(source: CrunchGear)

What you can’t really see in the photograph is the proposed angle of the button controls (they angle upward in other design drawings/renderings), making it look like a more old-school handset more than a revolutionary device.

And therein lies the struggle for Android: they aren’t making the device.  I’ve seen the demos of Android and have already said they are impressive.  The fact that all of that is made available via open source is great and exciting.  But for consumers, useless unless some great packaging comes with it.  Remember the old adage of lipstick on a pig?  When I look at the above T-Mobile picture device running Android, that’s what I think about.  There isn’t anything innovative in the design and regardless of innovation it doesn’t even match some of the sleekness of current designs.  In the consumer market, design matters over features. 

I will say that the “HTC Dream” has other shots/drawings around that look a lot different than the above picture, so I could be eating my words.  But right now it looks like a Nintendo Wii accessory.  And in some angles it looks like an iPod sized thing with an FM transmitter adapter on the bottom…just not polished.

I foresee a bunch of Silicon Valley types walking around with this device, but my wife won’t be carrying it because it looks too Star Trek-ish.

Better view of the weird angle bottom in this video ("is that Android in your pocket or are you just happy to see me?"):

| Comments

I suspect Apple will have a good day on 11 July.  I’m pretty sue Apple could release the iGumWrapper and people will camp out 2 days before to be the first to purchase a gum wrapper made out of napkin and far less superior in functionality than what exists today.  It’s the lure of Apple, the marketing engine behind them and the fact that despite that napkin material, it would likely be so beautiful and make you forget some things that you’ve depended on for so long.

But I digress :-).  In all seriousness, Apple excels at the hype and the experience (yes, two distinctions that shouldn’t always be confused as one).  With the release of the iPhone 3G, they’ll sell a lot I’m imagining and it will cause other mobile manufacturers concern…or it should.  The iPhone is being marketed as ‘half the price’ but others have already pointed out that that asterisk on the advertisements is a large asterisk…and in fact the ultimate cost to the consumer is actually higher (including service plans, etc.) than the current model.  But who cares…I’ve seen the cost analyst and it is negligible.  Misleading advertising?  Maybe.  Some have even pointed out that other than the 3G there isn’t much core upgrade to the device.  No camera upgrade, no IM, no Bluetooth support for cars, no cut/paste, no MMS messaging.  Some have even pointed out that despite GPS support there will be no guided turn-by-turn navigation provided.

Regarding Navigation: Some have said that 3rd parties will use the SDK to solve that problem.  Ah, but read the terms of the SDK…no applications can provide navigational guidance using the SDK.  Why?  If you are aware of US carriers in telecom, you may notice that devices equipped with GPS all have an icon for directions – provided by TeleNav – provided as a monthly service fee of approximately USD $10 per month.  I think this is one area where the carriers won against apple in negotiations…to protect their own agreements and cross-revenue opportunities on services.

One thing that has bothered most developer geeks about the SDK is the lack of background processing.  Apple’s keynote has pulled a little of the 'these aren’t the droids you're looking for’ magic by stating battery life, blah blah blah.  Hey guess what…Blackberry does this just fine and has great battery life.  Is this an area of “we couldn’t get it done” for Apple?  How many think this will change?  I do.  If there is any plans for iChat to be on the device, it would have to be.  Rely on an middle messaging server to deliver what is effectively an SMS command and then prompt me to launch the app again?  Seriously?!  Is this another way of retaining the carrier’s service costs for messaging fees?

Have you ever noticed that Visual Voicemail is actually delivered as an SMS command to the phone with information on what that voice mail contains?

Another sore spot for developers was the lack of Flash on the device.  There has been some bickering from Adobe/Apple on this, but it still isn’t there.  Adobe has said in their last company call their execs have noted they have it working via SDK but would hope the software would eventually be a part of the iPhone software.  A similar request has been made to me by developers of ‘when will Silverlight be on the iPhone’?  Hey guess what, no plugins are allowed on the iPhone – let’s wait for Apple to change that first, then let’s talk…you can’t complain when the platform doesn’t allow it first!

And then comes Android.  When I first saw the video demonstration of this I was impressed.  It incorporates a lot of what modern devices have as well as what people like in the iPhone from a usability standpoint.  Oh, and it will be free and open source.  Some of the Open Handset Alliance have already announced devices with Android that might be available as soon as the end of this year!

Will Android be successful in mainstream?  That is a big question.  Why would I ask that?  Tim, it’s Google, they do everything right, how could you be so stupid?  But consider this.  What makes Apple so successful in their software implementations?  Their ad campaigns shed some light on this when they jab Windows.  They control everything…the entire channel from hardware design to implementation.  There are no other (legal) hardware providers creating iPods, iPhones or MacBooks.  What does this have to do with Android?  Well Android is an open source project that will directly affect consumers.  Most of the time I think we see open source projects that are hiding behind consumer services.  Take, for example, any web server running their site on Linux.  Sure that affects consumers visiting the site, but not directly…the HTML/rendering is what affects me…not the implications of the hardware.

Android will be literally in peoples’ hands.  There have been others that have done this successfully…like Sansa running Mono on their MP3 devices.  But how is this different?  Google isn’t providing the handset.  Will Android feel the same pains of the distribution channel that Windows does?  That being that you are providing an OS and don’t control the hardware that it resides on?  Android will be picked up by handset manufacturers and modified and tweaked and installed on various chipsets and handsets with differing peripherals that may not always comply to the specs or to what Android may expect.  Will that give Android a bad name when someone wants to put it on a device that is ‘minimum requirements’ (I hate minimum requirements---ever try anything on a min req machine…it never is a good experience)?  That remains to be seen.  Perhaps Google may have to do what they said they never would: the Google phone – to ensure that Android has one place where it can be guaranteed.

And when it does come out, will it beat iPhone even though it shares some similarities?  I’m not convinced.  Apple (and iPhone) have a culture behind it.  iPhone itself has become somewhat of a mnemonic.  If you have an iPhone, when you tell someone that you just took a picture, do you say “I took it with my phone” or do you say “I took it with my iPhone”?  I hear this all the time…I <fill-in-the-function> with my iPhone.  I never walk around saying “I took this with my Blackjack.”  This is an advantage Apple has over the market…the brand strength.  I took it with my Android.  Still doesn’t sound right.  Even the newest devices like the Samsung Instinct, HTC Diamond, etc. will not gain that level of brand recognition.

Where does all this leave developers?  Let’s see:

    • Apple – closed platform; closed hardware; Objective-C/Cocoa dev platform (OSX only for best tools); controlled distribution channel for apps;
    • Android – open platform; Java dev platform; tools everywhere; available for any hardware
    • Windows Mobile – open/closed platform; C++/.NET dev platform; tools everywhere (best tools on Windows); available for any licensed hardware vendor

What a minute, Windows Mobile an ‘open’ platform?!  Tim, you lie.  Well, I’m not sure the marketing teams would agree with my statement, but consider the facts.  Windows Mobile provides an operating system to device manufacturers to leverage.  We actually provide what we call “platform builder” and those who license Windows Mobile can customize and pick and choose what “Windows Mobile'” means to them.  Is it completely open to alter the base code of WinMo?  No.  But if you have ever picked up a phone that had WinMo from T-Mobile and one from AT&T and one from Verizon, you’ll see that it is not the exact replication across the board.  Those carriers have done some of their own customizations and added/altered some of the applications that exist.

Basically developers will have a choice…not a consistent choice by any means because each choice has a specific skill set.  I don’t know Java well enough that Android will be my choice, for example.  But if it is compelling enough, will that cause me to want to learn?  Who knows…

So what’s with my rant.  Who knows…just had some thoughts on mobile that I wanted to get out.  Carry on.

Related Blog Posts:

| Comments

Thanks to all who joined and myself in Las Vegas for the mobility touchdown class.  I thought I'd braindump some of the links and cool stuff we talked about during the 3 days...so here you go:

check back on my blog or the frequently for some good information.