Author Archives: bill reiss

New Discussion List for Southeastern Windows Phone Developers

In Florida for the past couple of years we have had a discussion list for Windows Phone development. We found it to be a great resource for Windows Phone developers who had technical questions as well as getting the word out about events, promotions, and new products.

I’m happy to announce that I have created a new discussion list for the entire Southeast. I’m not going to deny anyone access if they request access unless they cause trouble, but we will be focused on events and promotions in the Southeast region, namely Alabama, Florida, Georgia, and the Carolinas. Topics not related to developers in the area will be highly discouraged. To sign up follow these steps:

Hope to see you there! And please introduce yourself when you get on the list.

Big Southeast Nokia Ambassador Phone Giveaway

Are you in Alabama, North Carolina, South Carolina, Georgia, or Florida?

If so I am your new Nokia Developer Ambassador! I am very excited to work with this already strong community and I want to do what it takes to make us the absolute best for Windows Phone app development.

Let’s get to know each other by doing a big giveaway. Here’s what’s up for grabs:

  • One Nokia Lumia 920 plus wireless charging station
  • One Nokia Lumia 620
  • One Nokia Lumia 900
  • One Nokia Lumia 800

The Lumia 920 I’m giving away is a developer unit (not for resale!) I won in the Next App Star contest and I’m personally adding it to the pool of prizes to sweeten the pot.

WP_20130509_004

So what do you need to do to qualify? It’s pretty easy. All you need to do is successfully complete a DVLUP.com challenge that requires a XAP submission (so no survey challenges) and then tell me about it. The XAP submission must be on or after May 1, 2013. Qualifying submissions include new app submissions or updates. One submission per user account please. Deadline is Midnight June 15, 2013 Eastern Time. Winners will be announced on June 16, 2013.

Here’s what you need to do:

  • Send me the link to an eligible app
  • Send me the link to your DVLUP profile. If you have at least 500XP on DVLUP, you earn another entry

Restrictions:

  • You must be located in Florida, Georgia, North Carolina, South Carolina, or Alabama
  • You must submit a XAP to the Windows Phone store and have it approved between May 1 and June 15, 2013.
  • The app for the XAP submitted must qualify for at least one DVLUP challenge.
  • One entry per DVLUP account.
  • This promotion is being held by me, without any express written or implied consent or participation from any third party.
  • By submitting your apps to me, you agree to hold me not responsible for any promotion, remuneration or other, expectations whether implied or inferred. 
  • I am doing this to help developers, not looking for any problems.
  • The lucky winner will be randomly chosen by me.

How to enter:

Send me an email to billreiss[AT]outlook[DOT]com with the subject line “Southeast WPDev Rocks!”  or tweet me at @billreiss (please follow me on twitter while you’re there!) 

In the body of the email, include:

  • Your Windows Phone developer/publisher name. This is the “publisher” that shows up in the marketplace when you release an app
  • Your DVLUP username
  • The app you are entering. Please, send a clear, coherent email with your app entry specified and described. Please include the name of the challenge the app qualifies for. 
  • Any news on apps you’re working on.

If you contact me via a tweet I’ll take as much as I can get. I’ll reach out to you if I need more info.

Good luck and get coding!

I’m the newest Nokia Developer Ambassador!

I’m thrilled to announce that I have been selected to be the Nokia Developer Ambassador for the Southeast region. This includes Florida, Georgia, the Carolinas, and Alabama. If you are a Windows Phone developer in my region or if you are not currently a Windows Phone developer but have an interest in getting started, I want to get to know you and discuss how I can help you write more and higher quality Windows Phone apps and help you promote them. Please connect with me. Especially if you’re a user group leader in my region I want to know how I can help. The best ways right now to keep up to date with me are through this blog or through Twitter where my handle is @billreiss. I’m also billreiss on LinkedIn, Facebook, Skype, and App.net. Keep an eye on my posts because I’m going to announce a promotion soon where you can get some really nice swag (probably including a Lumia 920 that I’ll be donating myself to make things more interesting).

Well what is a Nokia Developer Ambassador? I think Rich Dunbar, my friend and Lead Ambassador, describes it best in a recent interview on DVLUP.com here: http://blog.dvlup.com/2013/04/10/meet-nokia-ambassador-rich-dunbar-an-advocate-for-windows-phone-developers/ 

