Tag Archive | Windows Phone 7

Hull CS Blogs for Windows Phone v1.1

A few days ago an update which I’d written for the Hull CS blogs windows phone app went live.

Here are the release notes:

  • Updated splash screen to match upcoming Windows 8 MX Style App Splash Screen
  • Fixed a bug which meant that the last blog posts “abstract” could be covered up by the app bar
  • Various Minor Bug Fixes

ūüôā

I hope you all enjoy the latest version of the app

Danny

Advertisements

Hull CS Blogs for Windows 8 and the Windows 8 | Elite

Hull CS Blogs for Windows 8 - Main Page

I’m very happy to be able to tell you all that on Monday morning I submitted Hull CS Blogs for Windows 8 to the Windows 8 Store. The app supports most of the features that the Windows Phone and Android apps do, including caching of blog posts and tweets. The information source used for all the contributors will also be updated this evening, adding a¬†plethora of new contributors that we picked up in our recent marketing drive. This will add people to all 3 apps.

Below you can see some screenshots of the app, and above you can see a screenshot of the main page.

Hull CS Blogs for Windows 8 - Blog Viewer

Hull CS Blogs for Windows 8 – Blog Viewer

Rather than throw you out to internet explorer every time you want to view a blog you can actually read blogs embedded within the application. This is also supported in Windows 8 Split view – which allows you to use two apps at once by making one smaller and pinned to the side – as you can see in the image below.

Hull CS Blogs for Windows 8 - Split View

Hull CS Blogs for Windows 8 – Split View

Each contributor also has their own page within the application which shows their twitter stream as well as all of their latest blog posts.

Hull CS Blogs for Windows 8 - Contributor Viewer

Hull CS Blogs for Windows 8 – Contributor Viewer

Overall developing for Windows 8 has been a positive experience , especially porting from windows phone. I was able to retain a lot of the structure of the program as well as many of the objects from that project.

Another big bonus for making the app was the ability to join the Windows 8 | Elite program which, according to the website allows you to:

Elevate your app with the Windows 8 | Elite Programme. As an Elite member, you will be invited to exclusive networking and training events as well as opportunities to enhance the discoverability, quality and business value of your Windows 8 app.

To get into the Elite program you have to have written and submitted a Windows 8 Modern¬†Experience¬†app by October 26th 2012 — the day windows 8 becomes generally¬†available. Due to the fact that I have already done that I’m now in and apparently a Welcome Pack full of goodies is on its way to me. I shall update this blog when I find out what it contains! I’ve also been invited to a Windows 8 Launch party in London on the 26th, which is also quite exciting.

As the program progresses I’ll also¬†receive¬†access to extra training, help and resources from Microsoft including things not dissimilar from the Windows 8 camp I went to a few months ago.

Exciting times.

Danny

Introducing Hull CS Blogs for Windows 8

This week I’ve been working on porting my Hull CS Blogs app for Windows Phone 7 to Windows 8 (The PC & ¬†Tablet Operating System).

I’ve been able to use a lot of my code from the WP7 app, but making some changes. For example saving and writing files is now done through Local Storage using StorageFolder, StorageFile and Stream objects rather than through Isolated Storage on Windows Phone. It took me a while to get used to the new API’s but now I understand them I actually prefer them and think they make more sense. For example my code to load an XML file on Windows Phone 7 Looked like this:

public static void LoadXML(string Location, out XDocument XMLFile)
        {
            // Get the local storage directory for this application
            using (IsolatedStorageFile IsoFile = IsolatedStorageFile.GetUserStoreForApplication())
            {
                //Open the file and make it into a stream
                using (IsolatedStorageFileStream IsoSteam = new IsolatedStorageFileStream(Location, FileMode.Open, IsoFile))
                {
                    XMLFile = XDocument.Load(IsoSteam);
                }
            }
        }

