Monday, December 12, 2011

Turning XAML into an image (jpg) in WP7 isolated storage and to the Phone Media Library

So one thing that has been kind a trick since the old avalon then wpf days was to be able to can a snap shot of part of the visual tree and make that an image so that you can clean up the visual tree from some xaml complexity and replace it with a plain image. I ended up trying todo with with my princess paper dolls app and found that its not as straight forward as wpf used to be but this works well enough with only a few lines of code. To start with you need to covert the UIElement root you want to turn into an image or rather a bitmap like this:

WriteableBitmap bitmap = new WriteableBitmap(480, 800);
bitmap.Render(master_03_14_2011, null);
bitmap.Invalidate();

So in this case 'master_03_14_2011' is the name of my canvas that holds the 'princess' in the app 'princess paper dolls'. Next I need to create a file name and convert the bitmap and store it to isolated storage


String FileName = String.Format("PrincessPaperDoll_{0:yyyy-MM-dd_hh-mm-ss-tt}.jpg", DateTime.Now);

var myStore = IsolatedStorageFile.GetUserStoreForApplication();
if (myStore.FileExists(FileName))
{
myStore.DeleteFile(FileName);
}
IsolatedStorageFileStream MyFileStream = myStore.CreateFile(FileName);

StreamResourceInfo sri = null;
Uri uri = new Uri("Princess;component/" + FileName, UriKind.Relative);
sri = Application.GetResourceStream(uri);
bitmap.SaveJpeg(MyFileStream, int.Parse(master_03_14_2011.Width.ToString()), int.Parse(master_03_14_2011.Height.ToString()), 0, 85);

ok so also we checked to see if the file exists before we try to write it and delete the old version. granted given how I'm creating the name its still kind of scares me to risk it. Next we do some clean up:

MyFileStream.Close();

Yes that was easy but now we need to use that stream again to get the image into the media library. First we create a stream again from the file in isolated storage.

MyFileStream = myStore.OpenFile(FileName, FileMode.Open, FileAccess.Read);
.

Now we can save it to the media library either to saved pictures or to the camera roll.

MediaLibrary library = new MediaLibrary();
Picture pic = library.SavePicture(FileName, MyFileStream);
//Picture pic = library.SavePictureToCameraRoll(FileName, MyFileStream);
MyFileStream.Close();

and some clean up and your good. unfortunately as of late there is no way to open up to the image in the media library.

Tuesday, December 6, 2011

So You Want To Build Apps?

If you want to build apps for any number of mobile devices we thought we would provide those resources to you. The emerging mobile application space has exploded in recent years with developers even ametures making lots of money on the side with little marketing or other resources you would normally think of as having been done by a full company. From hobbiest to students and professionals ever one is building apps. Start by picking your poison (the platform you are interested in)

Android (Phone and Tablets)
Dominating the marketing but in a very fragmented way. Certainly the potential to really be the best platform if the carriers every can get out of the way. http://developer.android.com/index.html

iOS (iPhone/iPad)
The platform that started it all and arguable the best industrial design for mobile platforms... iOS. http://developer.apple.com/devcenter/ios/index.action

Cross platform Native(ish)
more or less a .NET environment like Java for mobile ...

Read the rest at: http://www.vnext.org/if-apps/so-you-want-to-build-apps

Thursday, November 10, 2011

Those Darn Gray Box's

(if you just need the hack er I mean 'solution' skip to the end)

ok so I was talking or rather tweeting with @ColinEberhardt about this issue with the gray box in IE on #wp7 (see his post at: https://github.com/phonegap/phonegap-wp7/issues/26). I've been working on my own HTMLApplicationHost Framework for doing HTML based WP7 apps and post this on codeplex: http://htmlappwp7.codeplex.com/ since what march I think. I've gotten 3 such apps in the Windows Phone 7 market place and one in Android that are HTML based. Here are a few links to some of those.

SMART Spending Habits: Windows Phone 7 (Deeplink, Paid version): http://windowsphone.com/s?appid=b44a9f3a-3480-4923-aa35-df26f6eb3c9e

SMART Spending Habits: Android 2.2 Version: https://market.android.com/details?id=com.SMART.SpendingHabits

I'm not sure I'm an expert at HTML phone apps yet but I do strongly believe that just about anything is possible and that there must be a solution to this gray box issue on phone 7 (wp7). So I took on the task of seeing what I could do. I started with creating a new phone 7 app that used my HTML Application Host framework etc (blah blah blah setting up stuff etc) so I got to the point of having my index.html page and started my tests in #wp7.

So the first test looked like this:

function test1() {
test1Location.innerHTML = "test 1 complete";
}

<div id="test1Location"><a onclick="test1();" href="http://www.blogger.com/post-create.g?blogID=887975141009593463#">test1</a></div>

running this clearly made the gray box... so I tried this:

<div id="test2Location"><a href="javascript:test2();">test 2

function test2() {
test2Location.innerHTML = "test 2 complete";
}

and as expected this made a nice gray box as well. So I tried this hoping it would work better:

function test3() {
test3Location.innerHTML = "test 3 complete";
}


<div onclick="test3();" id="test3Location"><u>test 3</u></div>

but alas this made a nice gray box too... *grr* so at this point I went back to Colin's post and watched the video and read a few other related posts then knowing that I didn't have a solution I had to try this:

function test4() {
test4Location.innerHTML = "test 4 complete";
}

<div id="test4Location"><a onclick="test4();" href="http://www.blogger.com/post-create.g?blogID=887975141009593463">test4 (will break)</a></div>

and yes this created a gray box AND blew up when the control tried to navigate to no where... and finally I thought I would try something else... yes this time a bit of a hack and messy, not very clean as such but lets take a look:

function test5() {
test5Location.innerHTML = "test 5 complete";
}

<div id="test5Location"><img onclick="test5();" src="http://www.blogger.com/test.jpg" width="99" height="99" /></div>

Amazingly enough, no gray box in the emulator on my machine. Now this is kind of a hack isn't real as it only works sometimes in the emulator under certain conditions but really its still there just it can't be seen due to the speed of the hardware. If you lucky enough to not see it you still will on the phone hardware. Until the windows phone team can manage a real fix for this annoying bug... but wait I'm not willing to give up yet.

so how do we make it go away in the mean time? the real hack is to just not let the events fire. This means really thinking abit out of hte box and doing some native C# stuff to fix the problem well sort of. The solution I'm not going to give you all the code (its a bit messy and a bit much and very custom) now but I'll explain how it works.

So how about we put a native but invisable touch panel over the top of the web browser control that hosts our app. This means that all events show up on that panel then you expose on your web browser control some interface and you process the events in C# to determine what is going on. then you pipe those events into the javascript context of the webbrowser control. This also means you have to have some javascript events to handle all the events you want to call or do something with. This is very specific to phone 7 and very customized around each action or event but it does in fact work. :) problem solved albiet an extremely painful hack until they fix this bug maybe in tango or apollo...

Friday, November 4, 2011

APPortunties for Mango WP7 App's