Rich was the first Ambassador and he was so effective in this role that Nokia decided to expand the program and give Rich some much needed help. I join a very talented and small group of Ambassadors and I’m honored to join the team. My interactions so far with them have been impressive and overwhelmingly positive. Basically if you’re familiar with the Microsoft Developer Evangelist program, we’re like the Nokia version of that. One major difference is that most or all of us also have a full time job and our employers allow us to spend our off hours working on this. Our mission statement is to do whatever it takes in our regions to facilitate the creation of more and higher quality apps for Windows Phone. 

I’m sure many people in my region already know who I am but if you don’t, I’ve been writing software for over 30 years, beginning in seventh grade with some simple games for the family’s TI-99/4a computer with a tape drive, Extended Basic, and 32k of RAM. I continued writing games into the first couple of years of college, and actually sold some of them. I went into Electrical Engineering because my college at the time didn’t offer Computer Engineering, but I lost interest and had too much fun in the Sig Ep fraternity house and had to relocate to Florida where my parents lived and bring my grades up. I then attended University of South Florida for Computer Science. At USF I got into MUDs, or Multiple User Dungeons (or Domains depending on who you talk to), a text based ancestor of MMOs. I wanted to learn C better, and I always learn best by writing something, so I took an existing MUD client that I liked, called TINTIN, and extended it significantly to create TINTIN++. This became one of the most popular MUD clients ever and was detailed in a couple of books about MUDs at the time. There’s even a Wikipedia page.

Fast forward a few years and I’ve been a Microsoft MVP for the last 6 years, first in XNA, then Client Application Development, then I was named the first Silverlight MVP, which I still am today. I speak often about game development in .NET, XAML based app development, and other related topics. I’d like to thank Joe Healy, Microsoft Developer Evangelist for his support and encouragement over these years.

I got involved with Windows Phone before the first release as the lead developer on iHeartRadio for Windows Phone Version 1, and I have published Reading Lens, Wipeout, and Popper 2 among other successful apps and games as an independent developer.  I work in Tampa as a Senior Developer for AgileThought, the best company I’ve ever had the pleasure of working with. They have been very supportive in my goals and have agreed to let me take on this exciting role in addition to my AgileThought work.   

If you’re interested in Windows Phone development, there are some things you can do right now to get going. First, sign up for DVLUP.com. DVLUP is a free program where you can gain prestige and earn rewards for developing Windows Phone apps. In many cases the rewards can be more lucrative that your normal income for Windows Phone apps. Next, connect with your local Nokia Developer Ambassador and Nokia Developer Champions. We’re here to help you, that’s our only purpose. Finally, start writing some apps, or if you already have some write some more or improve the ones already out there. I’m excited to help you create the next great app for Windows Phone!

Up Your Ratings on Windows Phone Apps Part 1

One of the questions I’ve herd a lot lately is “How do I increase the number of reviews for my Windows Phone Apps?”. This is the first in a series of posts where I’ll describe some of the things I’ve done to have multiple apps in the Windows Phone Store with 4+ star average ratings. It’s surprisingly difficult to provide a review on Windows Phone so anything you can do to make it easier for your happy users to review your app is “A Good Thing ™”.

Obviously the first thing you need to do is create a quality app. Making it easier to review a crappy app is just going to get you more 1 star ratings which can do more damage than good. This part is up to you, but once you’ve done that much there are some easy steps you can take to significantly increase the amount of reviews you get.

You won’t get good ratings from everyone, and generally users are more likely to complain than compliment you. This is true for almost any type of business, bad news travels faster, and it definitely applies to apps. Fortunately not all is lost, if you make it easier for your happy users to rate and review your app, many of them are happy to do so.

image

There is an added benefit to having a lot of positive reviews. Nokia has a program for Windows Phone developers (in the USA, Canada, and UK only right now, sorry) called DVLUP where you can earn prestige and points that you can redeem for some really cool rewards. One of their highest point challenges right now is to have an app with a 4+ star average rating. Rewards start at 25 reviews and go all of the way up to 2000 reviews. These challenges can stack on top of each other so even though the first one is worth 500 points (about a $30 value) if you were to get to 2000 reviews that’s