And in Windows 8 it now looks like this:

        public async static Task LoadXMLAsync(string Location)
        {
            // Get the local storage directory for this application
            StorageFolder storageArea = Windows.Storage.ApplicationData.Current.LocalFolder;

            // Get the file itself
            StorageFile storageFile = await storageArea.GetFileAsync(Location);

            // Read the file in as a stream
            IRandomAccessStream randomAccessFileStream = await storageFile.OpenReadAsync();
            Stream fileStream = randomAccessFileStream.AsStreamForRead((int)randomAccessFileStream.Size);

            return XDocument.Load(fileStream);
        }

Whilst the Windows 8 code appears to be longer, to me it makes more sense, and that can be more important in projects such as ours in which the code is going to be handed over to other software developers. First you find the directory, then you find the file, then you use it. It’s the exact same way of accessing data as people do in real life, or through windows explorer.

At the moment I’m still working on the user interface. An interesting challenge of Windows 8 development, which I haven’t had to deal with before in Windows Phone development, is the large amount of different screen sizes and resolutions that devices can have. In Windows Phone 7 there was one size, ¬†800 x 480px.

The Windows 8 version of Hull CS Blogs should be available on the Windows Store before Windows 8 is available to the general public on the 26th October.

Danny

Microsoft Tech Center Day

A while ago I posted about how I had won the Windows Phone 7 Student Incentive Competition¬†which allowed me to “spend a day honing (my) skills and (my) apps with (Microsoft’s)¬†deep technical experts”. In a fantastic turn of events my housemate and great friend Rob Crocombe also won the competition meaning we could meet up in London, travel into Reading together and have a catch up after the long Summer Holidays at the same time as learning some really cool stuff at the Microsoft HQ.

When we eventually got to reading around 10:30 — I’d set off from home around 7:30 — we were given a security card to allow us to go around the building and shown to the demo room in the Microsoft Technology Center.

The demo room had seats along the back and a stage like area with several different sections, showing an office¬†scenario, to a home scenario, to a living room scenario with various computers, display technologies and communications tech. Slap bang in the middle of the room was a “Samsung SUR40 with Microsoft Pixel Sense”. Even the softies laugh at how bad the product name is since a certain other¬†piece¬†of Microsoft Technology¬†cannibalized¬†its original name, Microsoft Surface, to retain its secrecy!

The Student App Winners, Including Rob and I join Dr. David Brown round the SUR40 running NUIverse for a group photo

The Student App Winners, Including Rob and I join Dr. David Brown round the SUR40 running NUIverse for a group photo

The first talk we had was about NUI – Natural User Interfaces – and how they are changing the way computing works. We were very lucky to have this talk delivered to us by Dr. David Brown, the man who single¬†handedly¬†created NUIverse — an application which allows you to explore the universe using a natural user interface on the Samsung SUR40. We wound back all the way to Command Line Interfaces and how GUI¬†greatly¬†improved on the usability of computer systems for the average person, but still required some training to use, whereas Natural User Interface attempts to require no, or as little as possible, training to use.

NUIverse by Dr. David Brown - which was demo'd to us - Image credit: Mobilemag.com

NUIverse by Dr. David Brown – which was demo’d to us – Image credit: Mobilemag.com

We spoke in depth about how some parts of NUI, such as touch screens are already mainstream whilst some others, such as object identification isn’t.

After this fascinating talk we went on a break for lunch (Tip: Go to as many Microsoft events as you can, the free food is always great ;)) in which we spoke to other competition winners. After the break we were shown into a conference room where Ben Nunney — the same man who did the Windows Phone 7 Camp at Hull University at the beginning of the year — ¬†was getting ready to do a talk on preparing for Windows 8 application development.

The talk was on the same day as Windows 8 was released to manufacturing (also known as “going gold”) meaning that the code was finalized and sent off to the device¬†manufacturers. In other words Windows 8 version 1 was finished. There was a clear¬†excitement¬†around the campus, especially with Ben — for whom it was his second RTM day having joined the company just after “that operating system between XP and Windows 7 that didn’t exist” was released (Also known as Windows Vista :P)

