This week on Herding Code, the guys talk to Damien Guard and Robert Sweeney about Sticker Tales (a Windows Store application for kids), some challenges in building touch applications for kids, their CSharpAnalytics open source library, and a companion app they built for Western Digital.

Download / Listen:

Herding Code 163: Sticker Tales and Building Windows Store apps [audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0163-Sticker-Tales-and-Building-Windows-Store-apps.mp3]

Show Notes:

  • Introductions
    • (00:39) Damien describes what he's been up to since we last talked to him.
    • (01:25) Robert worked on the Windows user interface, then XBox.com, then several apps for NetFlix.
    • (02:57) Jon asked about the experience of building high scale customer facing applications at XBox and NetFlix. Damian tells about how they ran the XBox store on two servers.
  • Building Sticker Tales
    • (03:38) Jon asks how they decided to build a sticker book app. Robert explains how they got started.
    • (04:45) Robert describes how they decided to spend some money on professional illustration.
    • (05:40) Jon describes how Sticker Tales works and how he loves watching what his five year old daughter comes up with, especially how she plays with scale. Robert says he sees the same as his daughter
    • (6:57) Damien describes some of the surprises they saw in user testing.
    • (8:30) Scott K asks if their experiences in watching how kids interact with touch gestures will influence their design in general.
    • (9:18) Damien talks about some of the changes the kids inspired, especially using direction of motion to flip things. Jon says he wants this flip gesture everywhere, and Scott K says he thinks kids should be interaction testing all touch interfaces.
    • (10:44) Damien gives another example with how pinch / zoom didn't work well for kids, and they added a handle instead.
    • (11:26) Jon asks about how they were interacting with the illustrators. Robert describes the interaction and how they handled different image sizes, exporting, etc.
  • In-app purchases
    • (13:37) Jon asks about the "free app + in app purchase" model. Robert explains why they chose that model.
    • (14:48) Jon asks if the in-app purchases were difficult to set up. Damien says yes and explains how it was set up. Robert says the purchasing is easy, but the delivery is up to you as the developer.
  • Google Analytics and the CSharpAnalytics library
    • (17:00) K Scott asks about what kind of analytics they were using. Damien explains how they used Google Analytics and explains they published that library as CSharpAnalytics on GitHub. Damien likes tracking usage patterns, Robert says he loves the real-time and geographic views.
    • (18:19) Robert says they track initiated vs. completed purchases, and they see it's only about 10%. Jon speculates that's because kids start the purchase and the parents veto it.
    • (19:08) K Scott asks if it's only available for Windows 8. Damien says that's all that's documented, but he's set it up to work with Windows Phone as well.
    • (19:30) Jon asks about how auto-analytics work.
  • Platform targeting - iPad future, Windows 8 implementation
    • (20:40) Kevin asks if they're looking at porting this to iPad. Robert says they're looking at using Xamarin for that.
    • (21:24) Jon asks about what Windows 8 integration points they're using. Robert discusses live tiles, sharing, search, and background download API support.
    • (22:58) Jon asks if they used C# / XAML or HTML. Damien says they went with C# / XAML partly because the touch API support seemed better early on.
  • SharpDX and performance
    • (23:30) Damien explains that they're using SharpDX to be able to take screenshots for live tiles, sharing, etc. Jon gets confused and thinks they're using SharpDX everywhere, but Robert explains it's only for saving screenshots - everything else is using image controls.
    • (26:54) Jon asks if they ran into any performance issues. Robert explains some of the guidelines they'd learned at NetFlix and says that everything's worked really well in StickerTales. Damien says they've seen great performance on Surface / ARM as well. Jon says he's seen Audacity recompiled for ARM and it worked great on Surface, too.
  • Data storage and MVVM perspective
    • (28:34) Jon asks what they're using for data storage; Damien says using XML.
    • (28:46) Robert says they're not using MVVM because it just doesn't work with the Microsoft tools and isn't worth it for the kinds of thin clients they've been building, even at NetFlix.
  • Western Digital companion application
    • (30:07) Jon asks how about their next project, a companion application for Western Digital. Damien describes how Western Digital wanted an application that would present an all-up aggregate view of media on external media.
    • (30:42) Damien says they using SQLite for that project and explains the challenges they ran into with hierarchical data storage in a relational database engine.
  • Unit Testing Windows Store application code
    • (32:52) Kevin asks about the testing story. Damien says they used MSTest and it all worked fine, with the exception of determining code coverage. Jon asks some questions about testing frameworks and test focus for Windows Store applications.
    • (35:20) Robert says the WinRT platform wasn't written in a very testable manner - there are lots of static classes and a generally test resistant API.
  • Business Challenges and Opportunity for Windows Store Developers
    • (36:38) Jon asks about the challenges of building and running a company that's building Windows 8 applications. Robert describes some of the perception and education issues they face in selling the potential to customers.
    • (38:20) Scott K compares the current Windows Store opportunity to the pre-iOS Mac development market - a nice place to create a niche product and make a good living. Damien says it is nice to be featured in the store, and that's difficult on other platforms. Robert says that ease of developing Windows Store applications means that you still need to market your applications.

Show Links: