Windows Mobile 6 SDK is not out!

Looks like you can now download the new SDK for Windows Mobile 6 Standard (Smartphone) as well as for Windows Mobile 6 Professional (PPC Mobile). I reckon the new names are far too long. Looks like they were prematurely uploaded.

But from what I’ve read, the next version of Windows Mobile will combine the features of both the Smartphone and the PPC, rather than having two seperate versions. So perhaps the current naming is just a step in the path of what’s to come?

Haven’t had a look at them yet, but for a rundown of what’s new, check out the MSDN article.

The great news from my perspective as a mobile application developer is that .NET CF 2.0 as well as SQL Server Mobile 2005 will come preloaded in the device ROM. Which means less things to install for end users.

From the MSDN article, we also learn that there’s also a new Fake GPS utility for the Emulator so you can test out the GPS features in your apps. In addition to a brand new cellular emulator to enable testing of the incoming call, incoming SMS, dropped calls and dropped data connectivity scenarios. That’s more good news for developers!

I wonder if that’s really just an extension to the “bounce back” feature we had previously? Eg: Call +14250010001 in your emulator, and you’ll get a call connected. And if you send an SMS to that same number, you’ll get a new SMS in your Inbox from that number.

And another interesting feature from that article is a Inking API (a lightweight version of what’s available for the Tablet PC).

From all the new Windows Mobile based devices I’ve seen over on Engadget Mobile (as well as several other websites/blogs) over the past year I think this year and beyond are only going to get bigger for the Windows Mobile based industry. There seems to be several new devices from manufacturers including HTC, Toshiba, LG, Gigabyte, ASUS and probably a few others I haven’t mentioned.

Looking at all the new mobile devices makes my i-mate SP5 start to look a little dated now…

Customising your Windows Mobile Smartphone and Pocket PC

Windows Mobile 5.0 Pocket PC Edition today screen customisations:

Guide to creating Windows Mobile 5.0 Pocket PC themes via Xda-Developers.com.

Windows Mobile 5.0 Smartphone Edition homescreen customisations:

Homescreen Guide for Beginners via MoDaCo.
Customizing the Microsoft Smartphone 2002 homescreen via MSDN.

Although the second link refers to the Smartphone 2002 version, many things seem to be quite similar.

I think what’s interesting is that you can create custom Smartphone homescreens using just a single background image, and an XML file. That makes things pretty easy to create.

There are apps out there that can help you create themes for either the Smartphone or the Pocket PC.

But I think for the time being, if you only want to dip your toes in the water without wanting to fork out any money, the guides from Xda-Developers and MoDaCo should get you started.

If you’d rather just download themes rather than making your own, then here’s a few sites you can download free ones:

Smartphone:
http://smartphone.kleinweder.ch/downloads/index.php
http://jdskins.com
http://www.kolumbus.fi/anders.ruohio/skinz.html

Pocket PC:
http://www.kolumbus.fi/anders.ruohio/skinz.html
http://www.pocketpcthemes.com

Mobile Client Software Factory (aka Mobile Baseline Architecture Toolkit)

Just noticed that there’s a Compact Framework version of the Smart Client Baseline Architecture Toolkit called the Mobile Client Software Factory available now.

Francis K. Cheung has a series of posts on his blog about issues relating to porting to the Compact Framework.

On a side note, is anyone else heading to MEDC 2006 in Melbourne?

Edit: Looks like Nick Randolph has a series of posts on the Mobile Client Software Factory.

More Windows Mobile devices

Awesome, looks like there’s going to be even more Windows Mobile based devices hitting the market.

See this post at MyPDACafe (via Jason Langridge’s blog) about new devices being manufactured by Chinese device manufacturer, Tech Faith Wireless (TFW), which looks like it will be going head to head with another Original Device Manufacturer (ODM) that is quite well known these days, HTC. HTC is the manufacturer of many of the current crop of popular Windows Mobile based devices being rebranded as i-mate, QTek, O2, Orange (as well as several others).

Can’t wait til these devices hit the market. Hopefully, more competition resulting in lower prices and a bigger market share for Windows Mobile based devices. It can only be a good thing for Windows Mobile developers, right?