500 + 1000 + 2000 + 3000 + 4000 + 5000 + 10000 = 25500 XP

which works out to be about $1700 in value. That’s enough for a Surface Pro, an Xbox with Kinect, AND a Lumia 820. Or get a bunch of American Airlines gift cards and take the family on vacation. Something to shoot for?

Source code for this sample: http://www.billreiss.com/wp-content/uploads/2013/05/ReviewMeApp.zip

One of the easiest things you can do is provide an About page with a “Review Me” button. You’d be surprised how many users will actually go to your About page. You can easily create your own but why bother when someone has already done the work for you? There are a few of these available for free, but my favorite is YLAD (Your Last About Dialog) by Peter Kuhn (aka Mister Goodcat). I love how it is highly configurable via an XML file and you basically just drop it in your project and away you go. There is no reason not to provide a high quality About page when you can do it in a matter of minutes with YLAD. (I see Peter has a similar project called YLOD for a Settings page which looks very helpful too).

You can download YLAD from CodePlex but it’s also available through NuGet making it even easier. In your Windows Phone project, select Manage NuGet Packages…

image 

Then in the NuGet dialog, search for YLAD and install.

image

Now to navigate to the about page, I’ll just add a button to the main page. You’ll have to do whatever makes the most sense for your app, for example put a menu item in the app bar. Here’s my button:

<Button Content="About This App" HorizontalAlignment="Left" VerticalAlignment="Top" Click="Button_Click"/>

And then in its Click event:

private void Button_Click(object sender, RoutedEventArgs e)
{
    NavigationService.Navigate(new Uri("/YourLastAboutDialog;component/AboutPage.xaml", UriKind.Relative));
}

That’s all there is to it. If I then run the app and click the button, I get the following:

about_dialog_1

Now obviously we’re not quite done but the “Review this App!” button is live. It won’t actually work until you publish unless you’ve already published the app and set the application ID appropriately, but you can tap it and see that it tries to navigate to the review page in the Windows Phone store.

So how do we fill in the rest of the information? When the NuGet package was installed, it also created a Content/About folder in your project. In there you can customize the style of your About page using the AboutStyles.xaml file, and you can customize the content using the Data.xml file. The Data.xml file is very well commented to tell you exactly what to do, but it’s pretty clear where we set Author and Publisher values:

image

After setting the Author and Publisher, it looks like this:

about_dialog_2

Pretty cool huh? One line of code and some XML tweaking and we have a professional looking about dialog. If you want to take it to the next level, there are some more advanced topics covered in the documentation on CodePlex such as using custom XAML in pivot items and advanced formatting. Thanks Mister Goodcat!

Source code: http://www.billreiss.com/wp-content/uploads/2013/05/ReviewMeApp.zip

Applying Styles to Windows Phone Text in Visual Studio 2012

I have no problem admitting when I’m wrong or stupid, and this may be one of those times where everyone else knew how this works except for me, but I’m posting about it in case anyone else out there had this issue. In Visual Studio 2010, you could click on the little peg next to the Style property in the Properties window for the selected TextBlock and get a list of available styles to choose from. I came to depend on this to choose the standard styles recommended for Windows Phone development.

When I first installed Visual Studio 2012 and the Windows Phone 8 SDK, I was surprised to see that none of the built in or locally defined styles show up for the Style property in the Properties window:

image 

I thought this was either a problem with my install, or something that would be fixed in a later release of Visual Studio 2012. Last week, Visual Studio 2012 Update 2 was officially released, and I looked again to see if the styles were showing up, and still no luck. This made me search the internet deeper and found out that the style picker still exists, it’s just moved, and it’s even better than the old one.

So how do you get to it? It’s actually easier. In the visual designer, just select the TextBlock you want to apply a style to, and right click. Then go to Edit Style and then Apply Resource. You should see something like the following:

image

Along with a nice visual preview of the style, you also can edit a copy of a style or create a new style. These tasks in the past were typically ones that you would have had to launch Blend in order to do easily, but now more of the Blend tasks have been brought into Visual Studio 2012. Hope this helps if you were as clueless as me in how to find how to set text styles.