So there is a group of Silverlight/Phone 7 insiders helping with this contest to win some samsung slates running windows 8 and some free advertising for an app of your choice. There was a contest like this a few months back and certainly the free advertising helped me with my zillion apps so I'm hoping to win my self so you better get to it or I'll win (not that this would be bad ). Basically gets some Mango (also known as Windows Phone 7.5 apps into the market place, and no this doesn't count apps already in the market place and then go the link on this image blow and enter the super secret code: DKELL

Thursday, October 27, 2011

HTMLApplicationHost Framework Posted to Codeplex

One of my projects has been building an HTML Application framework for phone 7. Basically so I can build HTML5 based applications using HTML, JavaScript and CSS for mobile devices in particular Windows Phone but then being able to use that application on other platforms. Today I uploaded version 4 onto codeplex (http://htmlappwp7.codeplex.com/) which adds HTML Host Application back stack integration with the Phone's application navigation stack. On wp7 that means that when you hit the back button it doesn't just navigate out of the app but just to the last view in HTML making really applications easy to do that will get past the marketplace and into the hands of the public but even more important setting the stage for apps on iPhone and android using similar HTML5 based application frameworks.

The first app using this framework was the JavaScript application but now that test app is in the marketplace I've been working on a new real app called 'SMART Spending Habits', its a simple budgeting application designed to priority and sort your purchases automatically. Its a great little tool and it should be in the market place next week or so.

download the HTMLApplicationHost Framework Source code here:
http://htmlappwp7.codeplex.com/

Wednesday, October 12, 2011

The Metro Design Aesthetic and Windows 8 and the new Gesture Language

In next months Seattle Interactive Conference check out David Kelley’s session on “Metro Design Aesthetic and Windows 8 and the new Gesture Language.”

Abstract: Building off the Metro Aesthetic designed for touch and mobile devices the new Windows 8 application model is wrapped around encouraging apps designed around the Metro Aesthetic. This session is about designing for metro, the use of touch and gesture in interaction design and implementation along with thinking around the new gesture types, and how the experience in the win8 Metro environment can be integrated into other experiences on the slate.

The Seattle Interactive Conference
When: November 2nd – 3rd
Where: The Conference Center at the Washington State Convention Center

About:
The first-annual Seattle Interactive Conference is a two-day...

read the rest at: http://www.interactseattle.org/?p=971

Wednesday, October 5, 2011

The Crazy Ones, One More Thing and Apple

I found out today that Steve Jobs has died today. I know over the years I've had a love hate relationship with Apple, some of you know me for my work as a Silverlight MVP drinking the kooliade but in 1996 or so I was sporting my Powerbook 150 and doing some ANSI C in code warrior and waiting for the next edition of Mac Addict in the mail while I would fight with the Mac Toolbox. I still keep that power book on my shelf to remind me of where I started.

Steve Jobs was a visionary, no one was perfect and like most shining stars they were not always fun to work with but Steve Jobs vision for industrial design and out of the box thinking has really changed the world. In my industry with so many smart people coming up with cool stuff all the time, Job's has been in many ways our guiding light, raising the bar and moving civilization forward. Steve knew that it wasn't about what we could do as much as how we can do it with style. His life's work is littered with revolutionary work that has fundamentally broken us out of the box. Even at the big Microsoft Conference BUILD a few weeks ago looking at all the new hardware coming out next year... really it was all inspired by Jobs. He has made us all better and his loss no matter what side of the kooliade your are drinking is lose to us all. He inspired us, he changed us and his mark will forever be felt in the human family. It truly is a sad day when one of our brightest stars passe's and to all those in the community, at Apple and his family. Our thoughts and prayers are with you and we all morn his loss.

http://www.youtube.com/watch?v=8rwsuXHA7RA&feature=player_embedded&noredirect=1

Monday, September 19, 2011

Windows 8 and what it means for Silverlight and the coming Slate Wars

What does Windows 8 mean to the Silverlight world?

To be honest the past year has been kind of a let down with some certain ms employee's saying this that or the other thing that really effectively killed most Silverlight work and its made me somewhat bitter about the whole thing. That being said I was trying hard to have a good attitude going into BUILD last week.

BUILD was really a lot of drinking from the firehose albeit I must say that I was right on most accounts. I knew about some improvements, I may have had access to a hacked version of windows 8 that some one might have let me play with so I knew some. Certainly new about XAML and C++ and HTML5 but really so much has changed. Last week reframed Windows in so many new ways.

First lets start with the basic's, Windows 8 cold boots in 4 seconds... I've tried it allot just so I can believe it... my Windows 7 dev box takes 30 seconds at least... unbelievable in a good way. The memory profile is something like cut in half and really Windows has been rebuilt from the ground up for all intents and purposes. That being the case on the windows front things are good architecturally speaking but everything isn't a bed of roses.

So what is wrong with Windows 8? In all fairness its only a developer preview so I'm not going to harp on things that are likely to be addressed as Windows 8 approaches public release. That being said I break my issues into 4 things and one is even not really Windows 8 but will affect Windows 8 adoption.

Starting with plug-in architecture... plug-in's work on the desktop side of windows 8, this is good however the problem is that plug-in's DONT work on the metro side. What this means is that grandma is going to click the ie icon and go to youtube or whatever and find it doesn't work for her and she is not going to understand and who is microsoft to dictate which sites we can go to. One ms employee told me that they didn't want their users to experience a non metro UI and everyone should upgrade to HTML5. HTML5 might be the direction of where things are going but users are not going to understand why they current stuff doesn't work and are just going to get frustrated. having to go into the desktop side of windows 8 is not going to work from a users stand point. its expecting a higher level of understand then should be expecting from users and its not Microsoft's place to say which web sites we can go to? really is ms going to act all self righteous like Apple?

Speaking of Apple, it seems that the manufactures got a clue about industrial design but more on that later.

Back to my issues, the second issue is XNA, ok xna doens't work. no xbox games on windows 8 and now fancy direct x... but wait that isn't exactly true. there is a whole NEW set of Direct X api's and though the old code is out certainly there is a good direction going forward and further some guy that will remain unnamed managed to get XNA running in a wrapper... still though if xBox games would run natively it opens the door to a whole new level of Windows Awesomeness that is going to be lacking.

My third issue is more of the awesomeness that could have been where Windows 8 pulls an Apple where even Apple doesn't pull one (good job Apple by the way). Case in point with Apple my iPhone apps run on iPad just fine. But Windows Phone Apps do NOT run on Windows 8. From Microsoft standpoint I know that Windows Phone 7 is not the same architecture as wp7 but really this is something consumers will expect I think. And if win8 supported wp7 apps then ms could say they have 30,000+ apps and its only a dev build. Not to mention I don't want to rewrite all 43 of my apps... maye only a few of them but not all of them...

Now my last issue isn't really Windows but actually a change to Microsoft's Gold partner program. Take our ([wire] stone) company, we are currently a Gold Partner and our work is used by Microsoft frequently to show the power of the Microsoft platform (2 of Ballmers keynotes in the past year). To be frank, Microsoft is making Gold Partnership tied directly to the sale of Microsoft sku's which means companies that just build the most awesome Windows based solutions have to pay a huge amount more in developer licensing then we did before. This gets back to the fact that we are an design/interactive agency that is primarily an adobe design shop that only delivers microsoft solutions as they help us delivery faster time to market solutions and lower dev costs, our work includes things like the Nike Touch Wall, the Microsoft Retail Software Kiosk, the Boeing 737 experience or the Jordan marketing campaign last year where people uploaded shoes and it was composed in azure into this huge Mosaic of Jordan. If Microsoft wants us to deliver stuff on the ms platform they need us to be Gold platforms or it is less cost effective to build ms solutions. After talking to many of my friends at other agencies it seems we are not the only ones that face this issue.

On the whole though it seems that the ipad finally awoke the sleeping giant, it was heart warming for MS to preach 4 hours of UX design to its core developer community. This was just awesome. Windows 8 is generations ahead of windows 7 and designed around touch. But also at BUILD we got a look at the new generation of hardware that seems to finally have taken a clue from Apple's awesome industrial design. Looking at the new hardware its no longer variations on a theme in black plastic. From brushed aluminum anodized in purple with embedded fiber optics to something vaguely like a Mac book air but the screen flips around and turns into a slate. Baring my issues above this level of hardware competition and Windows 8 will spark real competition in the market between all the devices and it all can only be good for the consumer.

Wednesday, August 31, 2011

David J Kelley Named Phone 7 Developer Hero of the Week

Microsoft Names David Kelley Windows Phone 7 Developer of the Week Hero:

"David Kelley’s background in UX and as a Silverlight MVP set him up to be a great mobile app developer, which lets him pursue these passions as well as a third – speaking! You can catch David presenting about Windows Phone 7 at local events and some larger ones, like DevConnections.

If David could choose a superpower, it would be immortality … so he could finally have time to check off everything in his Outlook to-do list! And the man certainly is busy; he’s created tons of apps and is still going.

The app that’s closest to his heart is Princess Paper Dolls, with the animation & live tile modeling and voiceovers done by his 4-year-old daughter, Hanna. He watched her play a tablet-based app and decided to make something better for Windows Phone 7. David built the AllRecipes app Dinner Spinner with his team where he works, and created Tools for Phone 7, a.k.a. the “Swiss Army knife” of apps, to put all those handy apps in one place (duct tape not included).

David’s working on a few new apps including a framework for building Windows Phone 7 apps in HTML and JavaScript, so keep watching, developers—more great things to come from this developer hero! "

See the rest at: http://phone.microsoftplatformready.com/HeroesDetail.aspx?heroId=7

Tuesday, August 30, 2011

29 Ways to make your wp7 app killer and make money

So you want a make a killer phone 7 app? make it into the top 100? well I've managed to have 3 of my apps in the top 100 and here is what I learned. Free Apps (1) are the only way to go. As a developer the best chance of success is to build a free app but further an app that is not specialized (2). That means a mass consumer focused app, such as Simon Said the game or Tools for phone 7 or Allrecipes. There are mass market consumer apps. Now an xbox title would be good but if you don't work for a game studio then you out of luck.

Now that you are building a free app that is for the mass consumer market how will you make money? Advertising (3) Advertising is the best way to make money from a free app. you add value and customer get the app for free and only a small amount of visual noise and your golden. Next you need an ad service. I recommend Microsoft AdCenter (4). Now when using the adcenter control you want to optimize its use as much as possible to not only help the adcenter target ads but mainly to get your eCPM value up which means more money. How do you do that? Once in your app ideally in OnNavigateTo do something akin to this:

(5) AdControl.TestMode = false;
(6) AdControl.Gender = Gender.Male;
(7) AdControl.PostalCode = "98104";

now you can't just set the zip code but if you have a way of extropalting that or just using Bing outright to get the zip from the geo-coordinates (8) then you can set the postal code. Also things like gender should be set ONLY if you can say your demographic is female or you KNOW they are female. Part of this is to actually get targeted ads which increases the likelihood of some one clicking an add which means higher eCPM values and further more money. In the XAML also set this value:

(9) RotationEnabled="True"

now lastly if the adservice is down then to still get some advantage put an ad behind the ad control to one of your other apps (10) or something like that. Further you can rotate those ads to more then one app (11) and then deeplink or market place link them to those apps.

One more thing about ad's is to make sure that the ad channel your using is as close to your demographic as possible. An example of this targeting would be if you app is primarily for fishermen then maybe ad's related to fishing? for example.

Now lets get back to the design, nothing is better then good UX. At the very least make sure you have some of the people you might now that are part of your target demographic and get them to use your app (12). and further 'pay attention' make it easy, make it discoverable, and use the metro aesthetic (13). So much has been done to help make that easy and using it gives you discover-ability for free. when doing metro also think simple. simple is always better for users...

Next think about analytics (14), albeit you need to do this in the end AFTER you have built your application but Microsoft covers the the cost of using an enterprise solution specifically Preemptive (the makes of Dotfuscator) to magically instrument your project. This allows you to see what users do most in your and helps you focus on further development.

Next look at a paid upgrade (15). This way if users get sick of your adds they have a place to go AND you get money. for the most part this seems to be the only reason for paid apps and that I can tell.

Next lets talk about updates. Update your application often. Each time you update your app it shows up on the latest panel in the market place which gets you more visibility (16).

Along the way a few other things might be helpful such as using live tile (17) that actually update for something related to the app. Apps with live tiles are just cooler.

Use touch and gestures, along side metro. Implementing things like 'list' with scroll and touch w/o interfering kind of thing (18). I see a lot of apps that have buttons or other 'click' or mouse like metaphors in a list box and that is not what I mean. Really this is about not using that kind of metaphor, but a touch metaphor where the list is the button based on the touch behavior, even if its just implemented using click and mouse events this can be done fairly well and users will enjoy the clean and reactive experience.

Now here is another brilliant idea... share your app and the deep link (19)... *gasp* I know it seems obvious but frequently people don't do it and I'm not sure why... what is social media for if your not going to post a few links now and then.

Also contests, enter them all (21) there are a lot of phone 7 contests and anything that gives you more exposure or better yet gives you app more exposure is bonus.

next consider your target market a bit and do some internationalization (22). For example if your dealing with formats like dates or even doubles consider the regional settings and test in them and deal with it. A case in point with floats for example is the difference between 11,5 and 11.5 which means you need to do something like this potentially:

_CurrentValue = _CurrentValue + Double.Parse(Results.Text, CultureInfo.InvariantCulture);

Another fun thing you can do that users tend to find interesting is if there is a fun easter egg in the app, a hidden feature etc (23) something fun that might even be mentioned in the app description so users know about it. Most of my apps have easter egg's.

Then there is tactile feedback (24), while there are some users that want to be able to turn this off in an application I have found that most users find it easier to know when they have done something if you use this feature. Tactile feedback can be as much as a 35 millisecond burst from the vibration motor on the phone. this might look like this:

// class or view members
private VibrateController _Vibration = VibrateController.Default;
private TimeSpan _ThisTime = new TimeSpan(0, 0, 0, 0, 30);
private Boolean TactileFeedback = true;

// called in any touch event
private void PresentTactileFeedback()
{
if (TactileFeedback)
{
_Vibration.Start(_ThisTime);
}
}

Ratings are also key to going higher in the market (25). Try putting a rate my app button or icon in the application to encourage users to 'rate' your app. In the event handler for this you might use code like this:

MarketplaceDetailTask Details = new MarketplaceDetailTask();
Details.ContentIdentifier = "29c27356-7862-e011-81d2-78e7d1fa76f8";
Details.Show();

Lastly get others that are your friends to rate the app (26) the more they rate the app the more your app shows up higher on search's based on the keywords (27) that you lovingly set in the app hub when you submitted your app. Oh yes and while your in the app hub, upload as many pictures as the market place hub will although including the background image if you ever want to be featured (28). With that happy app building. (and if you need ratings, rate mine and I'll rate yours 5 stars (29), assuming they are free or trail apps)

Monday, August 29, 2011

Parchment Apps Blog

I've got something like 40 apps in the market place. mostly due to hacking up the tools app for Mary so we would get a zillion apps in the market to win this contest some time back but still there is like 13 serious apps and each one of those has a free version and a paid version or at least mostly. I think totally I'm up to almost 400,000 downloads and 8 million impressions and a total of 3 apps that were in the top 100. In any case, to manage the documentation of all the apps I finally decided to just use a blog... namely this: http://parchmentapps.blogspot.com/

Monday, August 15, 2011

CloudPlumbing - Podcast/Interview

David Kelley (that's me), Principal User Experience Architect at Wirestone, talks about how UX should be a concern of everyone on the team and not just fluffy designer stuff. David has described his role as being the glue between designers and developers. He makes a strong case for both designers and developers to learn more about the other discipline for the sake of better communication and better products.

check it out here:
http://cloudplumbing.com/episode/david-kelley-interview




Sunday, August 14, 2011

Book Review: Microsoft SharePoint 2010 Enterprise Applications on Windows Phone 7

One of the most important developer space's on the Microsoft stack is the still emerging LOB app space for phone 7. This particular book is focused on SharePoint 2010 applications on Phone 7 which is an increasingly important sector of the increasingly important Phone 7 developer segment... yes I know a bit repetitive but still...

The thing in this book that really made it for me a "must have" for LOB wp7 folks is the fact that it separates the basic's skills need on each related platform (wp7 and sharepoint) and then includes the cross over elements of working with both platforms as well. Although narrowly focused this as I pointed out an increasingly important segment that this book is targeted towards and as an LOB developer sometimes myself its an important part of my collection.

The downside of this book would be the lack of depth for phone 7 and sharepoint specific information but that really is beyond the scope of the premise of the book so I can't fault that on the book but that also means that to make the most of this particular book you should probably look into something on sharepoint and another book on windows phone7.

remore about the book here: packtpub book site

Check out the book on Amazon at: http://www.amazon.com/Microsoft-SharePoint-Enterprise-Applications-Windows/dp/1849682585/

Wednesday, June 29, 2011

What is User Experience Design (UX Design) ?

An article I wrote for Media Magazine:

Many people including you probably have no idea who I am and frankly sometimes I don’t know who I am but sufficeth to say my name is David Kelley and I’m a UX professional. Am I a graphic designer? Well no not really. Am I programmer of some kind? Not exactly but I can write some code. My title is ‘Principal UX Architect’ and typically I don’t even find myself dictating ‘architecture’ of any kind albeit I’m passionate about that too. My job when it comes down to it is communication, to bring people together and more or less be the chief Kool-Aid drinker.

What? Now you’re more confused than when we started?

Ok let’s dial back a bit then. My job is to help my team design an experience that fills a need and tells a story. To understand what that meant you really need to understand ‘User eXperience Design’ commonly called UX Design. If you look up what UX Design...

read the rest here:
http://www.interactseattle.org/?p=919

Wednesday, June 15, 2011

Using HTML App Host Tasks from the ECMA Script Context

Using the task framework (http://htmlappwp7.codeplex.com/ and the taskprocessor are pretty easy. Basically it needs to look like this:

window.external.notify("Email:pieseczek@hotmail.com:Email from JavaScriptFWP7");

the format for calls are:

window.external.notify(" Task Name : Paramter1 : Parameter2 : etc ");

the current supported tasks include:

Email : To Email : Subject
SystemTray : Boolean Value
EnableFrameRateCounter : Boolean Value
alert : message value : message box title
play : sound uri path
vibrate : hours : minutes : seconds
MarketplaceSearchTask : app id
Analytics : Parmeters * n
MarketplaceDetailTask : app id
WebBrowserTask : URL String

There is also a custom event on the AppHostShell called ScriptNotify that allows you to extend what you can do with tasks for example in the code base the sample app does this extension from the custom event:


private void webBrowser1_ScriptNotify(object sender, NotifyEventArgs e)
{
switch (e.Value.ToString())
{
case "task1":
EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.To = "pieseczek@hotmail.com";
emailComposeTask.Body = "";
emailComposeTask.Subject = "Email from JSWP7";
emailComposeTask.Show();
break;
case "task2":
NavigationService.Navigate(new Uri("/About.xaml", UriKind.Relative));
break;
}

}

this gets around a limition with calling the navigation service that I'm currently working on.

Tuesday, June 14, 2011

Increasing App sales with Analytics: Free apps versus trials

Since Sebastian quotes me I and supports the supposition that free w/ premium upgrade in great detail which has been more or less my mantra for several months I thought I would point everyone at his post(s):

Increasing App sales with Analytic's: Free apps versus trials: http://apps-are-people-too.blogspot.com/2011/06/increasing-app-sales-with-analytics.html

and also

Implementing Customer Feedback Forms AND fine tuning try/buy strategies with Runtime Intelligence: http://apps-are-people-too.blogspot.com/2011/06/implementing-customer-feedback-forms.html

Tuesday, June 7, 2011

Building an HTML/HTML5... Based Application for Phone 7

So you want to build an HTML based application for phone 7, but wait there is not a way or at least a 'supported' way of doing that for phone 7. Why would you want to? For for starters wouldn't it be cool to have the same app/code base run on android and iphone. I realize a good portion of the 3 readers on my blog are probably aghast that I use the term 'iphone' (oops there it goes again) but in all honesty as an app developer it would be sooo cool to be able todo that. Let iterate some of the benefits: less time developing for multiple platforms, larger reach to my target demographic, really its not about the technology or the platform but reaching my target demographic.).

The obvious solution is to have a shell like a web browser control or web browser runtime using a local html file structure. But wait that is easy todo and I found that I can do that in Silverlight easy enough creating a HTML App Host Framework for phone 7. I got it working on the phone and couldn't think of a reason they would not let it go through. So I submitted a test app that was all HTML and JavaScript and what surprised me is it was accepted! (here is a deeplink if you don't believe me: http://social.zune.net/redirect?type=phoneApp&id=832ce0cd-788e-e011-986b-78e7d1fa76f8 )

So from here I decided to create a simple framework around this and post it on codeplex so others can build apps that are HTML/JavaScript based on this framework and have them deployed to the marketplace. To download the framework (dll) you can go to this link: http://htmlappwp7.codeplex.com/

Here is how to use it:

Using the HTML App Host Framework

the HTML App Host Framework current consist's of 3 critical parts. 1, the app host shell, 2, the html loader and 3 the task processor. For an HTML application developer you don't really need to worry about most of it but in the following context. To start you need to create an empty Silverlight application in visual studio and then reference the HTML App Host dll. Then you need to create a directory called HTML and add your HTML application to this. The HTML application can include html files, resources, images, css, script files etc and folder structure or whatever you need. On the downside you need to create a 'manifest.xml' file at the root of the html folder that maps all the files. This allows the HTMLAppHostFramework to consume your application and run it on the phone. Here is a typical manifest.xml file:


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

<IsolatedStorageManifest>

<Files>

<File Name="index.html" />

<File Name="about.html" />

</Files>

<Directories>

<Directory Name="inc">

<Files>

<File Name="script1.js"/>

<File Name="script2.js"/>

</Files>

</Directory>

</Directories>

</IsolatedStorageManifest>


Basic a simple index of your html application. the trick here is that html assets can't be referenced directly from a xap to say a webbrowser control so the apphost used class called 'IsolatedStorageResourceHelper' to copy everything from the xap based on the manifest.xml file into isolated storage where it can be referenced and executed directly.

The next step is to edit your main page in your app to reference the AppHostShell and your html. The AppHostShell is used much like a webbrowser control but it extends the control to deal with the IsolatedStoargeResourceHelper' class and to expose Phone 7 API's to the script environment so that the script can call out to those API's through 'tasks' using the 'TaskProcessor' class. Also the AppHostShell exposes an event called 'ScriptNotify' so you can extend what is dealt with if there are special cases you want to handle in your own code.

After the HTML app is created, then added to the HTML directory AND you have finished the manifest.xml file, the next step is to add the namespace reference in the XAML of your start XAML page. I like to rename the default 'MainPage' to 'Shell.xaml' but if you do this you have to edit the master app manifest under properties to point at the new name or your app won't work. But you can leave it as 'MainPage'.

In any case, in this page the namespace reference should be in the rootnode and look something like this:

xmlns:HTMLAppHost="clr-namespace:HTMLApplicationHostFramework;assembly=HTMLApplicationHostFramework"

then you can add the control to the xaml surface generally you can just rip out everything in the page and replace even the root grid with this:

<Grid x:Name="LayoutRoot" Background="Transparent">

<HTMLAppHost:AppHostShell Source="/index.html" />

</Grid>

</phone:PhoneApplicationPage>


You'll note that now when you run the app your app on the phone will be entirely your app, well save the system tray and I like to turn that property off in the root node but you can do that in your javascript too using the task api that is created by the HTMLAppHost control.

If all of your app is HTML based you're done but if you need to call out to phone 7 api's from your javascript you can make calls like this:

window.external.notify("Email:pieseczek@hotmail.com:Email from JavaScriptFWP7");

Basically the syntax of the string is "[task name]:[param]*n" currently I've only added a few tasks like email but that I'll be adding much more in the coming weeks. Ping me if you use the framework for your app's, I'll give your app some social media love.

Wednesday, June 1, 2011

Tethering Windows Phone 7 - Hack

One of the features people frenquently complain about with phone 7 is the tethering or lack thereof support. But alas there are a number of hacks out there for doing it. If you have an LG phone you could try this (at your own discretion, you of course should not try it...):

http://www.gadgeteasy.com/how-to-utilize-usb-tethering-on-wp7-running-lg-phone/

if you have a Samsung phone try this:

http://www.wired.com/gadgetlab/2010/11/easy-hack-enables-usb-tethering-on-wp7-phones/

again, if you try this and something goes wrong, its your fault. Please don't try this at home...

Friday, May 13, 2011

Monetizing Phone 7 Application Methods and Approaches

The past 6 months have been a bit of a wild ride with Phone 7 going live and all the apps I’ve been working on. I guess I really started preparing for phone 7 the end of 09 heading into MIX 10 where I started building apps for the upcoming release. Going from 0 to making money with WP7 apps was kind of a long journey and this is my story, the story of Simon Said and my phone 7 obsession…

For several years there was this thing in the Silverlight Insiders (Super Secret Kabal of Silverlight Universe) about the upcoming new version of the MS phone/mobile platform and many of us knew about the two device directions and in fact knew people on the teams including the super secret design stuff going on in downtown Seattle. This kind of cloak and dagger thing drew our attention but most of what we had to work with for the longest time was conjecture, rumors and half truths. Thank goodness I wasn't a mobile 6.x MVP as I feel they really got the short end of the stick but the Silverlight MVP's had an awesome deal. Coming into MIX10 we had mostly all jumped on board and were building apps albeit for the longest time there were two few prototypes phones we could get our hands on that were weak and most of us were stuck with emulator which was horribly weak as well. (Currently we are still eagerly waiting for Mango, which is promising to be more awesomeness.)

Don't get my wrong, the Silverlight/WP7 team was working over time to get the new phone platform to market so the fact we got an emulator at all was great. Of course it wasn't long before this was hacked and we started getting our fingers into the OS and post the excitement of MIX11 the Dev community started to pick up momentum around the phone and building phone 7 apps. But the question in every bodies mind was will it actually make us money? and how could we be successful?

For the longest time no one wanted to talk about this aspect of the phone much, info was few and far between and hardly anyone knew anything or would tell you anything. Now that the market is open and we have been able to see some of the dynamics in action and some of us have made some money I'm hoping to help bring at least some of my experience to others. Let's start with understanding the basic revenue models that you can do on the phone.

Model 1: The Paid App

The paid application is the most basic model for making money. 'Free App's' do not constitute a revenue model by themselves w/o a more complex model. The idea of buying something, using the existing structure put in place, in a onetime fee sort of way becomes the most basic structure. On the good side this model is the most simple, you need only have a developer account ($99 typically albeit there are MS rebates if you get 2 apps into the market place), the tools which are free and an application. Issues with getting things approved aside, it’s just not hard to do but most of the people I know have not made money at this (at least not a significant amount). For the most part given the current market conditions and the expectation of free apps that developers have themselves propagated by educating the target demographic about the evils of paid apps has made this model difficult to use. The success that I’m aware of with this model have come with primarily with strong 'existing' brands and lots of marketing (any Xbox Live game as an example).

Model 2: Paid w/ Trial

The paid with trial model for making money is really just a variation on a theme from the first model and is only marginally more successful. For the most part all the examples I refer to about Paid apps is basically this model. So unless you have a good Xbox Live company you work for… its not likely you will be successful. Now that certainly can change as the market changes which will happen as the Windows Phone market becomes increasingly viable but not yet.

Ok so how I can Make money with phone 7 apps?

Model 3: Free w/ Advertising

The idea here is that an application is free to the user but you basically sell ad impressions to an ad service such as Microsoft AdCenter and show the ad’s in your application. Companies pay firms for the said advertising. The best part of this model is that it works. A good, well designed application that is targeted to a general demographic will work great. There are problems and complexities to this model but it is achievable to the average developers... When you are talking about AdCenter it really comes down to targeted ad’s. The better you can target your app’s ads the better your 'ecpm' value is which translates into more money. 'Ecpm' basically standards for how much a 1000 impressions of an ad are worth in your application. I’ve tested this and certainly the more you can tell the AdCenter control about your user and the more your ad’s are something that would interest your users the more money you make.

Model 4: Free w/ Paid Version

This model is basically a way of driving sales to a paid application. I’ve seen this one tried but with little success so far. I suspect this might become more viable as market dynamics/conditions change allowing more sales of apps to take place as a larger market share is formed around Windows Phone 7.


Model 5: Free w/ Advert w/ Paid Version

A forth model is a variation of the third. This model really doesn’t make a lot more then model 3 but I think it is well positioned to take advantage of how the market dynamics will change over the next couple years. What this model is, is two applications like model 4 but focused on advertising in the short term as revenue stream. In this model you have an application that is free with advertising that is also driving sales of a paid version. In most cases where I’m seeing success is when the free version is very popular with a built out feature set and not handicapped but at the same time the paid version looses ad’s but also might ad some premium feature. A simple example is that I have a morse code application in the market place that is free with a rich feature set from saving code blocks, sending and transmitting code etc. The paid version of course is w/o ads but also has a complex sound transcoding feature but for the most part the feature set is the same short the one. Then the free version doesn’t expire, is a good free app but also passively drives paid sales. Have a free app tends to drive many, many more eye balls and downloads.

Model 6: In App Purchasing/Purchase Upgrades

Ok here is a six model that can be used with the others and that is in app purchases. There is no market place support for this but if you have the ability to roll your own certainly it can be done. What this means is that in your app either paid or purchased the users has the ability to pay for additional elements, features or other purchases as defined by the application. Basically if you want to write the code you can do this but there is no current support for it however there is a nifty hack I learned about primarily it looks like this… You have this app, and then you have other apps in the market place are packs or expansions for the first app. These ‘pack’s give you a code or other set value that allows you to ad more elements to the first app, maybe some under the covers sync etc. A cool idea but really a bit of a hack and could be cryptic for users.


Case Study: Of a free app?

I have this one application in the market called 'Simon Said' that is now in the top 100 most downloads apps. This started off some years back with a demo project called 'Silverlight Simon' to show how to build composite WPF/Silverlight assets and controls. 'Silverlight Simon' being the case in point. Over the course of several years and 2 mvps 'Silverlight Simon' was in Silverlight, WPF, Surface, Azure, OOB and then the phone came along so I took the existing Simon game control and put it into a Phone 7 application shell and submitted it to the market place just to see that it could be done. At the time I didn’t really think it would be big but I did add the AdCenter control as I was trying all the basic models I could think of. ~3.9 million impression’s later and ~150,000+ downloads I’ve learned a lot about phone 7.

At first people would download the app and get upset that the animations lagged or the timing was slow but I was just focused on testing so Ignored this as the app description talked about this only being for testing and demo purposes but I kept getting issues and less than stellar ratings. I finally realized that there were tens of thousands of people downloading the app so I finally capitulated to building a new version optimized for the phone.

Now the Simon Says is basically a picture of Simon, 4 paths and a text box plus an app bar and the ad control and some code. The highly complex XAML that made of Simon needed to go and that turned out to be 90% of the problem. Most of the other features are implemented as separate views and a combination of a good design, well built app, a degree of familiarity and the AdCenter Ad control and the app being free has continued to drive the apps popularity as one of the top apps in the market place. Of course some guerrilla marketing helps too, a few blog posts, videos etc and its all good but as of late, if you’re a one man or women shop, free with advertising is the way to go.

Thursday, May 12, 2011

A Letter to Some Listing to Silverlight Haters...

Deborah;

I guess up front this topic is one of my hot buttons but I’ll try to be as even as possible in my explanation. But in fairness I do have a vested interest in Silverlight as a Silverlight MVP for the past two years, a published author and professional speaker as well as being one of the Silverlight insiders at Microsoft… besides having a vested interest it also puts me in the know as it were.

First WPF or ‘Windows Presentation Foundation’ to say is dead would be on par as saying Windows is dead as WPF is the primary method for building native applications on Windows. VSTS is in WPF, most other ms products are written in either WPF now or are C++ written in VSTS which is in WPF. That notwithstanding, there hasn’t been as much excitement about WPF as most of the industry talk has moved on to other things, even the last version of WPF was more or less a support release. Where all the talk in the ms world is as of late around Kinect (oh but all of these apps are WPF or C++), Phone 7 (which is XNA/Silverlight) or HTML5 (which the browser is written in WPF on windows) etc. WPF is therefore for native Windows Only applications. WPF primarily consists of XAML markup and C# code.

Silverlight which is also XAML markup and C# code, is a cross-platform lite version of WPF (Silverlight was first called WPF/e), it is cleaner with lighter overhead and runs on Mac, Linux, phone7, Symbian, CE, windows etc.

Last year ms decided that the HTML standard moving to 5 was a good thing and that they would support it for cross browser applications but that was never what Silverlight was about. During PDC last year (MS Professional Developer Conference) a former ms employee that at the time was senior vice president… Bob ‘what’s his name’ was interviewed on TV and made some less then well thought out comments about Silverlight which started this silly-ness about Silverlight being dead and ms has been doing damage control ever since. In Dec they announced the feature set for Silverlight 5 coming out later this year and demo’d features like pinvoke, native 3d and hardware acceleration even on the mac and XNA support built in. Silverlight is also the primary method for building apps for Phone 7 which ms is basically bet the company on. They will make it work which means supporting Silverlight for the foreseeable future. Silverlight is for building immersive cross platform user experiences and high end video, LOB apps that are cross platform etc. Developing Silverlight is for the most part the same as WPF, if you learn one, you can do the other easily.

One last point is that I work for an interactive design agency of almost 200 and we are primarily an Adobe shop. We do things like the Nike Touch wall or the Jordan retail kiosk, or the Microsoft Software Kiosk in the new MS Retail Store’s etc. Our clients don’t care about technology and projects should generally never be about the technology but the best way to deliver the Best Possible User Experience to the target demographic. I believe in this more than anything and is also way I helped start ‘Interact Seattle’ – designer developer interaction group. We meaning ‘[wire] stone’ deliver most of our work in WPF or Silverlight as our time to market is double our competition over say Flash which used to be our primary delivery model for interactive designs. Silverlight allows us our dev teams to build almost directly against illustrator files so that we are able to not have a design team or a dev team but a single team working together. In short as mentioned it cuts time to market in half once the dev’s and designers learn to work together and the designers can continue to use their tools they are used to. Therefore for business reasons we continue to use Silverlight…

I hope that helps :) please feel free to ask any questions and if you are in Seattle feel free to come by our office.

Sincerely;


David J Kelley
Principal UX Architect, MVP
[wire]stone | Blog/Site | {Interact} | SeattleSlug
twit: @DavidJKelley

Tuesday, March 8, 2011

Creating Borders in Silverlight

So this might seem simple enough but I was asked a couple times recently so I thought I would put a post out there on topic, ok so its more of a half tweet half blog post as its pretty simple but here is how to create a 'border' in silverlight without some hack on a rectangle or some sillyness.

<border borderthickness="20" background="white" borderbrush="Green" padding="3" cornerradius="10" >
<textblock text="Hello World" />
</textblock>
<border/>

So here you can see that you have some basic properties you can sent, like color, padding, thickness but intellisence in visual studio will tell you all you need to know. and thats it, that is how to create a use a 'border' in XAML in Silverlight.

Wednesday, February 23, 2011

Simple Twitter Integration

A few posts ago I did a quick post on simple Facebook integration but in HTML . Twitter is even simpler and this method can be applied to Silverlight easy enough. First lets look at the HTML version:

<a href="http://twitter.com/share?url=http://www.HackingSilverlight.net&text=check out this awesome site&via=DavidJKelley"
>Tweet</a>

you can see that basically its just a hyper link to the twitter share URL but it adds 3 query string parameters namely URL , text and via. URL gets parsed into a short URL by twitter and then the text is inserted and then a note about what user it came from meaning in this case the twitter would be something to the effect of:

check out this awesome site http://t.co/nn6oQN8 via @DavidJKelley

keep in mind that users will have to login and the tweet will be posted as them.
In HTML rendered the above code would look like this in your browser:

Tweet

now from Silverlight in C# it is about as simple with something like:

System.Windows.Browser.HtmlPage.Window.Navigate(new Uri("http://twitter.com/share?url=http://www.HackingSilverlight.net&text=check out this awesome site&via=DavidJKelley"), "_blank");

this would do effectively the same thing opening a new browser window and ask them to login to twitter and then let them post the same thing. Nice and simple :)

Wednesday, February 16, 2011

Bytes by MSDN: David Kelley and Tim Huckaby on building applications for Windows Phone 7

This week, meet MVP David Kelley, Principal User-Experience Architect at Wirestone, as he is interviewed by Tim Huckaby, Founder of InterKnowlogy. David and Tim discuss the user experience on large screens, such as the Nike touch wall, and small screens, including Windows Phone 7. David offers tips on how to build applications on Windows Phone 7, using Metro as the aesthetic, with a rich user interface.

watch the video at: https://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-David-Kelley-and-Tim-Huckaby-on-building-applications-for-Windows-Phone-7

Silverlight TV 61: Chat on Deep Zoom, Touch, and Windows Phone 7

Thinking about writing a touch intensive Windows Phone 7 application? In this episode, David Kelley of Wirestone shares his experience creating rich experiences with Silverlight. David has been involved with many high profile applications and he shows off both the Jordan Deep Zoom mosaic and his Simon for Windows Phone 7 application that's in the marketplace (for free). This is a great discussion with a Silverlight user experience expert.

Watch the video here: http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-61-Expert-Chat-on-Deep-Zoom-Touch-and-Windows-Phone

Jordan Mosiac: http://www.jumpman23mosaic.com/

MS Retail: http://blogs.msdn.com/b/mvpawardprogram/archive/2011/01/04/achieving-digital-zen-in-retail.aspx

DeepLink for Simon on the phone: http://social.zune.net/redirect?type=phoneApp&id=65c23c5b-73e9-df11-9264-00237de2db9e

Friday, February 11, 2011

App Development for Windows Phone 7 101

App support for the Windows Phone 7 platform is occurring at an accelerated rate. At one time the quantity of available apps was in the hundreds, now it’s in the thousands. Some of this acceleration is due to a relatively straight forward and clearly-defined development platform. This article explains the basics of developing an app for the Windows 7 phone on both the Microsoft .NET and XNA development platforms. Whether you're programming an app that'll be placed for download, or developing a premium app on your own web hosting services, this article is designed to help get you started.

Application development for the Windows Phone 7 is accomplished through the help of the Microsoft .NET application programming interface (API). The .NET development platform supports multiple languages and executes from within a common language runtime environment. Two different frameworks can be used to develop apps. One is the Silverlight application framework and the other is the XNA framework.

Microsoft Silverlight is a browser-diagnostic development platform built on the .NET framework that utilizes a variety of technologies that support a multitude of programming languages. Microsoft Visual Studio is the primary application used in the Silverlight platform and it is also shared with the XNA development platform.

The XNA development platform is a development framework that utilizes XNA Game Studio. XNA Game Studio is a managed-code class library designed specifically for game development. Its advantages are an easier learning curve with a free toolset. Apps using XNA Game Studio are playable on a variety of gaming platforms, including Windows Phone 7.

The first step in developing apps for the Windows Phone 7 is to setup the proper development environment. At a minimum, Windows 7 or Vista and a DirectX 10 compatible graphics card are required. Go to http://create.msdn.com/en-us/home/getting_started and follow the instructions to install all the free development tools. These include:

- Silverlight
- Visual Studio 2010 Express
- Windows Phone Emulator
- XNA Game Studio 4.0
- Microsoft Expression Blend for Windows Phone
- .NET Framework 4

To begin creating your first app, perform the following steps:

1) Open Visual Studio 2010 Express. This may take a few minutes, if this is the first time Visual Studio has been run. It will initialize various settings. When this process is complete, Visual Studio displays a startup page that lists a variety of information.

