extreme source compatibility

14
Source Compatibili ty Robert Cooper Extreme

Upload: robert-cooper

Post on 06-Dec-2014

590 views

Category:

Technology


0 download

DESCRIPTION

The story of Shortyz. A crossword puzzle application for Android, iGoogle, Wave, Facebook, WebOS and the web.

TRANSCRIPT

Page 1: Extreme Source Compatibility

Source CompatibilityRobert Cooper

Extreme

Page 2: Extreme Source Compatibility

Background

I love crossword puzzles

Fled iPhone land for Android

No good crossword apps

Page 3: Extreme Source Compatibility

Shortyz

Named in honor of (and with apologies to) Will Shortz @ NYT/NPR

Downloads free puzzles

Can download NYT subscription puzzle

Page 4: Extreme Source Compatibility

1.0

Written in 2 weekends

PUZ file format sucks

Lots of UI issues GridView performance poor GridView/ListView have two completely different

interaction models

However, “Good Enough for Me.”

Page 5: Extreme Source Compatibility

2.0

Laptop stolen

Written in about 3 weeks of nights/weekends

New UI Custom rendering Custom touch handling (ugh)

Cleaner Code IO, State, Controller in separate APIs.

Page 6: Extreme Source Compatibility

Life is Good

In a reasonable steady state

Good feedback from users

Growing if small user base

Page 7: Extreme Source Compatibility

Other People

Got an email from Pam @ Google asking for a Wave version

Got an IM from Josh @ Palm asking for a WebOS version

Page 8: Extreme Source Compatibility

Hmm…

“Some people when faced with a problem think, I know, I’ll use GWT…”

Page 9: Extreme Source Compatibility

Initial Effort

Code reuse actually made this easy.

Moved model code and IO code into separate packages.

Made GWT Module for original code

Implemented new renderer for web

Took about 5 hours to get something playable

Page 10: Extreme Source Compatibility

History Repeating

Play -> Render cycle painfully slow on the DOM.

Re-implemented the Web version to look more like the original Android version with MVC and bind events

Performance problem solved

Page 11: Extreme Source Compatibility

Productivity

Web version (after Android code) About 16 hours

Facebook Version About 3 hours (Still needs work)

WebOS Version About 5 hours Binary IO painful

iGoogle version Trivial

Page 12: Extreme Source Compatibility

Productivity (cont)

Wave Version Almost 40 hours

Wave development is a serious PITA because you need a full deploy to make it work.

There are a lot of things they don’t tell you in the docs.

Page 13: Extreme Source Compatibility

Summary

Java on “Everything but the Java Platform”

Tips: Manage Dependencies. Gin is totally fracking awesome.

Interesting: GWT gziped is ~ same size as Android version.

Page 14: Extreme Source Compatibility

Links

Shortyz on Android Market

shortyz.kebernet.net

“Shortyz Crosswords” public Wave

apps.facebook.com/shortyz