Knowledge: Tech Blog

Where we share our thoughts on technology and design.

Mobile

Colin Eberhardt

Developing Bristol Pound - An Open Source React Native App

A few weeks ago the new Bristol Pound mobile app was launched, allowing users of this local currency to find vendors, view transactions and make payments on both iOS and Android. This post describes our experience of writing this application using React Native.

Colin Eberhardt

A Journey Through Sound Synthesis with AudioKit

For the past four years I’ve been an author on Ray Wenderlich’s website which provides tutorials for iOS developers. I don’t do much native iOS development these days, However, I do like to keep my skills up to date. As part of this team I sometimes find myself being assigned...

Colin Eberhardt

Binding with Bond

Swift Bond is a binding framework that removes the mundane task of wiring up your UI. In this tutorial, which was originally published on Ray Wenderlich's website, I introduce the concepts of Bond and demonstrate how to use it to rapidly build an iOS app.

William Reilly

A Master Detail layout for Ionic

Ionic is a framework built on angular-js, targeted at creating mobile applications. However, one useful component that isn't part of the standard controls is the master detail layout, and this post describes the solution I used when creating this control.

Colin Eberhardt

MVVM With ReactiveCocoa 3.0

This is my final article on ReactiveCocoa 3.0 (RAC3), where I demonstrate some more complex RAC3 usages within the context of an application built using the Model-View-ViewModel (MVVM) pattern.

Colin Eberhardt

ReactiveCocoa 3.0 - Signal Producers and API clarity

My previous blog post took a first look at ReactiveCocoa 3.0 (RC3), where I described the new Signal interface, and the pipe forward operator. In this blog post I continue my exploration of the RC3 APIs and turn my attention to signal producers. I also discuss a few points around the overall clarity of the new ReactiveCocoa APIs.

Colin Eberhardt

A First Look at ReactiveCocoa 3.0

This blog post takes a look at the new ReactiveCocoa 3.0 swift interface, which introduces generics, a pipe-forward operator and an interesting use of curried functions.

Colin Eberhardt

Introducing React Native

A few months ago Facebook announced React Native, a framework that lets you build native iOS applications with JavaScript. I've been spending the past couple of months building am app with this framework, which I have finally been able to share!

Colin Eberhardt

Retrospective on Developing an application with React Native

I've been building a React Native app for the past few months, which was published as a tutorial yesterday. A number of people have asked about my thoughts and opinions about React Native - which I am sharing in this blog post.

Sam Davies

Swift JSON Shoot-Out

For some reason, everybody and their dog has written about how to parse JSON in Swift. Not wishing to be left out, I thought I'd throw my hat into the ring.

Colin Eberhardt

Implementing React.js in Swift

This blog post explores the novel approach taken by the React.js team, where the UI is expressed as a function of the current application state, and re-implements it with Swift.

Colin Eberhardt

Exploring KVO alternatives with Swift

Swift has access to all of the Objective-C APIs, which means that anything you could do with Objective-C you can now do with Swift. However, there are times when it is worth exploring a better, pure-Swift, alternative. This post explores the pros and cons of KVO versus a couple of Swift alternatives.

Colin Eberhardt

Implementing Events in Swift

Swift does not have a built in eventing mechanism. This post explores a few different ways events can be implemented in Swift and how to avoid problems of retain cycles and closure reference equality.

Colin Eberhardt

Exception Handling in Swift

Swift doesn’t support throwing exceptions, nor does it support catching them. This wouldn’t be a problem if you could develop iOS apps in pure Swift, but unfortunately at the moment you cannot. When developing an app most of the APIs you’ll be working with are Objective-C APIs that have been...

Andy Lee

Hero transitions in AngularJS

How to create hero transitions with AngularJS, similar to those implemented by Google's Material Design and Polymer's core-animated-pages.

Andy Lee

HTML5 Mobile - Optimising for older or slower devices

Some lessons I've learned trying to optimise a HTML5 mobile App so that it's fast and responsive even on old or budget phones with limited performance.

Colin Eberhardt

Tearing Down Swift's Optional Pyramid of Doom

This blog post looks at a few techniques that can be used to remove the deeply nested if-let statements that are a common sight in Swift code.

Andy Lee

HTML5 Mobile - Long-press to re-order scrollable lists

How to use a long-press to trigger re-ordering a list in Ionic Framework, instead of Ionic’s default implementation, which requires a button to switch modes.