2) Click the “New Project” link from the menu bar on the left side of the GUI. The New Project screen displays a variety of templates.

3) Click “Windows Phone Application” from the list of templates. The template name appears highlighted.

4) Enter a project name in the “Name” field towards the bottom of the GUI.

5) Enter a name in the “Solution Name” field towards the bottom of the GUI.

6) Click the “Create directory for solution” check box above the OK button. This assists in organizing your project.

7) Click the OK button. The new project is created.

After the project is created, Visual Studio loads and displays the contents of a file called MainPage.xaml. The GUI is in design mode with the left pane showing how your application will look on the Windows 7 phone and the right pane showing the code. At any time you can press CTRL+F5 to compile the current code and run it in the Windows Phone Emulator. While developing, any changes entered on the right development pane will display on the left pane.

At this point, you’re ready to begin app development using the Visual Studio editor. Visual Studio provides an effective platform to develop code and there are a number of online resources available as well as WP7 Help hosting companies to assist during the development process. Here are a few that are worth bookmarking:

The App Hub website is an excellent resource for Windows Phone 7 development with lots of tips and downloads just a mouse click away. http://create.msdn.com/en-US/

The Windows Phone Developer Blog is also an excellent site for information.

For those seeking to develop games in the XNA framework, it will be necessary to have a rudimentary grasp of the C# language. The XNA environment has some limitations in terms of use. For example, it doesn’t support drag-and-drop and it’s necessary to have a more firm grasp of C#, but, as with programming with Visual Studio, there are a number of websites that offer help using the XNA framework. The Microsoft Beginner Development Learning Center at http://msdn.microsoft.com/en-us/beginner/default.aspx is an excellent place to learn more about C#.

