A brief summary of the path taken by the mobile development team at realestate.com.au.
It provides an overview of the project from inception to cancellation, to rebirth, multi-platform and tablet.
The presentation concludes with some observations, on the platform, technologies and the future.
4. The Beginning
• New to the organisation
• New team
• Organisation new to
native mobile
• High expectations
4
5. Not a Website
• Native mobile is not
the mobile web
• REAPA (REA Personal
Assistant)
5
6. We Screwed Up
• The initial project was cancelled
after three months (the agile
process in practice)
• Reset and re-imagined
• Halved the team size
• Doubled the productivity
6
8. Release One
• Nine Weeks to Develop (including
back end)
• Initially rejected by Apple
• Counting the appeal it took a month
from submission to release
8
10. Android
• Two External Parties Approached
• Both quoted about the same
duration
• Three weeks.
10
11. Android
• Four Months in the Making
• All experience mobile java
developers
• Majority of the development done in
China
• Completed here (with the team
from China)
11
13. iOS 1.3
• Bookmarking + ?
• Third Party integration
• Shelved waiting for Third Party
• Eventually released without Third
Party features
13
14. iOS 1.3
• We broke it
• Active error monitoring alerted us
within minutes of store launch
• Our only x.x.x release
• 12 Hours for new version to appear
in the store
14
16. iPad
• Eight week schedule
• Problems with unanticipated scope
• Problems with defects
• Five weeks in and very little was
production quality
16
17. iPad
• Changed the team Structure
• Reduced from six to three developers
• Moved two developers to automated
testing
• Moved two to another project
• Added an experienced developer (me)
17
20. iOS
• Two screen sizes, three resolutions
• Memory varies
• CPU varies
• Subtle UI changes coming in iOS 5
20
21. Android
• Every device is different, you'll need a few
• Screen and resolutions vary (lots)
• Touch and tap tracking vary (lots)
• CPU and Memory vary (lots)
• Basic UI varies (lots)
• Physical keyboards
21
23. iOS
• Objective-C, rocks, seriously
• xCode, sucks, getting better, very slowly
• Frameworks, you need to know them
• Understand, layers and views intimately
• I've never used interface builder for a
production application
23
24. Android
• Java, ageing gracefully, but it's still Java
• Alternative languages, scala, clojure, et al
• Eclipse, IntelliJ, rock the house
• Learning curve is in the frameworks
24
26. iOS
• It's easier than you think
• Remember the rules, you alloc or copy it,
you own it
• Blocks are sneaky
• Listen to the system warnings
• ARC is coming
26
27. Android
• Garbage collection is a beautiful thing
• Garbage collection sucks
• Reference leaks are your enemy
• Hard to dump it when you know your
done
27
29. Respect the differences
• Don't just port you application from one
platform to the other
• The UX is subtly (and not so subtly)
different
• Cross platform toolkits don't deliver
(yet?)
29
30. Unified Testing
• One set of acceptance tests, share the definitions
• Automate what you can, be prepared to manually
test what you can't
• Screen comparisons are an essential part of the
process
• No dedicated QA for our first two releases
• QA is everyone's role
30
32. In My Opinion
• Deliver an application that has an opinion
(you can't please everyone anyhow)
• Concentrate on a consistent user
experience
• Everyone is responsible for quality
• It's not easy. Expect some good developers
to fail in the move to mobile and that's okay
32
33. And
• iOS is easier than Android, for now.
• Ice Cream Sandwich will reduce Android
device fragmentation
• The Windows marketplace will be a better
revenue source than The Android markets
• I'm going to be wrong on at least one of
the point above
33