API Convergence Gets Real in Windows 10

Last year, I wrote a universal app named Pic Me (later renamed to “Picture Me”) for Windows 8.1 and Windows Phone 8.1. The main reason I wrote it was that my daughter said “wouldn’t it be cool to have an app that shows you all the photos you’ve been tagged in on Facebook, and that…

Using AdaptiveTrigger to Build Adaptive UIs in Windows 10

Like a lot of developers, I’ve been watching the development of Windows 10 and digesting all the features Microsoft announced at BUILD. And I’m eager to build apps that target the Universal Windows Platform (UWP). UWP is a new model that allows you to write apps that run on a wide range of Windows devices,…

Supercharging Xamarin Forms with Custom Renderers, Part 5

Making Xamarin Forms Richer with Custom Visual Elements The BoxView class is handy for drawing rectangles in a Xamarin Forms UI. On Windows Phone, a BoxView renders a Rectangle element. On iOS and Android, it paints a rectangle onto a graphics context and a canvas, respectively. But what about other graphics primitives such as ellipses…

Implementing John Conway’s Game of Life in Xamarin Forms

John Conway’s Game of Life, presented to the world in the October 1970 issue of Scientific American magazine, is one of the most popular computer simulations of all time. In it, you draw a pattern of cells in a 2-dimensional grid. Then you “evolve” the cells from one generation to the next. Whether a cell…

Supercharging Xamarin Forms with Custom Renderers, Part 4

If you’ve read the previous posts in this series, you’re aware that custom renderers are the keys that unlock the doors to advanced customizations in Xamarin Forms. In Part 1, I presented custom renderers for rounding the corners of and placing borders around Button controls. In Part 2, I used custom renderers to stylize the…

Supercharging Xamarin Forms with Custom Renderers, Part 3

One of the limitations of Xamarin Forms that frequently pains developers is the fact that the Label control supports text wrapping and text truncation, but it doesn’t support both at the same time. Specifically, Label’s LineBreakMode property can be set to LineBreakMode.WrapText to wrap text, or it can be set to LineBreakMode.TailTruncation to replace text…

Supercharging Xamarin Forms with Custom Renderers, Part 2

In Part 1 of this series, I introduced custom renderers in Xamarin Forms and presented a pair of custom renderers – one for Android, and one for Windows Phone – that extended the Xamarin Forms Button control to honor the BorderRadius, BorderWidth, and BorderColor properties on all platforms. In Part 2, we’ll use what we…

Supercharging Xamarin Forms with Custom Renderers, Part 1

Xamarin Forms includes an assortment of “views,” more commonly known as controls, to help you build cross-platform UIs using XAML. Each control has a default appearance, and each control exposes properties that allow you to customize its appearance. But what if you’re handed a set of UI requirements that can’t be achieved using those properties?…

Building Contoso Cookbook with Xamarin Forms

Using NavigationPage, TabbedPage, ListView and Other Goodies in Xamarin Forms to Build Rich Multipage Apps In my previous posts introducing developers to Xamarin Forms, I presented an RPN calculator app that runs on multiple platforms, and then built on that to describe how to respond to orientation changes in Xamarin Forms apps. A calculator provides…

Responding to Orientation Changes in Xamarin Forms

Last week, I published the first in a series of articles on building cross-platform mobile apps with Visual Studio 2015 and Xamarin Forms. In it, I presented an RPN calculator app that works on Windows Phone, Android, and iOS. One subject I didn’t address in that article was how to respond to orientation changes in…