Programming in the XNA framework requires the same minimum graphics requirements as programming in Visual Studio. The XNA Wiki (http://www.xnawiki.com/index.php?title=Graphics_card_compatibility ) contains a list of graphics cards that are compatible with XNA Game Studio.

The following steps describe how to begin programming in the XNA framework.

1) Ensure Microsoft Visual Studio is installed, as explained earlier.

2) Install the latest version of Microsoft XNA Game Studio. Only install this application from the Microsoft website. Some mirror sites offer compromised builds. Play it safe and always download the installation directly from Microsoft. XNA Game Studio 4.0 is available at http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9ac86eca-206f-4274-97f2-ef6c8b1f478f

3) Start the Visual Studio application.

4) Click “File” and select “New Project”. A dialog box lists various tree nodes, each represent a project type.

5) Select the “XNA Game Studio” tree node. This is located under the “Visual C#” node. A list of projects displays in the right pane.

6) Select “Windows Game” in the right pane.

7) Enter a project name in the “Name” field on the lower portion of the GUI.

8) Enter the directory path in the “Location” field. This defines where the new project will be created.

9) Click the OK button. The new project is created and the GUI switches to code entry mode.

You are now ready to begin developing your game within the XNA framework. Refer to Getting Started with XNA Game Studio Development for a development tutorial.

