The best open source components for Windows Phone

The best open source components for Windows Phone

I am a big fan (and user!) of open source components for the Windows Phone platform development. There are many (hundreds?) of them available on CodePlex, but I use some of them in almost every project I create. Why? Simply because it means that I can do more in less time. I can create better experiences, better design, better functionality. And so could you. You probably know about some of these, or perhaps even all, but they are so good that they’re worth mentioning to every Windows Phone developer. I even created a small presentation about Windows Phone and open source for purposes other than this blog article, but they deserve to be shared. :)

MetroGridHelper

MetroGridHelper is not part of any toolkit. It’s one of many smaller open source classes, created by Jeff Wilcox. It helps you fix margins and alignments.

If you take a look at the photo on the right, you will see one of the most common design imagemistakes with the textblock which is not aligned properly like other parts of the design have been.

MetroGridhelper is a simple to use grid that you can overlay on top of the frame of the entire app. Just make it visible (or hide it) when launching the application. You can even change the color of the overlay grid, and people created modifications of it to be able to use it at design time.

It’s a great way to make a better design!

You can find more information on the link below.

http://www.jeff.wilcox.name/2011/10/metrogridhelper/

Screenshots

When it comes to screenshots, many people would really love to be able to take screenshots straight from the device, and not the emulator.

In order to do that you should use a great small class called Screenshots which uses WriteableBitmap and saves the screenshot to isolated storage.

In order to get it from the isolated storage, you can use another CodePlex project called Windows Phone Power Tools.

Simply add the Screenshots class using NuGet and call the method BeginTakingPictures. You can give in a parameter to the function in order to take the pictures in specific time intervals, but if you don’t, the default is every 2 seconds.

You can find more details here:

http://www.jeff.wilcox.name/2011/10/screenshots-cs-how-to-capture-screenshots-of-your-app-on-your-device/

If you would like to save pictures to media library instead, so you can easily synchronise it, go to my blog article where I showed how I changed the class a bit to make sure the image is saved to media library.

Don’t forget to remove it before trying to publish the application, and have in mind that it can easily fill the free space on your phone! Also, it doesn’t capture the ApplicationBar because it’s not part of the visual tree.

ReviewBugger

ReviewBugger is a MessagePrompt that can be used to prompt user to leave reviews for your application.

It is not part of the Coding4Fun toolkit, but it relies on it heavily and it’s available through NuGet.image

It’s based on the number of application runs. If your app is good enough for the user to use it more than, let’s say, 10 times, you definitely deserve to get it reviewed. It politely asks the user and enables him to do it now, later or never.

I always add it to my apps, and it’s really simple to use as you can see on the photo below.

image

Since I created it, I also wrote a blog post about it, of course, that you can find on the following link:

http://igrali.wordpress.com/2011/12/24/bug-prompt-users-to-leave-you-reviews-and-rates-on-windows-phone-marketplace/

Coding4Fun Toolkit

Coding4Fun toolkit offers a combination of controls, converters and data helpers.

It’s available on CodePlex, of course, and you can also grab it through NuGet again either through the UI or just by writing

install-package c4fcontrols.complete

in package manager console.Controls are the most interesting to me, so here’s what’s inside:

About prompt – displays info about the app
Color hexagon picker – as the name says, hexagon control for picking a color
Color picker – classic, rectangle color picker with sliders
Color Slider – slider for picking a color
Input Prompt – consider it to be a MessageBox in which you can enter content, such as text
Message Prompt – highly customizable MessageBox
Memory counter - MemoryCounter control gives you an easy way to monitor the total memory usage of your application.
Password prompt – input prompt hiding the text that you type in
Progress overlay – consists of ContentControl and PerformanceProgressBar elements. As the name says it is some kind of an animated overlay which can show the progress of a particular process.
Round Button and Round Toggle button – rounded version of button controls.
Super Slider – a better slider control
TimeSpan picker – a display form where you can choose another date/time using infinite scrolling.
ToastPrompt – toast notification inside your application.

CodePlex page of this toolkit shows a lot of demos, so take a look there! :)

http://coding4fun.codeplex.com/documentation

WriteableBitmapEx

WriteableBitmapEx is a library that brings many extension methods for WriteableBitmap class.

It offers direct manipulation of a bitmap and it’s really easy to use.

It’s available through NuGet like all the projects I mentioned before and it’s important to say that it’s a really specific library because it’s concentrated on bitmaps, so I used it a lot in my Photo Light app for basic photo editing.

I wrote about it on my blog in two posts – when announcing Photo Light and I also wrote about applying a filter to a picture on Windows Phone. Go here for more details:

http://igrali.wordpress.com/2011/12/10/photo-light-available-on-windows-phone-marketplace/

http://igrali.wordpress.com/2011/10/09/applying-a-filter-to-picture-on-windows-phone/

http://writeablebitmapex.codeplex.com/

Silverlight for Windows Phone Toolkit

I left this one for the end on purpose, because it’s the most popular toolkit for Windows Phone development.

It’s said to be straight from Microsoft developers, released under Ms-PL.

It brings many new components and functionalities to Windows Phone apps, and other than the libraries, you can download it’s source code, samples and documentation. There is a great demo Windows Phone application which includes all the control samples, so you can understand how they work really quickly.

You can add it to your project through NuGet using either the UI or just write

Install-Package SilverlightToolkitWP

in NuGet package manager console. The controls it brings are:

Autocompletebox is a type of textbox which suggests you items from a list as you type.
ContextMenu offers you a popup menu when you for example hold or tap an item
Date time converters and pickers do what the words say. Converts a DateTime object into a string the represents the elapsed time relatively to the present. Pick date and time
ExpanderView Shows sub-items similar to the new email app
Gestures A gesture service for tap, pinch and others
Hubtiles bring tiles inside your apps
ListPicker enables selection from a list of items
Lockable pivot – pivot that allows disabling navigation between pivot items
LongListSeelctor– control grouping items
MultiSelectList– supports multiple selection in a list
Performance progress bar brings a progress bar with better performance
PhoneTextBox adds new features to textbox
Toggle switch – a switch for on-off choices
Tilt effect – make buttons visually responsive to touch
Transitions – animations when going between pages
Wrap panel – wrapping container for elements

Find all the details and downloads here:

http://silverlight.codeplex.com/

Licences

All the projects, components and libraries on CodePlex and online are released under certain conditions and a license which you should be aware of.

My personal opinion is that the Ms-PL (Microsoft Public License) is used the most when it comes to Windows Phone open source projects, but you should always check. As I’m not a legal expert, I will not go about explaining the licenses and what you’re allowed and what you’re not.

Always check what’s necessary if you would like to change the source code? Are you allowed to use it in commercial applications? Do you need to give some sort of contribution to the author?

Find more information at

http://www.opensource.org/licenses/

Find the presentations on SkyDrive. :)

Part 1

Part 2

Thanks for reading! If you know a better way for embedding presentations other than SlideShare, leave a comment here or on Twitter twitter.com/igrali

Igor Ralic

igor ralic

View Comments
Microsoft Certified Solutions Developer: Windows Store Apps in C#