BlockAddiction V2.0 online now

by Nico 23. February 2012 07:47

Version 2.0 of BlockAddiction has passed marketplace certification and is available for download now. The biggest change is the all new Time Attack mode where you have to survive for 60 seconds and score as high as possible. Game Over means no score.

BlockAddiction has reached well over 400 downloads and is available on Windows Phone marketplace (Link).

I was thinking about an About page and advertising but I figured ads could ruin the experience and I completely forgot about the About page. Glimlach I might add it in the future but for now my focus shifted to some other projects.

If you’ve got ideas, bug reports or some other feedback, leave a comment, contact me via Twitter or send me a mail!

Tags:

XNA | WP7 | .Net | Devices

Windows 8–the road so far

by Nico 10. February 2012 15:57

So it’s official, the Windows 8 beta, nicknamed Consumer Preview, will hit the worldwide web on February 29th. Time to list what we know so far.

For consumers:

  • the classic start menu has been replaced by a Metro interface, still unsure if there will be an option to bring back the classic menu
  • the windows desktop has now been extracted from the kernel and is just an app
  • Windows 8 utilizes much less resources then Windows 7, allowing it to run smoothly on weaker hardware
  • boot time is impressive, it takes mere seconds to launch. The cause is the fact that Windows 8 doesn’t shutdown completely, it’s kernel goes into hibernation. When you do a hard reset of the device you’ll notice that booting takes more time but it’s still noticeably faster than Win 7
  • Windows 8 will have two types of applications, the classic ones like we know them on Win 7 and Metro style applications. These Metro apps run completely full screen, no chrome like titlebars or borders
  • Metro apps run either full screen or snapped, running side by side with another app (even desktop apps)
  • Windows 8 comes with it’s very own Marketplace. Here you can download all kinds of Metro style applications
  • the ribbon that has been in Office since version 2007 now makes it’s way into the Windows explorer but it will be collapsed by default
  • Pinball and solitaire are installed games by default. Available in the store at launch will be:
    • Hydro Thunder
    • Toy Soldiers
    • Reckless Racing
    • Angry Birds
    • Ilomilo
    • Rocket Riot
    • Full House Poker
    • Tentacles
    • Crash Course
    • Ms Splosion Man
    • Wordament
  • Following apps will be included in the Consumer Preview
    • Camera
    • Messaging
    • Mail
    • Calendar
    • SkyDrive
    • People
    • Photos
    • Video
    • Music
  • Win 8 will be available on x86/x64 cpu’s and for the first time on ARM, mostly used in tablets
  • ARM versions of Windows will have both desktop and metro interface and comes with Office 15, a new Office version
  • Your profile (settings, wallpaper, …) will be synched to skydrive so that every time you buy a new Win 8 pc you don’t need to set everything manually
  • Refresh and Reset options, a refresh will keep all files and folders but will put Windows back in a fresh installed state, removing all installed applications and settings while a reset will do the same but also deletes all files and folders for all profiles
  • native USB 3.0 support
  • Windows 8 can mount and browse ISO and VHD files
  • UEFI Safe boot to prevent boot sector virusses
  • full backwards compatibility

For Developers:

  • anyone with XAML experience will be able to build Metro apps
  • Metro style takes a lot of the concepts of Windows Phone 7 and Silverlight
  • Instead of using the dreadful Win32 API developers can now use WinRT which provides a much cleaner way to interact with the OS
  • Metro apps are NOT .net code
  • .net 4.5 is included in Win 8
  • Metro apps in C#/VB/C++ + XAML or Javascript + HTML

 

Windows 8 will be pretty different compared to win 7. The developer preview has been out since September and I’ve been using it on a Iconia Tab W500 tablet since December. At the time I started using it I also had an iPad 2 but there’s just something special about a full blown OS on a tablet device, especially when running Win 8. I like the OS so far. The developer preview has lots of bugs, obviously, so I’m very curious about the performance and stability of the Consumer preview. Due to the stability problems I haven’t spend much time developing metro apps, this will change with the consumer preview. I’ll probably start by converting my WP7 apps to Win 8. More about that when I get to it.