When you create your new project, the basic code structure is automatically created for you. Within the code that has already been inserted, you can now add various methods and loops. Here’s a brief rundown of the code elements you will want to learn and explore:

- Draw loop: (http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.draw.aspx ) Used to define frames and screen-render backgrounds and objects.

- Update look: (http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.update.aspx ) Used when processing game logic, such as object movement, user input, or processing simulation data.

- Initialize method: (http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.initialize.aspx ) Used to load any nongraphic resource.

- LoadContent method: (http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.loadcontent.aspx ) Used when loading graphic resources, such as textures and other graphic elements.

As stated, this article is designed to get you started developing apps on the Windows Phone 7 using either the Microsoft Silverlight development dedicated server platform or XNA Game Studio Developer. Links to helpful sites have been provided, but this is only a start. There are extensive information available online and it is strongly recommended that each person perform their own research to locate the proper resources, tutorials, and code samples.

With the proper applications loaded and ready to go, websites bookmarked, and resources and code samples at your fingertips, you’re now ready to explore the exciting development opportunities offered for the Windows Phone 7 platform.

Wednesday, February 2, 2011

HTML 5 Is Dead!

“gasp” what? How can that be? What can this guy be talking about? What can this blogger possibly know and why would he say something so sacrilegious? I’m aghast…


