Your SlideShare is downloading. ×
Mobile Development across Different Platforms @ Immobilienscout24
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Mobile Development across Different Platforms @ Immobilienscout24

1,564
views

Published on

The presentation shows professional Android Development and Best Practices regarding API Development It presents several aspects of a professional Android Development like organizational setup as well …

The presentation shows professional Android Development and Best Practices regarding API Development It presents several aspects of a professional Android Development like organizational setup as well as the technical environment like build infrastructure and API development. It also covers our best practices and lessons learned regarding software architecture for android applications and API development. This includes API compatibility, security and versioning.

Published in: Technology, Business

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,564
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. www.immobilienscout24.deMobile Development acrossDifferent Platforms Berlin | 13.02.2012 | Hasan Hoşgel & Thomas Kummert
  • 2. About us ...Hasan Hoşgel, @alosdevSenior DeveloperMobile enthusiast,Man of action
  • 3. About us ... Thomas Kummert, @kummibaer Developer Pragmatic developer
  • 4. Germany‘s leadingImmobilienScout24 real-estate portal 550 employees, 170 in the IT Seite | Titel der Präsentation | Autor der 4 Präsentation
  • 5. Germany‘s leadingImmobilienScout24 real-estate portal 550 employees, 160 in the IT > 6 Million unique users > 2 Billion PI > 180 Million Expose views ~ 1.5 Million active listings > 110,000 Vendors ... per month Seite | Titel der Präsentation | Autor der 5 Präsentation
  • 6. Germany‘s leadingImmobilienScout24 real-estate portal 550 employees, 160 in the IT > 6 Million unique users 2 datacenter > 2 Billion PI ~100 physical > 180 Million Expose views ~800 virtual ~ 1.5 Million active listings ... machines > 110,000 Vendors ... per month Seite | Titel der Präsentation | Autor der 6 Präsentation
  • 7. 2010-08 (no team):The Creators 1 x developer 2012-02 (2 teams): 7 x developer 2 x QA-engineer 2 x product manager 1 x designer
  • 8. 2010-08 (no team):The Creators 1 x developer 2012-02 (2 teams): 7 x developer11 applications 2 x QA-engineer1 Mobile site 2 x product manager> 2.2 Mio Downloads 1 x designer> 7.8 Mio Visits> 20% mobile traffic
  • 9. 2010-08 (no team):The Creators 1 x developer 2012-02 (2 teams): 7 x developer11 applications 2 x QA-engineer1 Mobile site 2 x product manager> 2.2 Mio Downloads 1 x designer> 7.8 Mio Visits Agile development> 20% mobile traffic Scrum/ Kanban
  • 10. Native, hybrid orwebapp? http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 11. Native, hybrid orwebapp? Depends on application, environment and user needs http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 12. Native, hybrid orwebapp? Depends on application, environment and user needs - User-interface - Responsive design http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 13. Native, hybrid orwebapp? Depends on application, environment and user needs- Hardware- Device features - User-interface- Security - Responsive design http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 14. Native, hybrid orwebapp? Depends on application, environment and user needs - External resources - Performance- Hardware- Device features - User-interface- Security - Responsive design http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 15. - DevelopmentNative, hybrid or - Technologieswebapp? - Knowledge Depends on application, environment and user needs - External resources - Performance- Hardware- Device features - User-interface- Security - Responsive design http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 16. - DevelopmentNative, hybrid or - Technologieswebapp? - Knowledge Therepends no „the De is on application and right“ needs user solution to lfit rces - Externa resou every demand. rformance - Pe- Hardware- Device features - User-interface- Security - Responsive design http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 17. - DevelopmentNative, hybrid or - Technologieswebapp? - Knowledge Therepends no „the De is on application and right“ needs user Solution to lfit rces - Externa resou every demand. rformance - Pe- Hardware- Device features - User-interface- Security - Responsive design http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 18. Native, hybrid orwebapp? Android & IOS will be supported Two Mainstream applications è native Other applications can choose Future: Mobile website with responsive Design & HTML 5
  • 19. Infrastructure http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  • 20. Infrastructure CI-Server: > SSD > Ubuntu 32-Bit > Jenkins > ADT http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  • 21. Infrastructure Repository: > Nexus CI-Server: > SSD > Ubuntu 32-Bit > Jenkins > ADT http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  • 22. Infrastructure Repository: > Nexus CI-Server: VCS: > SSD > SVN > Ubuntu 32-Bit > Jenkins > ADT http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  • 23. Infrastructure Repository: > Nexus CI-Server: VCS: > SSD > SVN > Ubuntu 32-Bit > Jenkins > ADT Errorreporting: > Hockeyapp http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  • 24. Infrastructure Repository: > Nexus CI-Server: VCS: > SSD > SVN > Ubuntu 32-Bit > Jenkins > ADT Errorreporting: > Hockeyapp ~20 Android devices http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  • 25. Infrastructure Repository: > NexusBuild-Tools: CI-Server: VCS:> Maven > SSD > SVN> Maven- > Ubuntu 32-BitAndroid-Plugin > Jenkins> Android- > ADT Errorreporting:Jenkins-Plugin > Hockeyapp> Eclipse + ADT ~20 Android devices http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  • 26. Architecture UI servicesfilesystem sensors network database http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 27. Architectureexample Exposeview expose service memory database network http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 28. Used Frameworks http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 29. Used Frameworks Signpost(OAuth client) http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 30. Used Frameworks RoboGuice Signpost (dependency(OAuth client) injection) http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 31. Used Frameworks RoboGuice Signpost (dependency(OAuth client) injection) JSoup (HTML parser) http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 32. Used Frameworks RoboGuice Signpost (dependency(OAuth client) Robotium injection) (like selenium/ webdriver) JSoup (HTML parser) http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 33. BackendAPI http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 34. BackendAPI Best Cross-Platform approach: create an API http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 35. BackendAPI Best Cross-Platform Rest-API approach: resource create an API oriented http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 36. BackendAPI Best Cross-Platform Rest-API approach: resource create an API oriented Json/ XML http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 37. BackendAPI Best Cross-Platform Rest-API approach: resource create an API oriented Json/ „eat your own XML dog food“ http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 38. BackendAPI Best Cross-Platform Rest-API approach: resource create an API orientedDon‘t create client Json/ „eat your own XML dependent APIs dog food“ http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 39. BackendAPI – Best Practices http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 40. BackendAPI – Best Practices versioning http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 41. BackendAPI – Best Practices downward versioning compatible http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 42. BackendAPI – Best Practices downward versioning compatible OAuth support http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 43. BackendAPI – Best Practices downward versioning compatible OAuth support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 44. BackendAPI – Best Practices downward versioning compatible different OAuth views support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 45. BackendAPI – Best Practices downward versioning compatible addable features different OAuth views support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 46. BackendAPI – Best Practices downward versioning compatible addable features different OAuth help caching: views support Modified-Since- & Etag-Header communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 47. offerBackend playgroundAPI – Best Practices downward versioning compatible addable features different OAuth help caching: views support Modified-Since- & Etag-Header communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 48. AndroidBest Practices
  • 49. AndroidBest Practices test
  • 50. AndroidBest Practices test test
  • 51. AndroidBest Practices test test test
  • 52. AndroidBest Practices test test test on all emulators
  • 53. AndroidBest Practices test test test on all emulators
  • 54. AndroidBest Practices test test test on all emulators available devices
  • 55. AndroidBest Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators available devices
  • 56. AndroidBest Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devicesRemove dialogues inonSavedInstanceState
  • 57. AndroidBest Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devices Don‘t useRemove dialogues in message.what=1006 ononSavedInstanceState LG Smartphones è ClassCastException
  • 58. AndroidBest Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devices Don‘t useRemove dialogues in message.what=1006 ononSavedInstanceState LG Smartphones è ClassCastException Json streamer vs. parser
  • 59. AndroidBest Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devices Don‘t useRemove dialogues in message.what=1006 ononSavedInstanceState LG Smartphones è ClassCastException Json streamer vs. parser AsyncTask vs. Handler
  • 60. AndroidBest Practicesoffer StreetView, if possible:1. create WebView2. add JavascriptInterface3. load data with base URL (maps.js &StreetViewService)4. Start Intent for StreetView, ifpanorama exists!http://stackoverflow.com/a/4747663/495712
  • 61. AndroidBest Practicesoffer StreetView, if possible: Attention:1. create WebView A lot of best practices2. add JavascriptInterface doesn‘t work on3. load data with base URL (maps.js &Honeycomb & higherStreetViewService)4. Start Intent for StreetView, ifpanorama exists!http://stackoverflow.com/a/4747663/495712
  • 62. Forecast http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 63. Forecast using Git http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 64. Forecast using Git Widget http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 65. Forecast using Git extend Widget IS24-API SDK http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 66. Forecast using Git using new extend Widget Google IS24-API APIs SDK http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 67. Forecast tablet using Git layout using new extend Widget Google IS24-API APIs SDK http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 68. Forecast tablet using Git Google TV layout layout using new extend Widget Google IS24-API APIs SDK http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 69. Forecast code coverage tablet using Git Google TV layout layout using new extend Widget Google IS24-API APIs SDK http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  • 70. Thanks for yourattention! Questions? http://www.flickr.com/photos/peterjlambert/97671748/sizes/o/in/photostream/