Post on 05-Dec-2014
description
transcript
1
Who Am I
Delivery Manager - MobileREA Group
(realestate.com.au et al)
2
From Concept to …
3
The Beginning
• New to the organisation
• New team
• Organisation new to native mobile
• High expectations
4
Not a Website
• Native mobile is not the mobile web
• REAPA (REA Personal Assistant)
5
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
Release One
7
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
Android
9
Android
• Two External Parties Approached
• Both quoted about the same duration
• Three weeks.
10
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
iOS 1.3
12
iOS 1.3
• Bookmarking + ?
• Third Party integration
• Shelved waiting for Third Party
• Eventually released without Third Party features
13
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
iPad
15
iPad
• Eight week schedule
• Problems with unanticipated scope
• Problems with defects
• Five weeks in and very little was production quality
16
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
Observations
18
The Platform
19
iOS
• Two screen sizes, three resolutions
• Memory varies
• CPU varies
• Subtle UI changes coming in iOS 5
20
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
The Environment
22
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
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
Memory Management
25
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
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
Delivering to Multiple Platforms
28
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
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
Summarysome closing thoughts
31
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
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
Questions@kevinoneill
34