Real-World Tombstoning in Silverlight for Windows Phone, Part 4

Tombstoning is one of the greatest challenges in writing applications for Windows phones, which is why I decided to devote a series of blog posts to it. In Part 1 of this series, we built a photo-extras application that allows the user to perform simple image-editing chores on photos. In Part 2, we added tombstoning…

Real-World Tombstoning in Silverlight for Windows Phone, Part 3

In Part 2 of this series, we made progress toward including tombstoning support in a photo-extras application by adding OnNavigatedFrom and OnNavigatedTo methods that use a combination of page state and isolated storage to save the state of our app before it’s deactivated and restore that state following reactivation. But we also determined that work…

Real-World Tombstoning in Silverlight for Windows Phone, Part 2

In Part 1 of this series, we built a basic photo-extras application that allows a user to load photos from the phone’s Pictures library and convert the photos to grayscale. We also learned that in the absence of tombstoning support, the app doesn’t work very well. Specifically, if the user clicks the Start button to…

Real-World Tombstoning in Silverlight for Windows Phone, Part 1

One of the challenges that confronts every Windows phone developer is learning about tombstoning. As I briefly stated in an earlier article, tombstoning is Windows Phone 7’s way of allowing an application to restore itself to the same state it was in before it was interrupted. Although the operating system itself can run several applications…

Silverlight for Windows Phone Programming Tip #3

Application bars play an important role in the UI of many phone applications. An application bar can contain up to four buttons (and five menu items) giving the user quick and easy access to the app’s most commonly used features: Each button is an instance of ApplicationBarIconButton, and the ApplicationBarIconButton class exposes a property named…

Tombstoning Panorama Controls in Silverlight for Windows Phone

Earlier, I posted  a short article documenting a bug in Silverlight for Windows Phone’s Pivot control and demonstrating how to work around it to properly tombstone a Pivot control. Since the Pivot and Panorama controls are twin sons of different mothers, you may wonder: does the Panorama control suffer the same flaw? Well, there’s good…

Tombstoning Pivot Controls in Silverlight for Windows Phone

If you’re a Windows phone developer, you’ve figured out by now that tombstoning is an essential part of the application lifecycle, and that every application must be architected with tombstoning in mind. What is tombstoning? In short, while Windows phones are perfectly capable of running several applications at once, only OEMs can write apps that…

Silverlight for Windows Phone Programming Tip #2

Phone developers sometimes bemoan the fact that Silverlight for Windows Phone lacks syndication classes such as SyndicationFeed and SyndicationItem. In the desktop versions of Silverlight, these classes simplify the task of consuming RSS feeds, as well as other types of feeds such as ATOM. It’s a well-documented fact that you can work around this by…

Using the Location Service in Silverlight for Windows Phone

One of the most exciting features of the Windows phone from a developer’s perspective is the location service. The location service is a set of APIs that rely on Assisted-GPS (A-GPS), Wi-Fi Positioning System (WPS), and cell-site triangulation to expose location data to an application. Simply put, this means that a Windows phone app can…

Using the Accelerometer in Silverlight for Windows Phone

One of the sensor devices present in every Windows phone is an accelerometer that provides real-time acceleration data in the X, Y, and Z directions. Applications can use that data to determine a phone’s 3D spatial orientation, and to detect changes in that orientation. Under the hood, Silverlight for Windows Phone uses the accelerometer to…

Building Touch Interfaces for Windows Phones, Part 4

The first three articles in this series presented three different ways to respond to touch input in Windows phone apps: mouse events, Touch.FrameReported events, and manipulation events. In this, the fourth and final installment, we’ll discuss a means for processing touch input that trumps all three – namely, the GestureListener class in the Silverlight for…

Building Touch Interfaces for Windows Phones, Part 3

In Part 1 and Part 2 of this series, I described how to build touch interfaces for phone apps using mouse events and Touch.FrameReported events. Part 3 presents yet another way to respond to touch input: manipulation events. Manipulation events originated in WPF, and they’re substantially richer in WPF than in Silverlight for Windows Phone.…