Ben’s talk focused on introducing people to Windows 8 from a complete novice stand point and built up to showing off the development tools and telling us where and how we could get more help to port our Windows Phone apps or create entirely new apps for the system. A highlight of the talk was trying to make the Visual Studio Windows 8 Simulator work in the simulator, A.K.A “simception” ūüėõ

After this talk the 10 of us sat down with Phil Cross — the Academic Audience Manager at MS UK —¬†to discuss how to improve the Microsoft UK Student developer group, and how some of the talks could be improved, made more interesting and become more likely to have an affect on the number of people actively developing for Microsoft platforms. I said I thought students needed greater access to systems such as tablets for testing, perhaps through borrowing them from Microsoft and that “Dev Camps” at universities needed to be less about convincing people the platform was worth buying – almost like a sales pitch – and more about showing them developer¬†opportunities¬†and practically how to do things.

Obviously there are some logistical and financial reasons why not everything is possible, but it was good to have the dialogue. In the end I think both the students who won the competition and the Academic Staff at Microsoft both got quite a lot out of the day — I certainly learnt a lot and enjoyed myself.

Danny

What have I been up to?

I haven’t posted since I¬†received my results and felt it was time for an update.

Since I got back from Hull I’ve been working at my uncles company, Regtransfers.co.uk, who are the leading supplier of personal number plates. I’ve had several roles including contacting websites about Internet marketing¬†opportunities, finding companies that have names relevant to number plates we own and want to sell and, most interestingly, a Windows Phone 7 application.

Regtransfers already have an iPhone application and a “HD application” for iPad¬†as well as an Android app¬†available¬†on Google Play.¬†My aim was to make an application that offered all the same functionality of the other applications:

  • Search for number plates
  • Select a number plate and choose options for the acrylic plate (Flag icon, border colour) and see both the front and back plates (white and yellow)
  • Make Enquiries about selected number
  • Buy selected number using secure form
  • Order the Regtransfers Magazine
  • View the Regtransfers Youtube Videos

I also added a twitter feed which is not present in the other applications since the company has started to have a bigger social media presence recently.

The application isn’t finished but below you can see some comparison between the WP7 application I developed and the iPhone version which was outsourced:

Windows  Phones vs iPhone plate search comparison

Windows Phones vs iPhone plate search comparison

Windows Phone vs iPhone build plate comparison (WP7 version incomplete)

Windows Phone vs iPhone build plate comparison (WP7 version incomplete)

As you can see, I’ve taken quite a native look putting a lot of emphasis on the simplicity and “flat look” Windows Phone users expect in their applications — though I’m not sure I’m entirely happy with the background at the moment — it looks nice but it can make some of the text a bit hard to read.

Here are some more images of the WP7 application

Home Page - Emphasizing Search

Home Page – Emphasizing Search

Order a magazine

Order a magazine

Twitter Integration

Twitter Integration

Enquire about a Plate

Enquire about a Plate

What else have I been doing? Well, I’ve realised I’m not back for long so I’ve been spending a lot of time with my friends, family and girlfriend. I’ve also done a bit of work on my brothers website and a few secret projects ill be announcing soon ūüėČ

Danny

Windows Phone 7 to Windows 8 Day

The Commonwealth Club - Embankment - London

A few weeks ago a link was posted on the Microsoft UK Student Developer¬†Group detailing a Windows Phone 7¬†– Windows 8 weekend in London. Originally the location wasn’t released, presumably whilst Microsoft worked out how many people would come and how much room they needed, but eventually we were told it would be at the Commonwealth Club at Embankment in London. This is the nice building you can see in the above photo! The event itself was this weekend just passed, I couldn’t make the Sunday but thoroughly enjoyed Saturdays festivities.

It was a snazzy place, and a great place to stay for the day, but I’ll talk more about that later. The idea of the weekend was to show people how to port their application from Windows Phone 7 to Windows 8. It also showed off some of the new API’s, Runtimes and paradigms that make Windows 8 apps an improvement over those of the phone — though I’m sure there will be API and feature parity in Windows Phone 8.

When I got to the commonwealth club I was shown to the basement floor which had been taken over by Microsoft (the only company who would schedule a Phone related event in a basement with no phone signal ;))