Colin Eberhardt

Swift Initialization and the Pain of Optionals

Swift's strict initialisation process results in a number of practical issues, leaving developers scratching their heads. This post explores a few solutions including two-phase initialisation, the use of optionals and lazy properties.

Chris Grant

Video Stitching with AVFoundation

Explaining the very basics of AVFoundation while building a Mac Application that stitches 3 .mov files together.

Colin Eberhardt

Binding mutable arrays with ReactiveCocoa

This post describes a binding helper that allows you to bind arrays directly to table views with ReactiveCocoa. In this update to my previous post, the helper is extended to support mutable arrays.

Colin Eberhardt

Mandelbrot Generation With Concurrent Functional Swift

This post show how the simple task of computing a Mandelbrot set can be split up across multiple threads (and processors) using functional techniques.

Andy Lee

Cross-platform mobile with Cordova and Ionic Framework

Using Cordova and Ionic Framework to turn an AngularJS web application into a cross-platform mobile application.

Joe Bandenburg

Using Screenhero To Turbo-Charge Pair Programming!

In this blog post, I talk about my team’s journey from traditional “pass me the keyboard and mouse” pair programming to use of Screenhero for IDE sharing both within the office and remotely.

Colin Eberhardt

Swift and the curious case of AnyObject

Swift, as I am sure you are aware, is quite a strict, safe and strongly-typed language. However, because the language needs to maintain Objective-C compatibility it has some rather curious features, and the behaviour of `AnyObject` is one of them!

Colin Eberhardt

Functional Swift and Memoization

This post is a continuation of my previous which looked at implementing Conway’s Game of Life using functional techniques. Here I look at how memoization can be used to cache the return value of a function in order to improve performance.

Colin Eberhardt

Swift By Tutorials is Published

Apple released the first public beta of the Swift programming language just over three months ago. Within days of the release myself and Matt Galloway started working on our book Swift by Tutorials, which as of yesterday is finally finished and shipping!

Colin Eberhardt

The Game of Life with Functional Swift

This blog post shows an implementation of Conway’s Game of Life using functional techniques in Swift. This results in code which is a clear and concise representation of the game’s logic. I also take a closer look at ranges, intervals, the pattern match operator, ~= and how local functions help...

Colin Eberhardt

Swift Adoption Statistics

It was just two months ago that Apple took us by surprise in releasing the Swift programming language. This blog post reflects on the first few months of Swift adoption.

Colin Eberhardt

MVVM, Swift and ReactiveCocoa - It's all good!

This blog post looks out how Swift makes the combination of ReactiveCocoa and MVVM even better ...

Colin Eberhardt

A Statistical Comparison of the iOS and Android Stores

A few months ago I published a blog post which showed the results of analysing the meta-data of 75,000 apps from the iTunes App Store. This blog post continues the analysis by adding 60,000 Android apps into the mix.

Colin Eberhardt

MVVM with ReactiveCocoa

I've recently had a two-part tutorial published on Ray Wenderlich's website that details how ReactiveCocoa can be used to implement the MVVM pattern within iOS applications.

Colin Eberhardt

Swift Sequences and Lazy Evaluation

In this blog post I want to take a quick look at the Swift Sequence protocol, which forms the basis for the for-in loop, and see how this allows you to write code that performs sequence operations that are only evaluated on-demand.

Colin Eberhardt

Binding to a UITableView from a ReactiveCocoa ViewModel

This blog post presents a simple utility class for binding ReactiveCocoa ViewModels to UITableViews without the need for the usual datasource / delegate boiler-plate.

Colin Eberhardt

A Colour Analysis of the Apple App Store

This blog post presents the result of analysing 250,000 screenshots from the Apple App Store, looking at hue, lightness and saturation histograms for each category.

Colin Eberhardt

A Statistical Analysis of the Apple App Store

The App Store continues its rapid growth, with approximately 300,000 apps added each year. I decided it would be fun to download as much app metadata as possible in order to see what patterns and trends I could find. This blog post describes the results.

Colin Eberhardt

Simulating Accelerometer and Location data for iOS

This blog post looks at how to simulate accelerometer and location data so that you can test iOS apps without the need for a physical device. The simulated data is provided by an interactive UI which allows you to rotate the phone and mark paths on a map which can then be replayed.

Colin Eberhardt

ReactiveCocoa - The Definitive Guide