I’m sure that is the kind of response that many of you are having when reading this article but I wanted to make a point, with all the excitement around HTML 5, not so much that its bad but people seem to be in one camp or the other and few are looking at the big picture. Yes HTML 5 is awesome and all but many of the ‘HTML 5 is awesome’ crowd is saying other RIA technologies are dead and it is just not logical to make a whole sale generalization like that and it drives me nuts. I hear things like ‘Flash is dead’ or ‘Silverlight is dead’ (even from some less then razor sharp micrsoftee’s).


HTML fine is the foundation of all our content on the web and all but a technology whose last major version is 10 years old is not making rich immersive technologies like flash out dated? That’s just crazy. Flash and Silverlight both in particular have proven over and over again that they iterate faster and more importantly ‘innovate’ faster than more open technologies like HTML. Both of those technologies do more, better and faster than HTML 5 and are more cross platform, more tool-able and have better dev/workflow stories across the board. But why do people put these technologies up against each other at all? That’s like saying apples are better than oranges? They are just different.


HTML 5 is a cross platform long term foundation for web based content and web based apps and great it now is more richer then before but RIA technologies such as Flash and Silverlight both are not nor have they ever been dubbed as a replacement for HTML (at least not anyone I know). These technologies both live out of the browser and are ways of delivering on all the promises that Java first made when it came out. Rich cross platform immersive UI experiences on so many platforms from droid phones to xbox to browsers and desktop apps.