One room was the “Work Zone” where developers could actively work on porting their applications from Windows Phone 7 – Windows 8 with the help of the Microsoft Evangelists.

The "Work Zone" -- Posh

The “Work Zone” — Posh

Another was the “Game Zone” where people could play Star Wars Kinect competitions to win prizes such as DAB radios. The final area was the “Talk Zone”, in which mini¬†lectures¬†were held with topics that had been voted in by the people at the event.

The C# 5 / .NET 4.5 / WinRT Asynchronous Framework

The most popularly requested talk, and therefore the one we got to see first was a talk on C#, .NET 4.5 and WinRT’s new¬†asynchronous¬†framework. Whereas at the moment to send a WebClient to fetch some data and then display it you’d have to do some code like the following:

//Actual simplified (i.e. no error reporting etc) code from the Hull CS Blogs app for Windows Phone 7

//Set up downloader somewhere
WebClient contributorsXMLDownloader = new WebClient();
            contributorsXMLDownloader.UseDefaultCredentials = true;
            contributorsXMLDownloader.DownloadStringAsync(new Uri("http://www.dantonybrown.com/hullcompsciblogs/contributors.xml", UriKind.Absolute));
            contributorsXMLDownloader.DownloadStringCompleted += contributorsXMLDownloadComplete;

//In another totally seperate place
public void contributorsXMLDownloadComplete(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                XDocument xdoc = new XDocument();
                xdoc = XDocument.Parse(e.Result, LoadOptions.None);
                contributorsList.LoadFromXML(xdoc, FileOrigin.internet);
                contributorsListBox.ItemsSource = contributorsList;
            }
        }

As you can see, we set it up and then at a later time the method we specified in the event handler earlier is called once the download is complete. If you have loads of these async calls, or worst yet async calls within async calls it all gets very confusing, very very quickly.

In C# 5 two new keywords have been implemented to ease this situation. Async, which as you can guess marks a method call as being one that is executed¬†asynchronously and await which says “don’t execute code under me until this async method is complete”.

For example we can convert our above code to a HTTPWebRequest using the new keywords. Look how simple it is!

public async void DownloadContributors()
{
       HttpClient http = new System.Net.Http.HttpClient();
       //Notice how we're awaiting this response right here rather than going to an event handler
       HttpResponseMessage response = await http.GetAsync("http://www.dantonybrown.com/hullcompsciblogs/contributors.xml");
       //We'll only get here once the response has completed!
       string result = await response.Content.ReadAsStringAsync();
       //Business Logic that would normally be in the event handler
       XDocument xdoc = new XDocument();
       xdoc = XDocument.Parse(result, LoadOptions.None);
       contributorsList.LoadFromXML(xdoc, FileOrigin.internet);
       contributorsListBox.ItemsSource = contributorsList;
}

It’s nice because everything is where it should logically be. Together. Anyway, theres a hell of a lot more to talk about that I can fit in this already packed blopost, for example any method which calls another method which is marked as async has to be async itself, but you can find out all this at Channel 9.

The Windows 8 User Experience (UX)

Metro is all about making an¬†experience¬†for the user, from Live Tiles which mean you¬†don’t¬†have to even enter an application to get its content to the exact alignment and size of text of titles, sub-titles and paragraphs in apps. Andrew Spooner delivered a great talk on how to achieve the best user¬†experience¬†for users when porting your application from Windows Phone to Windows 8.

Although a lot of things can be directly ported in some ways — a panorama application on Windows Phone can be a panorama application on Windows 8 — some things can’t. Windows 8 has no concept of a Pivot page for example.

A Pivot Screen - There's no similar control in Windows 8

A Pivot Screen – There’s no similar control in Windows 8

Because pivot screens are often used to filter content, in my example the blog pivot shows only blog posts whilst the twitter pivot shows only tweets, there are a few ways to get round the limitation. You could use an application bar, a context menu or change the overall layout of the page.