Tags:

.Net | Windows programming | Windows 8 | Metro

Windows Phone 8, first official details!

by Nico 2. February 2012 22:18

A video of Joe Belfiore detailing Windows Phone 8, codename “Apollo”, to Nokia has been leaked. The video has a bunch of rumors that are confirmed and some new features that will find their way into Microsoft’s next mobile OS.

The new features are:

  • Data Smart: your phone being smart about what network to use, this includes support for carrier wireless networks.
  • App-to-App communication. WP apps are sandboxed, in WP8 apps will be able to communicate with each other on a lower level then deeplinking by utilizing some sort of contracts.
  • Internet Explorer 10 Mobile. next gen mobile browser, based on the IE10 desktop kernel
  • Shared components with Windows 8. The kernel, multi-core processor support, sensor fusion, security model, network, and video and graphics technologies are all coming from Windows 8.
  • Companion experiences with Windows 8. the xbox companion app will be integrated into the system. Skydrive will have a deeper integration. All this will give the possibility to share content across phone, pc, console, … Also Zune will make place for some sort of new ActiveSync client, ow yeah! As much as I like Zune, activesync is just better.
  • Skype app. Still a separate but better app and not integrated into OS.
  • NFC and Wallet. Google wallet but coming from Microsoft, so obviously the same but better Glimlach Up to the carriers if they’ll support it. It will work both from build-in NFC chips or by special sim cards that have an on-board NFC chip
  • Local Scout. Now with personal recommendations and support for carrier hotspots.
  • Camera improvements. more powerful experience and some sort of “lens” app, we’ll have to wait and see what this means.
  • Business features. WP8 is targeting the  business again with features such as complete bitlocker encryption, secure boot check, system center integration, Exchange activesync policies and inventory possibilities. And, and this one’s kinda big, private appstores for businesses! That’s right, your in-house, employee only apps can be hosted on a private store.
  • For Developers: the CE kernel is boosted out in favor of the Windows 8 kernel, WP7 apps will be fully backwards compatible. With the new kernel comes support for native code, C++ developers rejoice! This makes porting ios and android apps easier and will make certain very popular apps finally come to our beloved platform.
  • Hardware: 4 resolutions, swappable SD card support, multicore CPU, NFC.

In my opinion, if Microsoft can deliver these features WP8 will be HUGE! This makes the Windows Phone platform on par with the competition and on some levels it exceeds them. Big kudos to Microsoft for making this happen in about 2 years, both Apple and Google have spent over 5 years to get to these kinds of functionality. Only two things remain in the dark, will our current devices get an upgrade? And will they pull this off? WP8 is rumored to roll out in the 4th quarter of 2012.

And remember Joe Belfiore, nothing remains hidden on the internet.

Tags:

WP7 | WP8 | Devices

Techdays Belgium 2012

by Nico 2. February 2012 08:27

So Techdays is right around the corner and I’ll be attending for the third time.I’ll be attending all kinds of sessions going from Windows 8 development to the complete deep dive track on web to my favorite subject, Windows Phone 7 development. I’m also excited about the Scott “The Gu” Guthrie doing the opening keynote and doing a session the second day. Also presenting this year is Laurent Bugnion, the father of the awesome MVVM Light framework.

Here’s the list of sessions I’ll be attending, this list is subject to change depending on if I change my mind the last minute, as I’m known to do sometimes Glimlach.

Tuesday February 14th

  • Opening keynote with Scott Guthrie
  • Welcome to the Metro Application Platform
  • Windows Phone Fast App Switching, Tombstoning and Multitasking
  • The Future of C# and Visual Basic
  • Devices + Cloud: Using Azure on iOS, Android, Windows Phone, …

Wednesday February 15th

  • ScottGu unplugged
  • Take a ride on the Metro
  • The zen of async: Best practices for best performance
  • MVVM Applied: From Silverlight to Windows Phone to Windows 8
  • MVVM & WCF RIA Services: an architectural story
  • Building a data intensive application