It feels like everyone in the iOS community is talking about ReactiveCocoa at the moment. In this blog post I talk briefly about what ReactiveCocoa is and the 'Definitive Guide' which I wrote for raywenderlich.com

Colin Eberhardt

PropertyCross 1.3 Released

PropertyCross has just announced a v1.3 release, which includes two new frameworks, a number of updates and an improved build system.

Colin Eberhardt

iOS 7 By Tutorials In Print

The book, iOS 7 By Tutorials, which I contributed four chapters to, is now in print.

Colin Eberhardt

iOS 7 by Tutorials - the first iOS 7 book - is published

For the past four months I have been hard at work writing four chapters for a book, iOS 7 by tutorials. Just yesterday, as the iOS 7 NDA was lifted, the book went on sale.

Colin Eberhardt

Windows Phone App Studio - Shows Potential ...

A couple of days ago Microsoft announced Windows Phone App Studio, a web based tool for the rapid creation of Windows Phone applications. In this blog post I take this new technology for a spin to see what it's capable of, and the interesting potential it has for creating 'personal' apps.

Colin Eberhardt

New iOS Article - How To Make a Custom Control

My latest iOS development article has been published on Ray Wenderlich's site, this time I look into how to develop custom iOS controls. The article describes the creation of a 'range' slider control, and covers topics such as API design and using Core Graphics for rendering. Interestingly, iOS developers have...

Colin Eberhardt

Enhanced Windows Phone 8 Map Gestures

This blog post describes the addition of a two-finger rotation and three-finger pitch gesture to the Windows Phone 8 Map control. You can see these gesture in action below: The WP8 release replaced the image-tile based Bing maps with a fully vector-rendered map from Nokia. Being vector-based, this map can...

Colin Eberhardt

Comparing KendoUI and Knockout (with a bit of jQueryMobile on the side)

This blog post compares the same twitter search application written with both Knockout and Kendo in order to highlight the strengths and weaknesses of each framework. Introduction I've always been a big fan of Knockout, most likely because it reminds me of Silverlight (rest in peace). For my thoughts on...

Colin Eberhardt

Windows Phone 8 Running App Article wins CodeProject competition

I've just received an email from those nice folks at CodeProject letting me know that my article 'A Windows Phone 8 Run Tracking App in 100 Lines of Code' has just won the Best Mobile article of January 2013 award.

Colin Eberhardt

Linq to Objective-C

In the past few months I have been immersing myself into the world of iOS development. Whilst the Objective-C language takes a little getting used to, with its odd syntax and memory management rules, it is certainly a fun platform to develop for. I do miss a few C# language...

Mark Rhodes

Improving Raphael performance on iOS with CSS transitions

In this post I'll run through the development of DOM-Raphael, a basic CSS3 based JavaScript library which acts as a replacement for Raphael and can be used to improve performance when running on iOS. The source code for the JavaScript for this post is available on GitHub. The driver behind...

Colin Eberhardt

CodeProject Article on Xamarin Cross Platform Development

Yesterday I published a new article on CodePrioject: Property Finder - a Cross-Platform Xamarin MonoTouch Mobile App This article looks at how you can write a cross-platform mobile application with a shared C# code base using Xamarin MonoTouch. The application that is described in the article, a property finder, is...

Colin Eberhardt

Introducing PropertyCross - Helping you select a cross-platform mobile framework

Introduces a new open source project that helps developers choose a suitable cross-platform framework

Colin Eberhardt

A Multicast Delegate Pattern for iOS Controls

This blog post introduces a simple pattern for adding multicasting capabilities to existing iOS controls. Adding multicasting allows for improved clarity and code re-use. Colin Eberhardt is CIO at ShinobiControls, suppliers of highly interactive and fun charts, grid and UI controls for iOS developers. Most iOS controls have a concept...

Colin Eberhardt

Ray Wenderlich and My Adventures in iOS

The technologies that we use to write applications for our end users are changing at a frightening pace! Over the past few years the title of my blog has changed from "Adventures in WPF" to "Adventures in .NET", and more recently to the very generic "Adventures in Technology". The latest...

Colin Eberhardt

Integrating Knockout and jQueryMobile

This blog post looks at the issues regarding integration of KnockoutJS and jQueryMobile, and provides a simple worked example - a Twitter Search application - where the two technologies play nicely together! The code for this blog post can be found on github. You can also try it out on...

Chris Price

Converting an HTML5 App to a Native App with Titanium

