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

Like this? Share it with your network

Share

Mobile Development across Different Platforms @ Immobilienscout24

on

  • 1,782 views

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.

Statistics

Views

Total Views
1,782
Views on SlideShare
1,777
Embed Views
5

Actions

Likes
1
Downloads
14
Comments
0

2 Embeds 5

http://www.linkedin.com 3
https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mobile Development across Different Platforms @ Immobilienscout24 Presentation 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/