Thursday February 16th

This is a deep dive day, I’ll be following the web track that focuses on what’s new in ASP.net 4.5 and Visual Studio 11

 

Tags:

.Net | Presenting | WP7 | Windows programming | XAML | XNA | Web development | MVVM Light | Devices

BlockAddiction: My WP7 XNA game

by Nico 27. January 2012 11:31

On 8 January my very first game was published to the Windows Phone marketplace. It’s a very simple game called BlockAddiction, the purpose is to keep stacking the blocks on top of each other while they keep speeding up. Now, 19 days later I’ve reached over 250 downloads with this. It may not seem like a lot but I’m pretty pleased with the result Glimlach

Right now, I’m working on version 2.0 and it will include a new game mode and some changes:

  • Time Attack mode: stack as many blocks as possible within 60 seconds without dying (player has 3 lives)
  • About page
  • Maybe some ads but only on the menus, I want the game experience to remain the same and completely ad-free

Time Attack mode is almost complete, just have to develop the difference between time up and game over. Then I need to find out how to add an about page to an XNA game, but more about that later.

For those who want to try out the current version of BlockAddiction, search for it on the marketplace or click here!

Tags:

.Net | WP7 | XNA

Overview of WP7 devices

by Nico 25. January 2012 11:01

I’ve created an overview of all currently known Windows Phone devices. I’ll try to keep this as up-to-date as possible but don’t shoot me if it takes some time to add new devices to the list Glimlach.

Every device is linked to a site with all specifications. You can find the page by clicking the link on the right or by clicking here.

For those that are too lazy to check the page, I’ll paste the list here:

Name Release Date CPU speed Memory Display Notes
Acer Allegro November 2011 1 GHz 8GB 3.6" LCD No flash
Dell Venue Pro November 2010 1 GHz 8GB/16GB 4.1" AMOLED Portrait keyboard
Fujitsu Toshiba IS12T September 2011 1 GHz 32GB 3.7" LCD 13.2MP camera and waterproof
HTC Pro 7 January 2011 1 GHz 8GB/16GB 3.6" LCD  
HTC Surround November 2010 1 GHz 16GB 3.8" LCD slide out speaker
HTC Trophy October 2010 1 GHz 8GB/16GB 3.8" SLCD  
HTC Mozart October 2010 1 GHz 8GB/16GB 3.7" SLCD Xenon flash
HTC HD7 October 2010 1 GHz 8GB/16GB 4.3" SLCD  
HTC Titan October 2011 1.5GHz 16GB 4.7" SLCD  
HTC Titan II March 2012 1.5GHz 16GB 4.7" SLCD 16MP camera, 4G LTE
HTC Radar October 2011 1 GHz 8GB 3.8" SLCD  
LG Optimus 7 October 2010 1 GHz 16GB 3.8" LCD DLNA support
LG Quantum October 2010 1 GHz 16GB 3.5" LCD  
Nokia Lumia 710 November 2011 1.4 GHz 8GB 3.7" LCD  
Nokia Lumia 800 November 2011 1.4 GHz 16GB 3.7" ClearBlack AMOLED N9 design
Nokia Lumia 900 March 2012 1.4 GHz 16GB 4.3" ClearBlack AMOLED 4G LTE
Samsung Focus November 2010 1 GHz 8GB 4" Super AMOLED microSD support
Samsung Focus S November 2011 1.4 GHz 16GB 4.3" Super AMOLED  
Samsung Omnia 7 October 2010 1 GHz 8GB/16GB 4" Super AMOLED  
Samsung Omnia W November 2011 1.4 GHz 8GB 3.7" Super AMOLED  
ZTE Tania December 2011 1 GHz 4GB 4.3" LCD  

Tags:

Devices | WP7

Nokia Lumia 800 launch party

by Nico 24. January 2012 13:07