In this post Colin Eberhardt's Property Finder app gets another outing, but this time with a native twist. Titanium is a popular open-source framework for building multi-platform native apps in JavaScript. Here I've used it to port the existing MVVM application to iOS and Android whilst trying to maintain as...

Colin Eberhardt

Property Finder - A Cross-platform HTML5 Mobile App

A while back, when PhoneGap for Windows Phone was still in beta, I created Property Finder, an application for searching UK property listings. This application successfully made its way into the Windows Phone Marketplace, making it the first WP7 PhoneGap app. I recently developed the Property Finder application further in...

Tom Baker

GWT Super Dev Mode - A New Kind of Hero?

A Hero is Born Recently, I've had the opportunity to have a bit of a play with GWT's upcoming and excitingly titled "Super Dev Mode". Super Dev Mode will eventually replace the current plugin based development mode that GWT developers will no doubt be familiar with. Google's main reasoning for...

Colin Eberhardt

Book Review: iOS Programming for .NET Developers

A couple of weeks ago Josh Smith published his latest book, "iOS Programming for .NET Developers", which seeks to ease the transition from .NET to iOS developers. As someone who has many years of .NET experience, and more recently a desire to develop for 'the other side', I thought this...

Colin Eberhardt

A Gesture-Driven Windows Phone To-Do List - Complete Example

Over the past few weeks I have been working on a Windows Phone to-do list application, inspired by the iPhone Clear app. I have just published the final application over on codeproject. You can see it in action below: Pop over to CodeProject for the full sourcecode and implementation details....

Colin Eberhardt

An Introduction and Thoughts on Developing iOS Applications with MonoTouch

This blog post describes the creation of a simple twitter search application for iOS, based on a similar application I wrote for Windows Phone a few months back. In this blog post I'll used the MonoTouch platform, which allows you to write iOS applications using C#. This blog posts describes...

Chris Price

Using PhoneGap Build with Maven

This post introduces a Maven plugin for easily building native PhoneGap apps for iOS, Android, WP7 (and more) from any WAR project, in any environment. It assumes that you are familiar with using Maven and have a WAR project you wish to build. In return, when you run your build...

Colin Eberhardt

A gesture-driven Windows Phone to-do application Part Two - drag re-ordering

A couple of weeks ago I blogged about a todo list application which uses gestures to achieve its basic functions, a left swipe deletes an item, while a right-swipe marks it as complete. In this blog post I am adding re-ordering which is initiated via a tap-and-hold gesture and performed...

Colin Eberhardt

A Developer Perspective on Windows Phone 8 - An Update

My blog post from yesterday "A Developer Perspective on Windows Phone 8" sparked a bit of furious debate on Twitter. I think it is fair to say that I was not the only one who was quite concerned about the impact of aligning the developer experience of Windows Phone 8...

Colin Eberhardt

A Developer Perspective on Windows Phone 8

This blog post takes a look at what Windows Phone 8 (WP8) means for Windows Phone 7 (WP7) developers and the Microsoft development platform in general. This has been a big week for Microsoft; Monday saw them unveil the new Surface tablet that runs Windows 8. This was followed up...

Colin Eberhardt

A gesture-driven Windows Phone to-do application

This blog post describes the implementation of a gesture-based todo-list application. The simple interface is controlled entirely by drag, flick and swipe: So far the application supports deletion and completion of tasks, but not the addition of new ones. I'll get to this in a later blog post! Introduction -...

Chris Grant

Comparison of the Available iOS Charting Libraries

In this post, I explore four of the available iOS charting libraries and investigate the features, API, and pros and cons of each. In order to conduct a fair investigation, I have developed a comparison framework which loads historic stock market data from the Yahoo Finance API. My findings were...

Colin Eberhardt

Introducing the jQuery Mobile Metro Theme

This blog post introduces the new jQuery Mobile Metro theme and demonstrates how to create a web UI that detects the device it is being viewed on, to render a Metro UI on WP7 and iOS on other devices

Colin Eberhardt

Slides and code from my WPUG talk on PhoneGap

Yesterday I presented a talk at the London-based Windows Phone User Group on the development of cross-platform mobile applications using PhoneGap. Here are my slides from the presentation: And here is the twitter search application I demoed: PhoneGapTwitterSearch.zip You can also try out Property Finder on your phone. Thanks to...

Colin Eberhardt

WPUG Talk: Developing cross-platform mobile applications with PhoneGap for Windows Phone 7

