Colin Eberhardt

Colin Eberhardt

I lead the Scott Logic R&D team and am a prolific technical author, blogger and speaker on a range of technologies. For a number of years I worked with the Microsoft stack of technologies, including WPF, WCF, Silverlight and Windows Phone. More recently I have diversified to include HTML5, JavaScript and iOS development.

I am a member of the Ray Wenderlich tutorial team, where I publish my iOS articles. I write for the CodeProject website and have also written for Microsoft's MSDN magazine. I contribute to a number of open source projects, including PropertyCross which I run alongside Chris Price.

Featured Articles

Functional Swift and Memoization

on 22 Sep 2014

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.

MVVM with ReactiveCocoa

on 07 Jul 2014

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.

Swift Sequences and Lazy Evaluation

on 26 Jun 2014

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.

A Colour Analysis of the Apple App Store

on 12 Apr 2014

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.

A Statistical Analysis of the Apple App Store

on 20 Mar 2014

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.

Articles

Swift Initialization and the Pain of Optionals

on 20 Nov 2014

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.

Binding mutable arrays with ReactiveCocoa

on 04 Nov 2014

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.

Jekyll Pagination and Infinite Scroll

on 14 Oct 2014

Recently I updated the Scott Logic blog to implement infinite scrolling using a combination of Jekyll pagination and jScroll. Both of these components are quite fussy about their respective configuration, meaning that integrating them took longer than expected. I thought I'd share my solution in this blog post, hopefully saving others from the hours I spent digging into jScroll code or cursing Jekyll!

Swift and the curious case of AnyObject

on 24 Sep 2014

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!

Functional Swift and Memoization

on 22 Sep 2014

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.

Swift By Tutorials is Published

on 18 Sep 2014

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!

The Game of Life with Functional Swift

on 10 Sep 2014

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...

Swift Adoption Statistics

on 01 Aug 2014

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.

A Statistical Comparison of the iOS and Android Stores

on 10 Jul 2014

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.

MVVM with ReactiveCocoa

on 07 Jul 2014

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.

Swift Sequences and Lazy Evaluation

on 26 Jun 2014

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.

White Paper - HTML5 At Enterprise Scale

on 19 May 2014

Moving from desktop or plugin technologies (Flex, Silverlight, Java Applets) to HTML5 is a challenge for developers of large-scale enterprise applications. This White Paper discusses the challenges and offers potential solutions.

A Colour Analysis of the Apple App Store

on 12 Apr 2014

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.

A Statistical Analysis of the Apple App Store

on 20 Mar 2014

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.

Simulating Accelerometer and Location data for iOS

on 19 Mar 2014

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.

ReactiveCocoa - The Definitive Guide

on 13 Mar 2014

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

PropertyCross 1.3 Released

on 31 Jan 2014

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