Andrew also explained about the different modes a page can be in. Landscape, Portrait or pinned to the side, and how to deal with each. You can find out more about redesigning your Windows Phone 7 application to Windows 8 or designing a new application from scratch here.

Windows 8 Contracts

The second most popular talk topic was contracts. I’ve written about my love for the idea of contracts before, when I attended the Windows 8 camp at The University of Hull a few weeks back.

The idea behind a contract is that it is a way for an app to communicate with other applications in a standard way, even ones it doesn’t know about. For example a share contract says “I have these images that can be shared”. Any application that can accept images then says “I can accept these images and do something with them”. Notice how the sharing application doesn’t say what it wants done with the images and the¬†receiving¬†application doesn’t tell what it can do — this is on purpose to allow more interesting¬†experiences.

If the user selects that your application it¬†receives¬†the images and can do anything with them, for example allow the user the edit them or share them straight to a social network. ūüôā Its all really cool stuff and allows¬†experiences¬†that no one would previous think of, the example given was a cooking application that shares pictures of food. An application that accepts pictures could then make it into an interactive Jigsaw. Why anyone would want to do this is unknown… by everyone. But you can see it allows us to do things we wouldn’t previously have thought of. I mean who, when writing a cooking application writes in a MakeJigsaw() method? No one ūüėõ But Windows 8 will allow this important functionality! ūüėČ

Search isn’t the only type of contract. Previously to this event I hadn’t seen the Settings Contract but it looks quite cool. It allows your app to store its settings in a uniform way within the right hand pane which comes up when the settings charm is pressed. Some of this might not make sense now, but it will when you use Windows 8. Its nice because it allows applications to have application specific settings in the same place as universal ones such as “Allow this app access to location data” ūüôā

Background Tasks on Windows 8

Background tasks on Windows 8 are very similar to background tasks on Windows Phone 7… apparently. I’ve never used them, but¬†it’ll¬†be a nice easy port for those people who have. There are all the sort of optimized background tasks you expect:

  • Media player (Audio AND Video, whereas on Windows Phone 7 it can only do audio)
  • VoIP
  • Background downloading
  • Update Tile and Notification

There’s also a generic background task which is unoptimized but allows you to do whatever you want. We were advised that this was a last resort and if we could use one of the more optimized background tasks to do whatever we wanted to achieve we should. Background tasks can be activated in several ways:

  • By a timer
  • When a certain condition is met (e.g. WiFi connection state changed)
  • By custom rules (e.g. Connection State changed && connection state is online)

In a background task you can write any code you want and are totally unlimited. The only thing to be aware of is that normal applications only get 1 second of background task CPU time ever 2 hours in order to retain battery life.

New in Windows 8 are notifications on the lock screen. 1 application, chosen by the user, can display its notifcations on the lock screen. Much like the calendar application does on Windows Phone 7. This chosen application is special because it gets 2 seconds of CPU time every 15 minutes.

Posh Food

One of the interesting but non-CS parts of the day was the dinner. It was kind of weird, but cute. Lots of small versions of popular dishes such as burgers, there are some pictures below.

The best kind of beer is free beer!

The best kind of beer is free beer!

We had a good choice of drinks too!

We had a good choice of drinks too!

The worlds smallest burger!

The worlds smallest burger!

Burger compared to a small tea candle

Burger compared to a small tea candle

Getting on the Windows 8 Marketplace for Day One of General Availability

One of the¬†opportunities¬†of the event was to discuss getting a “store token” which allows your application to be on the store the day Microsoft releases Windows 8, days — possibly weeks before your competitors. I spoke to¬†Paul Lo about this and should find out if I’ve successfully¬†received¬†a token soon!

Getting help with Hull CS Blogs for Windows 8

The best and most helpful part of the day for me was having a 40 odd minute chat with Andrew Spooner about porting my applications design to Windows 8. We used a programming statement and some use cases to think about the experiance — this was a methodology I¬†haven’t¬†used before and I found it incredibly useful, I shall be using it from now on!

A programming statement is a paragraph or two explaining what your application or program is all about, for example my one was