HTML is for the rich distributed web stuff and Flash and Silverlight is for immersive experiences that may or may not be on the web at all. HTML in the browser or maybe even an HTA sort of app and Flash/Silverlight is for UX that leaps out of the browser. HTML 5 is cool but that doesn’t mean that more powerful RIA technologies are dead. To each his own and to each problem space its technology; there is room enough for it all. Let’s all be a bit less zealous about things and focus on building better apps regardless of the technology you want to use.


Heck if apple had any since they would get flash on the iphone for building cool apps so we don’t have to use that objective C…

Tuesday, January 25, 2011

Achieving Digital Zen in Retail at MIX11

Vote for my session at mix11:

Abstract:

The road to Digital Zen in building cohesive, immersive experiences in retail from the web to touch walls in the real world can be long. This session is about the long road to designing building and implementing real world experiences that go from the web to brick and mortar using real world examples including the Nike Touch wall and the Microsoft Retail store and more using technologies like WPF/Silverlight. The session will touch on design elements including topic on and off screen from hardware, software, sensors and mobile devices like Phone 7.

Vote here: http://live.visitmix.com/OpenCall/Vote/Session/87

and don't mind the cats...

Thursday, January 13, 2011

'Extending' Your Phone 7...

So I can't condon hacking phone 7 outside of the context that MS has provided in any case... however it can be done easily enough.

I've found that it is straight forward enough to hack. One thing that has bothered me with the phone was the default accent colors on the phone are lame. for the most part I don't really like any of them. One way to fix it is this app you have to side load, called advanced config. Currently it only works for HTC but does let you test registry hacks on phone 7.

You can get the app (xap) from here http://www.touchxperience.com/

In this case there are a number of cool phone 7 hack apps. but for me having a nice steel gray just makes the phone more zen.

Again I'm not responsible for you mucking up your phone... don't do any of this...

Wednesday, January 5, 2011

Achieving Digital Zen in Retail

"My “thing” is more or less about embracing the digital space, integrated experience, and fluid emotional connections with a target demographic. I want to hear “wow that’s cool!” That’s when I know it’s a success. That was our goal with the on-demand software kiosk my team at Wirestone and I created for the new Bellevue Microsoft retail store.



Microsoft’s developer centric approach (“Developer, developer, developer!”) has put the experience with Microsoft tools at least a decade ahead of everyone else. Now we need to look beyond the developer centric approach and more and more focus on a user centric approach.

..."

Read the rest and watch the video here:

http://blogs.msdn.com/b/mvpawardprogram/archive/2011/01/04/achieving-digital-zen-in-retail.aspx