by Mister Goodcat
17. January 2012 08:06
I'm happy to announce that starting today, my complete "Turn Out" Windows Phone training is available for free to anyone. In the past, individual parts were available to the public already, but now you can watch this whole series of development training, with over 20 hours of screencast material, at no cost.
The training walks you through the development of a small game for Windows Phone (that is also available in the Marketplace for free) and shows various aspects of programming for the platform, including:
- Working with MVVM
- Unit testing
- Creating user controls
- Visual States, Triggers, Actions
- Animations
- The application bar
- Tombstoning
- Sharing code between platforms (the project includes a WPF level editor)
- Working with the Toolkit (in particular, the LongListSelector)
- Advertising (both Microsoft's SDK and AdDuplex)
- Creating an about page
- Profiling your app to identify and resolve performance problems
- Details of the submission process
The training is targeted at "Mango" and makes use of its new features, and of course the full source code for every session, including the final product, is available too. You can find the training here:
http://www.goodcat-trainings.net
I hope you all will enjoy this; have fun developing for Windows Phone!
by Mister Goodcat
11. January 2012 01:30
Over the last weeks, some users of my project "YLAD" brought some additional localization scenarios to my attention. This resulted in both some improvements to the project itself (which I've just released as a new version on CodePlex and NuGet), and the need to talk about some obstacles you might come across. More...
by Mister Goodcat
10. November 2011 16:49
I have strong faith in Microsoft's code quality. When I run into problems and errors in my components, I always assume I did something wrong. Why shouldn't I? In almost all cases it indeed is me who has done something wrong – apparently I'm very good at screwing up :). Unfortunately, in some cases it's not me.
"Unfortunately"? Yes. When it's my fault that code is not behaving correctly, I can simply go ahead, review or debug, and fix it. If it's a bug in the runtime or platform however, I have to find a way around it somehow, and a million other people are potentially affected by it too. Seems like the worse alternative to me. This posts describes a particular bug with WP7 developing and hopefully saves some of you some time in the future. More...
by Mister Goodcat
3. November 2011 18:42
Shortly after I got my Windows Phone I had the idea of creating an app that lets me remotely control my desktop computer. The reason for that was that lazy me needed to use a clumsy and error-prone full-size wireless keyboard and mouse when I wanted to surf the web from my couch, using the small media PC connected to my TV set. Wouldn't it be nicer to use the much more handy mobile phone as input device? Unfortunately the RTM version of Windows Phone was missing some networking features for that – using web services or http wasn't what I was looking for. The Mango release changed that, because TCP/UDP socket support was added to the platform. More...
by Mister Goodcat
27. October 2011 15:33
When you're developing an application or component that does some sort of background processing, you are often in need to dispatch messages back to the UI thread, for example to report progress to the user, to otherwise manipulate UI elements, or to execute any logic that is bound to the UI thread by platform limitations or similar circumstances. On Windows Phone, a simple way to do this is to use the globally accessible Deployment.Current.Dispatcher object that allows you to post messages to the UI thread. More flexible methods capture the current (dispatcher) synchronization context, if applicable, and use that to post messages, for example. No matter what method is used, there's a subtle problem with that which can come quite unexpected. I don't dare to call this a bug (yet); I think it is simply a side effect and logical consequence of how the application lifetime is handled on the phone, however if you're not prepared for it, it can cause a lot of confusion. More...
by Mister Goodcat
7. October 2011 21:57
To celebrate the fantastic "Mango" release for Windows Phone 7, I decided to grant a permanent discount of 50% for my on-demand trainings to all Windows Phone developers. Even better, if you have already bought a subscription in the month that the trainings are online now, I'm pleased to announce that you will receive a 50% refund of your payment automatically in the next hours!
But wait, there is more! Starting today, another part of the training series is made available for free. In the 70 minutes video number 16, you will learn about profiling on the phone and how to use this technique to analyze and improve the phone application that is built in the training, demonstrated on real hardware. I hope you enjoy this new part and the new price policy of the training. As always, feel free to drop me a note with any feedback or suggestions you have.
You can find the trainings and the new free video here: http://www.goodcat-trainings.net
by Mister Goodcat
1. October 2011 19:44
Update 2011-11-17: A recent update for HTC phones is confirmed to fix the issue for the Trophy (firmware 2250.21.51002.161), Mozart (firmware 2250.21.51007.401) and HD7. The last remaining phone model affected (that I know of) is the Dell Venue Pro.
When I connected the Samsung Omnia 7 I mainly use for development and testing to Zune today, I received a notification that (yet another) Samsung update was available. I had updated the device to Mango very early already, and received a firmware update back then, so this was kind of unexpected. After installing the update, the newly reported firmware version on the phone is 2424.11.8.5. Curious about what has changed with this update, I ran a few tests, and the most satisfying finding was that this update has fixed the UDP bug I have posted about a few days ago. But wait, there's more! More...
by Mister Goodcat
30. September 2011 08:42
I went through all of my previously published posts on Windows Phone 7.1 "Mango" to make sure they're still valid for the RTW version of the developer tools, and that the included source code still works with both the emulator as well as on devices updated to the final version of Windows Phone OS 7.5. The articles have been updated where necessary, and the "beta warning" has been removed. You can now be sure that everything described in these posts fully applies to the final version of "Mango".
by Mister Goodcat
22. September 2011 11:34
Update 2011-11-17: A recent update for HTC phones is confirmed to fix the issue for the Trophy (firmware 2250.21.51002.161), Mozart (firmware 2250.21.51007.401) and HD7. The last remaining phone model affected (that I know of) is the Dell Venue Pro.
Update 2011-10-01: A recent firmware update from Samsung fixes this bug for the Omnia 7! Read more on the topic here.
Update 2011-09-30: This article is compatible with the final version of Windows Phone 7.1 "Mango". All the findings here are (unfortunately) confirmed using the RTW version of the developer tools as well as real phone devices updated to the final version of Windows Phone OS 7.5.
UDP is a popular protocol in networking when you want to establish simple communication that does not require all packets to be reliably transmitted. The fact that with UDP (unlike with TCP) all packets are transferred individually somewhat simplifies the application level protocol and algorithms required to parse the data on the receiving end (you can find a post of mine about TCP on the phone with sample code here). And finally, UDP is perfect for time-sensitive applications that want to have a pseudo real-time communication without the need to wait for dropped or delayed packets to arrive or be resend. With the Mango release, UDP support was added to Windows Phone 7. Unfortunately, some of the fundamental benefits of UDP apparently are broken by the current implementation. More...
by Mister Goodcat
5. September 2011 18:25
This morning I have unlocked a new on-demand training for Windows Phone 7 development on my training website for public access: http://www.goodcat-trainings.net
The training teaches and guides you through the development process of a real Windows Phone 7 application that you can find in the Marketplace here. Feel free to download this app (it is a small puzzle game) to your phone and take a look at what you are going to build in the training. After 18 individual parts and more than 20 hours of video content, you will have learned a lot about the platform and how to create nice and clean code for it, and you will of course have access to the full source code of the application as it is available at the moment – free for use in your own projects without any restrictions.
Apart from the obvious Windows Phone 7 specific technical features you are going to learn about, this training also covers surrounding topics; it teaches in particular about best practices and how to create reusable components (some of which you can continue using after the training right away). You will see how you can apply patterns like MVVM to your application, and it demonstrates the benefits of doing this throughout the course. After taking this training, you will be able to do unit testing on the phone, you will have learned about what profiling is and how to use it to detect and fix performance problems in your application, and we will have covered additional topics like advertising on the phone, and detailed preparation of the submission process. The training is fully based on Windows Phone "Mango", but one of the sessions also explains what needs to be done to achieve RTM compatibility, and talk about what your options are to target both platforms to reach as many users as possible.
The first two sessions of the training are available for free, without even the need to create an account with Goodcat Trainings. Go ahead and take a look, and please consider buying a subscription if you like what you see :).
Let me know if you encounter any problem, or if you have suggestions for future improvements or additional topics that you want to see covered in my trainings – I'm always glad and thankful for feedback. Thank you!