Reading Lens, Next App Star, and Windows Phone Strategies

First of all, a shameless plug. My Reading Lens app for Windows Phone 8, an app that helps you read small text or text in dark places like restaurants, was selected as one of the top 64 apps out of 9000 submitted in the Windows Phone Next App Star contest. Tomorrow March 22 is the last day of voting in the first round, and I’m currently losing my head to head battle so I can really use your help. You can vote here:

Click Here for Next App Star Voting

This is a great initiative by Microsoft to increase visibility for quality apps that may or may not have achieved success on their own. There are hardware prizes, but I think the most important thing is that they will feature these 64 apps on the Windows Phone Store in the near future.

What I really wanted to talk about though was the Reading Lens app itself. It’s a great example of how I think you should approach Windows Phone (or any mobile development) if you haven’t already, or even if you have, how you might want to change your approach.

First of all, it’s an app I really needed. Think of something that you would want on your own phone and that’s a great start to coming up with an idea other people might need. It doesn’t have to be something you need specifically but I think it helps and there are good odds other people might need it too. I kept forgetting my reading glasses when I was in the grocery store or restaurants but I always had my phone with me.

Second, try to come up with an idea you can implement with relatively little effort. Reading Lens was based on my Windows Phone 7 app Reading Glasses. Reading Glasses was written in less than 15 hours. Reading Lens took a bit longer, but still less than 40 hours. After the success of Reading Glasses, I felt it made sense to spend a bit more time and integrate with Windows Phone 8’s Lens feature. Contrast this amount of effort with the amount of effort it took me to bring Popper 2 to Windows Phone. I spent hundreds of hours on this game and while it’s been well rated I’ve probably made a dollar or 2 an hour on it. That time would have been better spent creating a dozen or more apps like Reading Lens.

Finally, think about monetization. Reading Glasses was a free app with advertising, but people aren’t in the app long enough to really get a lot of ad impressions, and users complained that the ad took up valuable screen real estate and they said they would pay to be able to see the whole screen. I decided to make Reading Lens a paid app, and made it free for the first couple of months and now charge $.99 for it. There is a large button on the screen that asks users to pay for the app, and if they pay the button goes away. Besides that the app is fully functional.

My revenue so far is nothing amazing but it is far larger than the ad revenue from Reading Glasses. If I had it to do all over again, I would have made it a free app with an in-app purchase to remove the button and see the whole screen. Why in-app purchase instead of free with trial? Well when I switched from free to paid, my downloads dropped by a factor of 10. If I kept it free with in app purchase, my downloads would have remained the same as before and I’m certain my income would be at least 3 to 5 times higher than what I’m getting now.

I hope this peek into my experiences helps you with your own, and I’ll be happy to answer any more questions in the comments.

Developing games for Windows Phone or Windows 8? Check out Buddy.com

I’ll be posting more details about this soon, since I’m going to be using Buddy APIs for my new Windows 8 game, but I wanted to let game devs know about Buddy if they’re writing games for Windows Phone or Windows 8 and want to provide a networked high score system.

It’s been a bit of a sordid history for networked high score systems for Windows Phone and Windows 8. OpenFeint (now Gree) promised support and had a private beta but never released anything. ScoreLoop released Windows Phone support, were bought by RIM, promised they would keep supporting other platforms, and today said don’t worry Android devs with no word of Windows Phone.

Even Microsoft tried to help through the Windows Azure Toolkit for Social Games, but that offering has died off as well. So what’s left? You can write your own high score server, but you need to worry about spoofing and other attacks and you need to protect your keys, etc.

Or you can check out Buddy.com that provides an API for Windows Phone (7.1 and 8) and Windows 8. Buddy.com does a lot more than high scores, such as analytics, messaging, location services, etc.

What makes Buddy very interesting is that you can get 500,000 API calls for free PER MONTH, and if you sign up for Nokia’s Premium Developer program for $100 a year that is doubled to 1 million free per month. They also support async and await on Windows 8 and Windows Phone 8. Their game services offering is very robust and they are very open to feedback, so if it doesn’t do what you need they might make it happen.

XNA is dead, and this may be a good thing