Last friday Nokia Belgium officially showed the Lumia 800 to the crowd in Belgium. 1300 people signed up for the event, 100 received an invitation. I was one of the lucky few that was there.

The party started at 6PM in the Event Lounge in Brussels. The lounge was nicely decorated with balloons, banners and promo girls from Nokia. Microsoft had some xbox360 systems available with Kinect for some fun and entertainment (Fruit Ninja Kinect is a blast!). Immediately at the entrance there was a possibility to try the Lumia 800 in all its different colors. After about an hour of fun and networking it was time to start the presentations.

The first speaker was Jurgen Thysmans, Communications Manager at Nokia Belgium. He told the audience that the Lumia 800 will be available on the 1st of February for about 499 euros. The Lumia 710 will be available on the 1st of March exclusively at Proximus, a Belgian provider. No price was given for the 710.

After Jurgen a reviewer from ZDnet took over, he wrote a review on the Lumia 800 and had some negative points about the device. Afterwards it became clear that he wrote a review based on a prototype with pre-release hard and software. Where I come from we call that a Preview but hey, what’s in a word… His mock-up of the Microkia logo was pretty funny but that’s about all I remember about his talk.

Closing the presentation was Jeroen Van Hees, he’s a Portfolio Manager at Microsoft Belgium. He gave us a live demo on his personal Lumia 800 device, whooing a lot of the guests with the snappyness of WP7 and the awesome design of the Lumia. The reactions were amazing, both in the room and on Twitter (hashtag #lumiabxl).

After the presentation, a young lady from Nokia did some challenges like Ben the pc guy did on CES. She challenged the attendees to put their non-WP7 smartphone against the Lumia, if they could beat her they’d receive a Nokia Play 360 wireless speaker. She smoked them all. Off course, the challenges were made to compliment the features of WP7, like taking pictures from the lockscreen, posting messages on Twitter, Facebook and LinkedIn at the same time.

After the presentations it was time for food and drinks, did some more networking, met some really cool guys. It was a very fun and entertaining evening, and I got a Nokia Play 360 because I smoked the girl with the Lumia using my own Lumia 800 Glimlach

Thank you Microsoft and Nokia for an awesome event and see you hopefully at the Lumia 900 launch event!

For all the pictures, check out my SkyDrive.
All pictures are taken with my Lumia 800.

Tags:

WP7

FollowMyFeed app submission: the result

by Nico 21. December 2011 18:51

Yesterday, a few days after I submitted my app that was generated by FollowMyFeed (see previous blog post) I got the result. The app passed certification and is now available on the marketplace. Hooray!

But there’s one thing that’s kind off weird. The marketplace certification rules clearly say that every app should launch and be ready to use in under 5 seconds. The generated app takes 7-8 seconds on my Omnia 7. I can think of two reasons why the app still passed certification.

  • The test team only used second generation devices and they boot up the apps faster
  • They don’t care since FollowMyFeed is a Microsoft product and it would be bad for them if they shot down apps generated by their own software.

Anyhow, now you can have an app to read my blog and follow my Twitter feed. Get the app here

Tags:

.Net | WP7 | XAML

FollowMyFeed: generate WP7 apps without any coding

by Nico 15. December 2011 16:11

Some time ago MIcrosoft launched a website called FollowMyFeed. The site is a service that allows anyone with an RSS feed to generate an application for Windows Phone 7 in mere minutes, without any coding. Sounds like fun, so I decided to test the service with the RSS from this blog.

These are the features, copied from the site:

  • Multiple RSS feeds
  • Logo, Tile, Background, Pivotbackground custom
  • Offline content
  • Comments (online)
  • Share to social networks (online)

Before you get started you do need to prepare some graphics like a splash screen, background and icons. For this purpose Microsoft put some templates on FollowMyFeed in both Photoshop and Paint.Net format. The templates are in a zip file and contain all the graphics needed to build an app. All graphics accept all the different icon sizes that are needed, luckily there’s an app for that. Someone build an app that takes an image, you select a square that you want used as icons, click save and the app will save the icon in all the necessary sizes. WP IconMaker can be found here (codeplex).

Generating a new application is as easy as following a small wizard, selecting the correct graphics and colors, setting the RSS feed and you’re done. I did encounter 1 issue, when I uploaded the splash screen it didn’t work. A splash screen can be maximum 480x800 pixels, the resolution of all WP7 devices, my splash screen was exactly that size but didn’t work. I’ve resized it to 479x799 and it worked flawlessly. Besides this small bug I didn’t encounter any problems, I’ve downloaded the .XAP file, installed it onto the emulator to take some screenshots and submitted it to the marketplace, once I got the result of my submission, I’ll let you know.

I made some screenshots of the entire process, those can be found here

Tags:

.Net | WP7 | XAML

Binding a dynamic Pivot in Windows Phone 7

by Nico 13. December 2011 13:30

I’m currently working on a Windows Phone 7 application that needs a dynamic Pivot. For every item in a list there should be a pivot item. Besides that, every dynamic pivot item should have a listbox that is bound to another list. I found very little information on these topics so I decided to write it down myself.

Both the header binding and the listbox binding are done from the same class. The class is called DemoClass and contains a string Name that will be bound to the header of the pivot item and a list of strings called Result that will be bound to the pivot item’s body. Here’s the code for the class:

Code Snippet
  1. using System.Collections.ObjectModel;
  2.  
  3. namespace BindingDynamicPivotDemo
  4. {
  5.     public class DemoClass
  6.     {
  7.         public string Name { get; set; }
  8.         public ObservableCollection<string> Result { get; set; }
  9.  
  10.         public DemoClass()
  11.         {
  12.             Result = new ObservableCollection<string>();
  13.         }
  14.     }
  15. }

I used ObservableCollection here instead of List because ObservableCollection already implements INotifyPropertyChanged and takes care of notifying all it’s subscribers when it changes. It’s perfectly possible to use a IList<string> instead of the ObservableCollection but then the DemoClass needs to implement INotifyPropertyChanged. In the constructor of the class the collection gets initialized.

Next thing I needed was a viewmodel to bind to my xaml page. The viewmodel declares a collection of DemoClass instances and fills those instances with dummy data.

Code Snippet
  1. using System;
  2. using System.Collections.ObjectModel;
  3.  
  4. namespace BindingDynamicPivotDemo
  5. {
  6.     public class MainViewModel
  7.     {
  8.         public ObservableCollection<DemoClass> PivotItems { get; set; }
  9.         
  10.         public MainViewModel()
  11.         {
  12.             PivotItems = new ObservableCollection<DemoClass>();
  13.  
  14.             //load pivot headers
  15.             LoadData();
  16.  
  17.             //load random dummy data for the pivot body
  18.             FillLists();
  19.         }
  20.  
  21.         public void LoadData()
  22.         {
  23.             //pivot headers
  24.             for (int i = 1; i <= 10; i++)
  25.             {
  26.                 DemoClass newClass = new DemoClass {Name = "pivotItem " + i};
  27.  
  28.                 PivotItems.Add(newClass);
  29.             }
  30.         }
  31.  
  32.         public void FillLists()
  33.         {
  34.             Random rnd = new Random();
  35.  
  36.             //fill each list with dummy data, this will be shown in the pivot body
  37.             foreach (DemoClass pivotItem in PivotItems)
  38.             {
  39.                 pivotItem.Result.Clear();
  40.  
  41.                 for (int j = 0; j < 10; j++)
  42.                 {
  43.                     pivotItem.Result.Add("item " + rnd.Next(0, 1000));
  44.                 }
  45.             }
  46.         }
  47.     }
  48. }

I am again using an ObservableCollection for the same reason as I did in the DemoClass. LoadData() creates 10 instances of DemoClass and adds them to the PivotItems collection. FillLists() will fill the Result collection of every DemoClass instance with random dummy data.

Next step is to let the view know where it needs to look for its data. This can be done from xaml or from code behind. MVVM Light takes the xaml approach while the default Visual Studio projects do it from code behind, since this is a default project I followed the code behind approach. This is how my MainPage.xaml.cs looks liks.

Code Snippet
  1. using System.Windows;
  2. using Microsoft.Phone.Controls;
  3.  
  4. namespace BindingDynamicPivotDemo
  5. {
  6.     public partial class MainPage : PhoneApplicationPage
  7.     {
  8.         // Constructor
  9.         public MainPage()
  10.         {
  11.             InitializeComponent();
  12.  
  13.             // Set the data context of the listbox control to the sample data
  14.             DataContext = App.ViewModel;
  15.         }
  16.  
  17.         private void Button_Click(object sender, RoutedEventArgs e)
  18.         {
  19.             App.ViewModel.FillLists();
  20.         }
  21.     }
  22. }

Instantiation of the ViewModel occurs in App.xaml.cs and is auto-generated code. The Button_Click method is an event handler for a button, obviously. It will call a method on the ViewModel that regenerates new random dummy data for the pivot body. This shows how an ObservableCollection gives a powerful auto-updating binding while keeping the DemoClass nice and clean.

Now let’s take a look at the xaml and specifically at the bindings. This is the MainPage.xaml.

Code Snippet
  1. <Grid x:Name="LayoutRoot" Background="Transparent">
  2.         <!--Pivot Control-->
  3.         <controls:Pivot x:Name="PivotPlatform" Margin="0,0,8,77" Title="BindingDynamicPivotDemo" ItemsSource="{Binding PivotItems}" >
  4.             <controls:Pivot.HeaderTemplate>
  5.                 <DataTemplate>
  6.                     <TextBlock Text="{Binding Name}"/>
  7.                 </DataTemplate>
  8.             </controls:Pivot.HeaderTemplate>
  9.             <controls:Pivot.ItemTemplate>
  10.                 <DataTemplate>
  11.                     <ListBox ItemsSource="{Binding Result}">
  12.                         <ListBox.ItemTemplate>
  13.                             <DataTemplate>
  14.                                 <TextBlock TextWrapping="Wrap" Text="{Binding}" />
  15.                             </DataTemplate>
  16.                         </ListBox.ItemTemplate>
  17.                     </ListBox>
  18.                 </DataTemplate>
  19.             </controls:Pivot.ItemTemplate>
  20.         </controls:Pivot>
  21.         <Button Content="Randomize" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,0,4" Click="Button_Click"/>
  22.     </Grid>

I only pasted the layoutRoot grid here because all the xml namespaces are the default ones from a WP7 project. So for starters I’ve bound the Pivot’s ItemsSource to the PivotItems collection. Then I declare two templates, the header template is the title of the pivot item, by binding it to name it will use the Name property from the DemoClass. Since the Pivot’s ItemsSource is bound to PivotItems, the textblock in the header template is now bound to PivotItems.Name. The itemtemplate is what makes up the pivot’s body, it contains a listbox that is bound to PivotItems.Result. Underneath the pivot is a button that triggers the event handler in MainPage.xaml.cs.

When this is executed you’ll see an automatically generated pivot bound to dummy data, every time the button is clicked new data will be generated and shown in the pivot immediately thanks to the ObservableCollection.

screen

The source of this project can be found here.

Conclusion

In this small article I explained how you can databind a pivot so that it’s items are automatically generated and bound to other properties. It’s not hard to do but it took me some time to figure out so I hope I’ve helped someone by writing down my findings.

Tags:

.Net | WP7 | XAML | Binding | Silverlight

About the author

Hi,

My name is Nico, I’m an MCP living in Belgium.
I’m currently employed as a .Net Software Developer at RealDolmen, one of Belgium’s leading IT single source providers.

This blog will be about Windows Phone 7, C#, XNA , WPF, Silverlight, and much more!

I hope to get feedback from my readers either through comments, mail (nico_vermeir@hotmail.com), twitter, facebook, …

 

Month List