In a couple of weeks I will be giving a talk on using PhoneGap for cross platform mobile application development at the WPUG #NotAtMWC12 event on Tuesday, February 28, in London. This post gives a brief overview of my talk and a video.

Colin Eberhardt

WP7 PhoneGap Backbutton Support Re-visited

About a month ago I published an article which demonstrated how to create a WP7 application using static HTML pages and PhoneGap. Whilst PhoneGap makes the packaging of HTML / JavaScript / CSS and images into a breeze, one thing it doesn't do is provide correct back-button support. Correct back-button...

Colin Eberhardt

Windows Phone 7 - Browsing your Photos via Bing Maps

The Windows Phone 7 camera gives you the option to record the location where a picture was taken (under Settings => applications => pictures+camera). With this feature turned on, each application has their latitude, longitude and altitude stored as part of the standard EXIF data. I thought it would be...

Colin Eberhardt

FastClick for WP7 - Improving Browser Responsiveness for PhoneGap Apps

I recently released an update of the HTML5 / PhoneGap application I wrote a few months ago to the marketplace. This update fixed the location detection issue, where the marketplace certification process failed to detect that the application was using geolocation data via the browser (this issue has been fixed...

Colin Eberhardt

A Festive and Fun Windows Phone 7 Maze Game

Last night, with my Christmas presents all wrapped and a lack of any decent programmes (festive or otherwise) on television, I had a few hours to kill, so decided to create a festive-themed WP7 game ... Ever since I first started writing code for Windows Phone 7 I have wanted...

Colin Eberhardt

A Metro Themed PowerPoint Template

Over the weekend I mentioned on Twitter that I had created a Metro-style PowerPoint template. There were a few requests to share, so hence this blog post. Scroll to the bottom to download the PowerPoint file. So why create a Metro-style PowerPoint presentation? A couple of reasons, firstly, the templates...

Colin Eberhardt

A Simple Multi-Page Windows Phone 7 PhoneGap Example

This blog post shows how you can use PhoneGap to create Windows Phone 7 applications that are comprised of multiple, simple HTML pages, whilst meeting the Marketplace certification requirements. Colin Eberhardt is a Scott Logic technical Evangelist and a Technical Architect for Visiblox, suppliers of high-performance WPF and Silverlight charts....

Colin Eberhardt

A Windows Phone 7 Slide View with Page Pips

A popular user-interface in the iOS world is the UIPageControl which renders a small set of dots to indicate the number of pages, with the current page highlighted in some way. This is often used in conjunction with a UIScrollView to navigate between pages in a multi-page layout. Windows Phone...

Colin Eberhardt

Handling the back-stack in Windows Phone 7 PhoneGap applications

Recently I have been researching the use of PhoneGap for creating HTML5 Windows Phone 7 applications. I have written an introductory post on the subject and also managed to have a HTML5-based application accepted into the marketplace. The Windows Phone 7 execution model has a few unique features (when compared...

Colin Eberhardt

Pushpin Clustering with the Windows Phone 7 Bing Map control

This blog post provides a simple utility class that will cluster pushpins on a Bing Map control. This utility provides a way to achieve great performance with 1000s of pushpins. The Bing Map control for Windows Phone 7 is a versatile control, allowing you to provide your users with an...

Colin Eberhardt

Suppressing Zoom and Scroll interactions in the Windows Phone 7 WebBrowser Control

This blog post describes a simple helper class that can be used to supress scrolling and pinch zoom of the Windows Phone 7 WebBrowser control. Colin Eberhardt is a Scott Logic technical Evangelist and a Technical Architect for Visiblox, suppliers of high-performance WPF and Silverlight charts. Developers of Windows Phone...

Colin Eberhardt

An Introduction to Semantic Zoom in Windows 8 Metro

With the new Metro UI, Windows 8 has firmly embraced the tablet form-factor, with the interface tailored for touch and multi-touch interactions. Many of the Metro concepts familiar to Windows Phone 7 (WP7) developers are also present in Windows 8. Watching the vieos from the //build/ conference you can see...

Colin Eberhardt

Property Finder - the first HTML5-based Windows Phone 7 Application

Last week I submitted Property Finder, a simple application that searches for properties based in the UK, to the Windows Phone 7 Marketplace. I was happy to receive confirmation that this application had been certified and published just two days later. You can download the application from the marketplace now....

Colin Eberhardt

Tombstoning with PhoneGap for Windows Phone 7 (and KnockoutJS)

A few weeks back I wrote a blog post about how the recent announcement of PhoneGap support for Windows Phone 7 (WP7) which makes it possible to develop HTML5-based applications. In my previous blog post I showed the development of a simple HTML5 / JavaScript application which PhoneGap wraps up...

Colin Eberhardt

WinRT Transitions - Creating Fast and Fluid Metro UIs

This blog post looks at the new concept of 'transitions' that WinRT, within Windows 8, introduces. This concept makes it very easy for you to create a fluid and interactive UI without going anywhere near storyboards! I have to admit it, I am a big fan of the Metro Design...

Colin Eberhardt

A Windows Phone 7.1 (Mango) MVVM Tombstoning Example

In this blog post I look at the new application lifecycle model that Windows Phone 7.1 (Mango) introduces, and show how to handle the various lifecycle events in a simple MVVM application. In a previous blog post I described the development of a simple Windows Phone 7 application using the...

Colin Eberhardt

Developing Windows Phone 7 HTML5 apps with PhoneGap

This article show the step-by-step development of a Windows Phone 7 HTML5 application using PhoneGap. It also looks at how viable this approach is for cross-platform mobile development. Colin Eberhardt is a Scott Logic technical Evangelist and a Technical Architect for Visiblox, suppliers of high-performance WPF and Silverlight charts. Introduction...

Colin Eberhardt

Building Windows Phone Apps - a free WP7 eBook

I've just had an email land in my inbox from Microsoft's Mike Ormond, announcing that the Windows Phone 7 book that I contributed a couple of chapters to (Introduction and Tools), has finally been published! This is a collaborative book with contributions from Pete Vickers, Andy Gore, Mike Hole, Gergely...

Colin Eberhardt

TweetSearch - A Cross platform Metro UI WinRT and Silverlight Application

With the Windows 8 preview release earlier this week, developers are now faced with a whole new and exciting Microsoft stack. The Windows 8 architecture has something of a split-personality, incorporating a completely new runtime, WinRT together with the older Win32 and .NET framework. However, these sit on different sides...

Colin Eberhardt

Implementing a Windows Phone 7 Conversation View Part Two

This blog post describes how to implement a conversation / messaging style application with Windows Phone 7. It covers how to style the speech bubbles and the scrolling of the conversation list view when the phone keyboard is shown. A couple of weeks ago I wrote a blog post which...

Colin Eberhardt

Capturing Windows Phone 7 Panorama Images

The Windows Phone 7 Panorama control is widely used in applications and to many has come to symbolise the Metro Design Language. Search for panorama images and you will find numerous promo-shots of Windows Phone 7 applications which display the panoramic contents of the application hub, with an image of...

Colin Eberhardt

Implementing a Windows Phone 7 Conversation View

This blog post looks at how to to create a conversation view, mimicking the SMS messaging interface within Windows Phone 7. This post shows how we can select different DataTemplate for each item in an ItemsControl to achieve this effect. The Windows Phone 7 SMS messaging interface graphically illustrates between...

Colin Eberhardt

Metro In Motion #8 - AutoCompleteBox Reveal Animation

When I started the Metro In Motion series, I thought I would probably post three or four articles and be done. However, every time I use my Windows Phone 7 I seem to spot a new 'native' fluid UI effect which I would like to use in my own code....

Colin Eberhardt

Metro In Motion Part #7 - Panorama Prettiness and Opacity

This blog post details a simple metro-in-motion behaviour which reduces the Panorama control's contents while the user slides from item-to-item so that they can really appreciate your fancy background graphic! For those of you who have not been following my Metro-In-Motion series, I'll briefly recap. My aim is to provide...

Chris Price

A Webapp By Another Name II - The many pitfalls of using the application cache on mobile platforms

In part one I discussed my objective to create a "web-less webapp" which could masquerade as a native application on all modern mobile platforms. I covered the gotchas of developing with the cache, but stopped short of discussing the problems that come about when you wrap it up for each...

Colin Eberhardt

Metro In Motion Part #6 - Rolling List Location Indicator

This blog post describes the development of a rolling list location indicator. This indicator mirrors the behaviour seen in the native Windows Phone 7 calendar which rolls from one date to the next as the user scrolls. For those of you who have not been following my Metro-In-Motion series, I'll...

Chris Price

A Webapp By Another Name - The many pitfalls of using the application cache on mobile platforms

In this first installment, I'll introduce the appcache, talk about some gotchas of using the appcache and hopefully give some helpful hints for debugging it based on my experience. Introduction The appcache is a new DOM feature added in the unholy bundle we call HTML5. It aims to allow your...

Colin Eberhardt

A Simple Windows Phone 7 MVVM Tombstoning Example

This blog post shows how to implement tombstoning within a Windows Phone 7 application that following the Model-View-ViewModel pattern. UPDATE: I have published a update to this blog post to handle the new dormant state in Windows Phone 7.1 (Mango). Colin Eberhardt is a Scott Logic technical Evangelist and a...

Colin Eberhardt

Metro In Motion #5 - SandwichFlow

For the past few months I have been writing a Metro-In-Motion blog series which describes how to recreate some of the fluid effects found in native Windows Phone 7 applications within your own applications. So far I have covered fluid list animations, 'peel' animations, flying titles and a 'tilt' effect...

Colin Eberhardt

Metro In Motion Part #4 - Tilt Effect

This blog post describes the implementation of a metro 'tilt' effect for Windows Phone 7 which causes element to respond to user interactions by tilting in 3D So far in the "Metro In Motion" series I have covered fluid list animations, 'peel' animations and flying title. In this blog post...

Colin Eberhardt

A Fast Loading Windows Phone 7 NavigationList Control

This blog post describes a Windows Phone 7 NavigationList control, a list control designed for navigation pages. The NavigationList renders twice as fast as a ListBox and has a slightly simpler API. A few months ago I blogged about the relative performance of the Windows Phone 7 emulator versus the...

Colin Eberhardt

Gartner Predicts a Promising Future for Windows Phone 7 Developers

Yesterday Gartner released its latest mobile smartphone sales predications, with the figures showing a dramatic turnaround in their predictions for the Microsoft Windows Phone 7 platform. The latest predictions are charted below (I find this much easier to visualise this data in a chart versus the tabular form which Gartner...

Colin Eberhardt

Metro In Motion Part #3 - Flying Titles!

In this blog post I look at how to implement the fly-out fly-in effect seen in native Windows Phone 7 applications. This effect is seen in the native mail application; when you click on a message, the title flies out of the list then flies back in as the title...

Colin Eberhardt

Metro In Motion Part #2 - 'Peel' Animations

This blog post is part #2 of my Metro In Motion series. In this post I demonstrate how to implement the animated 'peel' effect seen when native Windows Phone 7 applications exit. In my previous blog post I discussed how the Metro Design Language that heavily influences the Windows Phone...

Colin Eberhardt

Metro In Motion Part #1 - Fluid List Animation

This blog post presents an attached behaviour that gracefully slides the contents of a list into view when used in conjunction with a Pivot control, emulating the Windows Phone 7 email application. The Windows Phone 7 user interface is based on the Metro Design Language, which favours clear typography, content...

Colin Eberhardt

Google Sky on Windows Phone 7

This blog post shows just how easy it is to use Google Sky as a tile source for Bing Maps, bringing the universe to Windows Phone 7! Personally I think mapping is one of the most exciting forms of application for mobile devices - the fantastic imagery available from Bing...

Colin Eberhardt

Windows Phone 7 Performance Measurements - Emulator vs. Hardware

This blog post presents a few performance measurements that detail the relative performance of ItemsControl, ListBox and manual addition of elements to the UI. These performance measurements are also compared when ran on the emulator and the real hardware. My early experiences of moving from the WP7 emulator to the...

Colin Eberhardt

Windows Phone 7 DeferredLoadContentControl

This blog post describes a simple content control that can be used to defer the rendering of its contents in order to provide a better user experience on Windows Phone 7. I think anyone who has made the transition from Emulator to Hardware with developing for Windows Phone 7 has...

Colin Eberhardt

A Windows Phone 7 Jump List Control

This blog post presents a Windows Phone 7 Jump List control that I have developed.This post describes the API in detail and includes full sourcecode. Feel free to use and enjoy! The video below shows the control working on the emulator, the video further down this page shows it working...

Colin Eberhardt

White Paper: Silverlight, WPF and Windows Phone 7 cross platform development

Last week I gave a presentation at a joint Scott Logic / Microsoft event about how WPF and Silverlight are unifying the development platform for desktop, web and mobile. To accompany the talk I wrote a white paper which delves into this subject in a little more detail. You can...