It’s been pretty clear for a while that XNA didn’t have a future. Key team members either left the company or moved to other groups, and XNA hasn’t been a part of any new announcements for over a year. Some of the most concrete proof so far came to light today when Promit Roy shared an email from Microsoft about the future of the XNA MVP program. Learn more about Microsoft MVPs here.

Disclaimer: I’m currently a Microsoft MVP in Silverlight, but my first MVP award was in XNA, and I still have a lot of good friends among the XNA MVPs. Silverlight MVPs also have a hazy future but that’s a post for a different day.

After April 2014 the XNA MVP competency will cease to exist. Fellow MVP Andras Velvart speculated that this means that either the current crop or the next crop of renewals will be the last for XNA, since the term for an MVP is one year. I tend to agree with this, and in my opinion this means that April 1 will be the last time that XNA MVPs are renewed/awarded. 

With the end of the XNA MVP competency, it’s pretty easy to assume that XNA itself is not a technology that Microsoft will focus on going forward. This isn’t a surprise since XNA isn’t supported in Windows Store apps for Windows 8 or in apps for Windows Phone 8. Any questions about XNA support in Windows 8 were dodged or answered with an “it’s not supported”. Windows Phone 7.1 apps using XNA will still run on Windows Phone 8, but can’t take advantage of new features such as in-app purchasing.

If you’re an existing XNA game developer, things can seem pretty dire, but I would recommend that you embrace the MonoGame project. MonoGame arose originally out of my open source SilverSprite project but has taken it a lot further and they support most of the popular platforms including iOS, Android, Windows Phone 8, and Windows 8. It’s not perfect, but it’s getting better all of the time and it may turn out to be better over time than XNA because Microsoft would probably never have ported XNA to the competitor’s platforms.

XNA gained a pretty strong following, and with good reason. The lead developers on the team had a long history of working on commercial games so they knew what was really needed to help game developers get their job done. Unfortunately I think some of what they implemented to help game devs also led to their demise. The very powerful and flexible content pipeline, a way to get pretty much any assets in any form into XNA, either through the built in content processors or through custom content processors, was tightly integrated into Visual Studio C#. This is one major reason why we never saw official support for XNA using VB or other .NET languages, and I think it’s also why we haven’t seen support for XNA in Windows 8 or Windows Phone 8. It probably became just too expensive to keep updating this content pipeline for every new platform they wanted to support.

Currently MonoGame uses existing XNB files. These are the files that the build side of the content pipeline creates, so this means that for MonoGame you have to use an install of XNA to create the XNB content files you use in your MonoGame project. I know they’re working on this, and it’s even more important now for them to have their own way of generating XNB files.

So why do I think the death of XNA might be a good thing? Overall I’d rather XNA was supported going forward, since I love the technology and there are a ton of existing games using it that would easily port to Windows 8 if the option was available. The reason I think it may be good is for the same reason that I think the death of Silverlight could be good, as long as something better comes out of it. Windows Phone 8 is very similar to Windows 8 for development and from what I hear the next release will converge even more. The best guess across the board is that the next Xbox will support a very similar programming model. If this is the case, we finally are at a point where apps that you write for one of the platforms in the Microsoft stack will easily port to the others.

While .NET has been a constant through the last 12 years of Microsoft development, the other technologies built on top of .NET including WPF, Silverlight, WinRT, XNA, ASP.NET, etc. have been in a fairly constant state of flux. Writing Windows 8 apps in XAML is similar to writing Silverlight apps in many ways but there are some fundamental differences since the underlying framework has been almost completely rewritten.

Contrast this with iOS and Mac development. There are still APIs in iOS development that prefix the function name with NS. Why NS? NS stands for NextStep, the OS that Steve Jobs pioneered with Next computers and brought with him in his return to Apple. So while WinRT has been around for little over a year, the roots of Apple development are a lot deeper, and Apple doesn’t keep pulling the rug out from under their developers. I feel that Microsoft needs to do the same, and even if what they have isn’t perfect, at this point it’s more important to just stick with it and evolve instead of starting over yet again. Microsoft developers are tired of the churn.

As long as the death of Silverlight and XNA are part of a consolidation and a stabilization of the platform, I’m all for it, and it should have happened long ago.    

Many web developers are ignoring a big part of the market