Only allow full synchronisations when a WindowsMobile device is cradled

When developing a Windows Mobile based application, you’re often presented with the “I want everything synchronised between my device and my PC” scenario.

While yes, it’d be great to have everything synchronised when you’re on the go (via GPRS, etc), and having little changes filtered through to the device.

The little changes is fine, but what about doing a full synchronisation? Surely, you wouldn’t want users to do a full sync whilst out on the road with data being charged per kilobyte (at a high rate)?

I’m not too sure how the data rates (for GPRS) are overseas, but over here depending upon your telco, it does get quite pricey after you go beyond your alloted monthly data allowance.

One way of disabling a full synchronisation whilst on GPRS is to use the SystemState.Changed event to detect when the device is cradled.

Here’s an example (using Windows Mobile 5.0’s managed API and C#):

public class Form1 : Form
{
Microsoft.WindowsMobile.Status.SystemState systemState;
public Form1()
{
systemState = new Microsoft.WindowsMobile.Status.SystemState(Microsoft.WindowsMobile.Status.SystemProperty.CradlePresent);
systemState.Changed += new Microsoft.WindowsMobile.Status.ChangeEventHandler(systemState_Changed);
}

protected void systemState_Changed(object sender, Microsoft.WindowsMobile.Status.ChangeEventArgs args)
{
// Show whether the cradle is present
MessageBox.Show("Is the cradle present? " + Microsoft.WindowsMobile.Status.SystemState.CradlePresent.ToString());
}
}

The above is just some sample code that you can modify to meet your requirements.

You could use the boolean value returned by SystemState.CradlePresent to toggle your full synchronisation option.

You should also check out the State and Notification Broker sample that comes with the Windows Mobile 5.0 SDK.

Why Compact Framework?

Most readers who’ve been following some of my past posts will know that my head is currently buried deep in the Compact Framework, and allowed to poke my head up on occassions to get back to the web stuff.

Some days I wonder around the web looking at .NET CF related articles (it’s all part of the learning process) and I generally get the impression that it’s a great area to develop in, but how do you convince everyone else?

The mobile phone is almost everywhere. It’s quite rare to walk into many places and not see someone with one. I remember while I was still at University that some people said they used more than one phone on a regular basis (they different phones on different networks). And I think as more cheaper MS Windows Mobile based devices come onto the market, the more of those people will be jumping onto that bandwagon. My guess is that the Windows Mobile based devices is a growing market, and is growing at an interesting rate. I don’t have figures on it, but it just seems to be. And there are definately a lot of new devices being released much more often.

Anyway, I came across this blog post by Mike Zintel (.NET CF Group Manager) tonight. First reaction? “Holy s*. They have .NET CF on an XBox now?”

Ok, I think more specifically it is something called the XNA Framework, which allows you to write games in managed code and run it on an XBox 360 and on Windows. Like SQL Server 2005, they are going to put a version of the CLR (Common Language Runtime) onto the XBox 360. (They have a March CTP available of the XNA Build. Seems like it is an “add on” for VS 2005.)

And suddenly you have this beast where .NET developers around the world who would like to write games in their own free time (if any) can do so easily. And who knows, maybe Microsoft will open up XBox Live a bit and allow these developers to sell their game(s). Yeah, I doubt the games will be to the level of the professional studio stuff. But it could potentially be something quite interesting. There’s definately a lot of .NET developers out there developing for various different platforms (Windows Mobile [Compact Framework .NET], Windows [.NET Framework] and for the Web [ASP.NET]).

Oh, and did anyone hear about that news on WPF/E (WPF/E == Windows Presentation Framework Everywhere. WPF was formerly known as Avalon, and to put it in even simpler terms, it allows you to build UIs using XML and then developers can handle the expected behaviour/interaction experiences in Managed code)? Some more specifics, and demos of it were shown recently at Mix 06. Sounds really promising. At Mix 06 they also said that Atlas has a go live license now.

Thinking In Mobile

One of the interesting issues with my transition from being a Web Developer (ASP.NET) to being a Windows Mobile Developer (CF.NET) is the issue of memory management.

We all know that the little devices don’t have nearly as much memory as our more basic computers sitting around the office.  So naturally, the memory management side of things will be slightly different.

Awhile ago I was able to consistantly produce an OutOfMemoryException on a form that retrieved about 30+ rows of data from a web service, and then insert it into a Sql Mobile 2005 DB.

Recently I came across a “Memory Problems FAQ” (written by CF.NET MVP Daniel Moth) which is dedicated to memory issues with regards to the Compact Framework. It’s a good read for those moving from the full Framework, to the reduced compact Framework. Oh, and if you’re going to develop for the Compact Framework, it’s always interesting to read about how the nuts and bolts work. Or in this case, how the CF.NET Garbage Collector works.

While i’m still Thinking in Mobile, I honestly believe the Microsoft Windows Mobile powered devices (Pocket PC Mobile Ed and Smart Phone) are getting better with each generation of both the OS, and the devices. And i’m sure it will keep on getting better.

And i’m sure they’ll get cheaper too. Right now there seems to be a new Windows Mobile powered device mentioned on E ngadget every month or so.  So my take on it would be, the more devices on the market, the more the prices will be driven downwards.

I think what we need to see more of though, is 3G capable devices. Especially in the Australian market, given that all four major carriers offer 3G services.

That, and the increased speed and bandwidth available through 3G services over GSM networks.

I know there are a few Windows Mobile devices that are capable of running on a 3G network, such as the i-mate JasJar.

There will come a day when the Telcos, either individually, or collectively just “turn off” the GSM network. Heck, the 3 network (Hutchison & Telecom) have stated that they plan to migrate people off their Orange CDMA network and onto the 3 service. There is not much point for Telcos to run more than one network if the other networks they run add up to a small percentage of their revenue.

I think, if you’re not developing for .NET CF devices today, you should seriously think about it. Mobile phones are everywhere today, and this is a boat you may want to jump aboard. Even if it’s just hacking together something for yourself and a few friends who also own Win Mobile devices. Hehe 😛

A few interesting Microsoft Windows Mobile Technical Articles

Just found a few Windows Mobile Technical articles in the Microsoft download center.

You can download them from here.

The articles touch on a few different areas including .NET CF apps using VS2005, introduction to the new Windows Mobile 5 Managed APIs. Mappoint Location Server, developing multithreaded apps using .NET CF 2. As well as a few others that touch on different areas of mobile development.

Oh, and do check out Rory’s TinyThings videos on Windows Mobile 5.0 and .NET CF 2.0.

My .NET CF 2.0 development has been going well, but I’m finding a lot of articles that are all about WM5/CF2. And not as much WM 2003/CF2. But that’s probably the nature of things at the moment. Everyone wants to target the latest and greatest. I’m not complaining though, at least I still get to utilise CF 2.0 in VS2005 (as opposed to CF 1.0/VS2003).

Guess that’s the reality of working life, as opposed to doing “theoretical work” (ie: stuff done in uni) where you can just target the latest and greatest, and as long as you can get it working in the emulator, it’s all fine. The other thing to remember is that a lot of the Telcos in Australia aren’t selling any WM5 devices (well, it’s not on our list for the plans we’ve selected).

Chris Tacke: Smart Device Framework 2.0 documentation released

Chris Tacke has posted a link to OpenNetCF’s Smart Device Framework 2.0 documentation.

Chris also mentions in the same blog post that they are “extremely close to a beta release of SDF 2.0”.

Cool, that is very good news for all those developing for Mobile Devices using CF.NET 2.0 in VS 2005.

I’m definately looking forward to it, I’m currently using a few features that come with SDF 1.0 alongside CF.NET 2.0 running on Win Mobile 2003.

Going from the web development world (and a bit of desktop dev) for quite awhile (almost 2 years at the current job) to the Mobile device development world is very very different. (Not everything is different, it just feels different). Or maybe it’s because i’m coupling the move alongside the move to a newer IDE.

It poses fresh challenges for me though, some things I can bring through with me going from targetting web browsers, to little mobile devices include my programming language of choice (C#) and a reduced .NET Framework (and extended where appropriate) amongst other things.

 

On a side note, what’s with the 40+ degree heat in Melbourne today? It’s just way too hot. And made me feel sorry for the tennis players playing tennis in that heat!