Upload
open-party
View
1.172
Download
5
Embed Size (px)
DESCRIPTION
2011.01.22 北京OpenParty
Citation preview
Thoughtworks
Index
• Overview of Mobile Development
• Diff platforms & various dev languages
• Why Java
• What Java can do
• Where to dev
• How to dev
• Key Points
Thoughtworks
Mobile Development-Diff from PC-
• Con– Communication– Mobile– Keep live– Embedded Systems (GPS, RFID and etc)– Value Added Service (E-ticket)
• Pos– Battery– Screen– Process– Storage
Thoughtworks
Mobile Development
• Simon; it was designed by IBM in 1992
• Smartphone Ericsson 1997
• powerful processors, abundant memory, larger screens, and open operating systems
Thoughtworks
Mobile Development Cont.
According to Gartner in their report dated November 2010, totalsmartphone sales doubled in one year and now smartphonesrepresent 19.3 percent of total mobile phone sales. Over late 2009and 2010 Android's smartphone market share has increased veryrapidly [Gartner, 2010]
• 2010 Q3 PC – 88.3 million (7.6%)
• 2010 Q3 Smartphone – 77 million (78%)
• Apple Store about 10 billion download
Thoughtworks
Diff platforms & various dev languages
Year Platform Support
2000 Symbian Ericsson
2001 WinCE Microsoft
2002 PalmOS* Palm
2002 Blackberry RIM (32m)
2007 iOS Apple
2008 Android Google
2010** Bada Sumsung
2010 Symbian^3 OS Nokia
Thoughtworks
Diff platforms & various dev languages
Thoughtworks
Why Java
• Do you believe?
Share of worldwide 2010 Q3 smartphone sales to end users by operating system, according to Gartner.
iOS
• Object-C
Windows Mobile
• C, C++
• Java ME
Android
• Java (C, C++ & VB)
Blackberry
• Java
Symbian
• C++
• Java ME
Bada
• Java*
Thoughtworks
What Java can do
• Java App
–Opera Mini– Google Map
– Gmail for Mobile
– eBuddy IM
– Snaptu
– Skype Lite
– …
Thoughtworks
What Java can do
• Java App
– Opera Mini
–Google Map– Gmail for Mobile
– eBuddy IM
– Snaptu
– Skype Lite
– …
Thoughtworks
What Java can do
• Java App
– Opera Mini
–Google Map– Gmail for Mobile
– eBuddy IM
– Snaptu
– Skype Lite
– …
Thoughtworks
What Java can do
• Java App
– Opera Mini
– Google Map
–Gmail for Mobile– eBuddy IM
– Snaptu
– Skype Lite
– …
Thoughtworks
What Java can do
• Java App
– Opera Mini
– Google Map
– Gmail for Mobile
–eBuddy IM– Snaptu
– Skype Lite
– …
Thoughtworks
What Java can do
• Java App
– Opera Mini
– Google Map
– Gmail for Mobile
–eBuddy IM
–Snaptu– Skype Lite
– …
Thoughtworks
What Java can do
• Java App
– Opera Mini
– Google Map
– Gmail for Mobile
–eBuddy IM
– Snaptu
–Skype Lite– …
Thoughtworks
What Java can do (2)
• How about Game– Iron Man 2
– The Team-A
– Prison Tycoon
– SimCity Deluxe
– Guitar Hero World Tour
– FIFA 2010: South Africa World Cup
– Robin Hood: The Movie Game
– Prince of Persia: The Forgotten Sands
– FaceBreaker
Thoughtworks
Where to dev - plfm
• Blackberry
Thoughtworks
Where to dev - plfm
• Android
Thoughtworks
Where to dev - tools
• SDK-Toolkit
• IDE
• Emulator
• Management Tools
Thoughtworks
Where to dev - tools
• Sun Wireless Toolkit
• Netbean
• Eclipse*
• IntelliJ*
• …
Thoughtworks
How to dev
• Proposal (UI-UX)
– UI focused app
• Paper based proposal
• Photoshops based proposal
– Service focused app
Thoughtworks
How to dev
• Design/Framework – BDD/TDD
REA_Project
REA_Domain
REA_Unit_Test
Focus on UI and Event handling
Focus on domain logic & status
Focus on domain unit test
Thoughtworks
How to dev
• continuous integration (see REA hudsonserv)
Thoughtworks
How to dev
• Agile process (see Pivatol tracker)
Thoughtworks
Experiences
• Key Points– Concurrency Programming
– Battery Consuming
– Geo Location
– UI and UX
– Binary Code Analysis (text, audio&video)
– Network (HTTP, HTTPS, RTP and etc)
– Broad wide (Network, Edge/Wifi/3G/GPRS)
– Service Provider
– Multi-Platform Knowledge
Thoughtworks
Concurrency Programming
• Java Concurrency Programming
– Basic
– Concurrency package
– RTSJ (real-time)
• Whether it is correct or not
• Testing and Formal method
Thoughtworks
Battery Consuming
• Threads
• IO Operation
• Schedules (Avenace website)
Thoughtworks
Geo Location
• Example (GPS Preliminary Research)
Thoughtworks
Blackberry 9500( around 10 mins cycling)
• GPS Setting• Sampling Interval (30 secs)• Sampling Duration (15 secs)
• Criteria• H Accuracy (2 meters)• V Accuracy (Not applied)• P Consumption (Medium)• Cost (true)
• 16 GPS• 5 Heartbeat
Succ Fail
4 2
5 1
3 3
3 3
0 6
Thoughtworks
However…8900 | 9530 | 8310
Obtain GPS Data at the period
Thoughtworks
Criteria Comparison Horizontal and Vertical Accuracy
-
6059
Succ vs Fail with HVA 10
GPS Fix Succ GPS Fix Fail
5360
Succ vs. Fail with HVA 2
GPS Fix Succ GPS Fix Fail
63
45
Succ vs. Fail with HVA 15
GPS Fix Succ GPS Fix Fail
Thoughtworks
UI and UX
• Layout (resolution, keyboard, gravity and etc.)
• Example (REA UX)
Thoughtworks
Thoughtworks
Binary Code Analysis (audio, video
• Example (WBXML, Audio)
Thoughtworks
Network (HTTP, HTTPS, RTP and etc)
• Example (How network affect connection)
Thoughtworks
Broad wide (Network, Edge/Wifi/3G/GPRS)
• Example (technologies selection)
– Linear AU (mono, stereo)
– GSM
– ARM
– MP3
– MIDI
– WAV
– …
Thoughtworks
Service Provider
• Example (Blackberry Big Picture)
Thoughtworks
Thanks