A few months ago, I received an Ultrabook as a prize for a Windows Phone app contest. It was a sweet prize, but the resolution of the screen is the same as the Surface RT, specifically 1366×768. I tried to use this Ultrabook as my daily driver,  the screen looks great, plenty of storage, and an i5 CPU. The one problem was the screen resolution, but I thought I could deal with it.

After a couple of weeks I gave up on it and switched back to my work laptop. The sole reason was the vertical resolution, and the fact that many web sites didn’t provide a reasonable experience at a vertical resolution of 768 pixels.

Since the beginning of the web, developers coding to the resolution of their developer PC’s screen has been a common occurrence, but generally they’ve been forced to support either 800×600 or 1024×768, the most common resolutions of the time. Both of those resolutions fit into the resolution of my Ultrabook, so what’s happened since then? Are higher resolutions the norm now and my Ultrabook is relegated to the domain of Netbooks of the past where if you want to use one you’ll get by but you won’t have the ideal experience.

Let’s look at current statistics for the web. I think w3schools.com is a bit skewed but if it is, it’s skewed higher, so if anything these numbers are low.

At first glance, if you combine 1024×768 with 800×600, you’re looking at 14% of the market. This is much smaller than the number a year ago but still pretty big.

Now if we go to the “Higher” category, 1366×768 is at 18.7%, and 1280×800 is at 10.7%. Add the other resolutions 800 vertical and under and that’s another 3.3%. The total percentage of 800 vertical or lower is 14+18.7+10.7+3.3 or 46.7%. So almost half of the computers hitting the internet have 800 pixel vertical resolution or lower. Given this big percentage, more web developers should take a step back and not ignore this part of the market.

Follow-up to WebKit for IE… hint: I was wrong

My post from a few days ago about how Microsoft should give up on their own rendering engine for IE and adopt WebKit got a lot of attention. This was thanks in large part to Mary Jo Foley of ZDNet tweeting about my post. Thanks Mary Jo, as you told me later when I was getting a lot of negative feedback, at least it caused people to think about the issue. It also led to a lot of very knowledgeable feedback, and based on that I’ve been convinced I was wrong.

Please understand that whenever I post to my blog, I strongly believe in what I posted at the time. It’s not link bait, or trolling, or whatever you want to call it, and I’ve been accused of all of these in the past. That being said I’m more than willing to be convinced and the longer I spend in the computer industry the more I know that there are many many people more knowledgeable than I am on any topic. So I only hope that my posts can spur some discussion and I am more than willing, and even eager, to be convinced of the opposing viewpoint.

What drove the original post was a frustration of Windows Phone getting slammed left and right and mostly because of the fact that IE isn’t WebKit and many mobile web developers take the easy path and make sure their stuff runs good on WebKit. This is very understandable since WebKit probably accounts for over 90 percent of mobile web traffic. This being the reality, it’s frustrating to see sites like The Verge give negative reviews to Windows Phone because of the fact that IE doesn’t render the non-standard CSS on their site properly.

It seemed like the obvious solution to this is if Microsoft was to adopt WebKit and contribute back to it to make it better, and overall WebKit’s implementation of HTML5 would get better. The main opposing viewpoints were that by Microsoft adopting WebKit there wouldn’t be a strong opposing implementation of HTML5 to keep WebKit honest and work harder to properly support the standard, and since the IE rendering engine, Trident, is so core to Windows 8 Store apps and other apps via the web browser control, it would be very hard to swap it out.

So back to my original frustration about Windows Phone and having a default non-WebKit browser. This is a real issue and I feel now that I recommended the wrong solution. The better solution is to add the capability to Windows Phone 8 to choose an alternative default browser. This would leave it open to the browser providers such as Google, Mozilla, Opera, etc. to provide a better option on the platform. Specifying a different default browser is something you can’t do on the iPhone, and Windows Phone could easily turn it into some positive publicity. After all, Windows 8 lets you pick your default browser, so why not enable this in Windows Phone.

So in conclusion, I’m not afraid to be wrong, and I’m wrong pretty often, but it’s great when it leads to a discussion where a better solution becomes clear. In this case I believe the real solution is for Windows Phone 8 to allow you to pick your default browser.