The Hull CS Blogs application aims to deliver the content of all the bloggers at the University of Hull Computer Science department to users in an attractive way whilst allowing people to discover more about each contributor, via the use of twitter streams and a list of applications they have worked on. The application will also deliver a regularly updated list of featured applications developed by people within the universities computer science department.

Having this statement allows you to have something to refer back to when you’re thinking about features, for example. “I’m writing an application which allows people to discover about the contributors through the use of twitter, do I need to have a reteweet feature?” Well, the use of twitter in the application is to discover things, not¬†necessarily interact with content, so this should be left out til a later release where there¬†aren’t¬†other more important features to be developed.¬† (By the way, this idea was actually one discussed about the Hull CS Blogs application)

A set of use cases are the “stories” of how you envisage people using your application. For example one of mine was

Russell has missed a guest lecture at university, he wants to read up about it and knows that his fellow computer scientists will most likely have blogged and tweeted about it. He opens the Hull CS blogs app and views the latest blogs and reads a couple. He then looks at the latest tweets for more minute by minute information, and then drills down into James’ contributor page because he cares about james’ opinion and wants to see more about what he has to say about the event both via twitter and his latest blog posts.

Reading this makes you realise what features are crucial to your app. So in this situation you would need.

  • Latest blog list
  • Feed of all tweets by all users
  • A page for each user

Without this user case I wouldn’t have thought about implementing an overall twitter feed in the main panorama rather than just a per user feed in each contributors page.

Anyway in the end we went from these initial designs, which are essentially a direct port of the Windows Phone app:

Main Panorama Initial Idea - Hull CS Blogs for Windows 8

Main Panorama Initial Idea – Hull CS Blogs for Windows 8

Contributor Page - Hull CS Blogs Windows 8

Contributor Page Initial Idea – Hull CS Blogs Windows 8

To this overall view of the application in a hierarchical order:

Andrew Spooners improvements On My Initial Ideas - Entire App - Hull CS Blogs

Andrew Spooners improvements On My Initial Ideas – Entire App – Hull CS Blogs

I will be using this design for the actual version of the Hull CS Blogs app for Windows 8, so check back here to hear more about that.

I apologise for the length of this post but it really was such a packed day! I hope this blog has made you look forward to developing for Windows 8 and porting your existing WP7 applications, because I certainly am! I’d like to thank Microsoft for treating me so well as they always do, with lots of support, free drinks and some amazing free food. Truely an¬†experience¬†worth remembering!

Danny.

Hull CS Blogs now available on Windows Phone and coming soon to iOS

Hull CS Blogs on the Windows Phone Marketplace Web Store

Friday night the Hull Computer Science app for Windows Phone 7 finally got certified and accepted onto the marketplace. I say finally but it has to be said that this is the quickest an app of mine has passed through the process — taking just 3 days as opposed to the normal 5.

It’s also the first time I have passed certification first time, which can’t be a bad time. It’s safe to say that the beta I mentioned in my previous blog post definitely¬†helped, as well as me being more stringent¬†about having built in error checking around methods that could fail (for example a network request or file I/O operation).

If you want to download the application you can do so by clicking here.

Again a special thanks to the following people:

  • John Van Rij for his help with the back end of Hull Comp Sci Blogs.com
  • Rob Crocombe for general support throughout the process and the icon design
  • Rob Miles for the photography used in the application

In other exciting news fellow blogger and Hull Computer Scientist, Cameron Wilby, is porting my application to iOS, the operating system which runs both iPhones and iPads. You can see some very early builds of this in the images below:

Hull CS Blogs for iPhone by Brownsoft and Wilby Software - About Page

Hull CS Blogs for iPhone by Brownsoft and Wilby Software – About Page

Hull CS Blogs for iPhone by Brownsoft and Wilby Software - Contributors Pane

Hull CS Blogs for iPhone by Brownsoft and Wilby Software – Contributors Pane

As you can see its a direct port, with all the same features as the Windows Phone 7 application. I’ll start work on the Android version soon, and then we’ll have total Smartphone coverage across the 3 main platforms! Good stuff!

Danny