www.immobilienscout24.deMobile Development acrossDifferent Platforms  Berlin | 13.02.2012 | Hasan Hoşgel & Thomas Kummert
About us ...Hasan Hoşgel, @alosdevSenior DeveloperMobile enthusiast,Man of action
About us ... Thomas Kummert, @kummibaer Developer Pragmatic developer
Germany‘s leadingImmobilienScout24                                              real-estate portal                        ...
Germany‘s leadingImmobilienScout24                                              real-estate portal                        ...
Germany‘s leadingImmobilienScout24                                              real-estate portal                        ...
2010-08 (no team):The Creators               1 x developer               2012-02 (2 teams):               7 x developer   ...
2010-08 (no team):The Creators                       1 x developer                       2012-02 (2 teams):               ...
2010-08 (no team):The Creators                          1 x developer                          2012-02 (2 teams):         ...
Native, hybrid orwebapp?                    http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
Native, hybrid orwebapp?           Depends on           application,           environment and           user needs       ...
Native, hybrid orwebapp?           Depends on           application,           environment and           user needs       ...
Native, hybrid orwebapp?            Depends on            application,            environment and            user needs- H...
Native, hybrid orwebapp?            Depends on            application,            environment and            user needs   ...
- DevelopmentNative, hybrid or                            - Technologieswebapp?                                      - Kno...
- DevelopmentNative, hybrid or                            - Technologieswebapp?                                      - Kno...
- DevelopmentNative, hybrid or                            - Technologieswebapp?                                      - Kno...
Native, hybrid orwebapp?            Android & IOS will be supported            Two Mainstream applications            è n...
Infrastructure                 http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
Infrastructure                       CI-Server:                       > SSD                       > Ubuntu 32-Bit         ...
Infrastructure                                             Repository:                                                    ...
Infrastructure                                             Repository:                                                    ...
Infrastructure                                             Repository:                                                    ...
Infrastructure                                             Repository:                                                    ...
Infrastructure                                             Repository:                                                    ...
Architecture                                  UI                            servicesfilesystem         sensors            ...
Architectureexample                        Exposeview                            expose                            service...
Used Frameworks       http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Used Frameworks  Signpost(OAuth client)        http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/ph...
Used Frameworks                                                                RoboGuice  Signpost                        ...
Used Frameworks                                                                RoboGuice  Signpost                        ...
Used Frameworks                                                                RoboGuice  Signpost                        ...
BackendAPI          http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
BackendAPI   Best Cross-Platform        approach:      create an API                 http://www.flickr.com/photos/roll_ini...
BackendAPI   Best Cross-Platform                       Rest-API        approach:                            resource      ...
BackendAPI   Best Cross-Platform                       Rest-API        approach:                            resource      ...
BackendAPI   Best Cross-Platform                       Rest-API        approach:                            resource      ...
BackendAPI    Best Cross-Platform                           Rest-API         approach:                                reso...
BackendAPI – Best Practices                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
BackendAPI – Best Practices     versioning                       http://www.flickr.com/photos/familymwr/4927926523/in/phot...
BackendAPI – Best Practices                       downward     versioning        compatible                       http://w...
BackendAPI – Best Practices                       downward     versioning        compatible                            OAu...
BackendAPI – Best Practices                       downward     versioning        compatible                            OAu...
BackendAPI – Best Practices                       downward     versioning        compatible       different            OAu...
BackendAPI – Best Practices                       downward     versioning        compatible                            add...
BackendAPI – Best Practices                       downward     versioning        compatible                            add...
offerBackend                                                   playgroundAPI – Best Practices                       downwa...
AndroidBest Practices
AndroidBest Practices             test
AndroidBest Practices   test      test
AndroidBest Practices   test          test          test
AndroidBest Practices   test      test       test   on all emulators
AndroidBest Practices   test      test       test   on all emulators
AndroidBest Practices   test      test        test    on all emulators   available devices
AndroidBest Practices                       Don‘t recycle images                          >Gingerbread   test      test   ...
AndroidBest Practices                       Don‘t recycle images                          >Gingerbread   test      test   ...
AndroidBest Practices                        Don‘t recycle images                           >Gingerbread   test      test ...
AndroidBest Practices                        Don‘t recycle images                           >Gingerbread   test      test ...
AndroidBest Practices                        Don‘t recycle images                           >Gingerbread   test      test ...
AndroidBest Practicesoffer StreetView, if possible:1. create WebView2. add JavascriptInterface3. load data with base URL (...
AndroidBest Practicesoffer StreetView, if possible:              Attention:1. create WebView                    A lot of b...
Forecast           http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
Forecast                        using Git           http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photo...
Forecast                        using Git       Widget           http://www.flickr.com/photos/ponchopenguin/3262869038/siz...
Forecast                        using Git                                                              extend       Widget...
Forecast                        using Git                                 using new                    extend       Widget...
Forecast    tablet                using Git    layout                                   using new                    exten...
Forecast    tablet                using Git                                                           Google TV    layout ...
Forecast                                             code                                             coverage    tablet  ...
Thanks for yourattention! Questions?               http://www.flickr.com/photos/peterjlambert/97671748/sizes/o/in/photostr...
Upcoming SlideShare
Loading in …5
×

Mobile Development across Different Platforms @ Immobilienscout24

1,621
-1

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 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,621
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mobile Development across Different Platforms @ Immobilienscout24

  1. 1. www.immobilienscout24.deMobile Development acrossDifferent Platforms Berlin | 13.02.2012 | Hasan Hoşgel & Thomas Kummert
  2. 2. About us ...Hasan Hoşgel, @alosdevSenior DeveloperMobile enthusiast,Man of action
  3. 3. About us ... Thomas Kummert, @kummibaer Developer Pragmatic developer
  4. 4. Germany‘s leadingImmobilienScout24 real-estate portal 550 employees, 170 in the IT Seite | Titel der Präsentation | Autor der 4 Präsentation
  5. 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. 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. 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. 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. 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. 10. Native, hybrid orwebapp? http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  11. 11. Native, hybrid orwebapp? Depends on application, environment and user needs http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  12. 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. 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. 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. 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. 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. 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. 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. 19. Infrastructure http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  20. 20. Infrastructure CI-Server: > SSD > Ubuntu 32-Bit > Jenkins > ADT http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  21. 21. Infrastructure Repository: > Nexus CI-Server: > SSD > Ubuntu 32-Bit > Jenkins > ADT http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  22. 22. Infrastructure Repository: > Nexus CI-Server: VCS: > SSD > SVN > Ubuntu 32-Bit > Jenkins > ADT http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
  23. 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. 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. 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. 26. Architecture UI servicesfilesystem sensors network database http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  27. 27. Architectureexample Exposeview expose service memory database network http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  28. 28. Used Frameworks http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  29. 29. Used Frameworks Signpost(OAuth client) http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  30. 30. Used Frameworks RoboGuice Signpost (dependency(OAuth client) injection) http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  31. 31. Used Frameworks RoboGuice Signpost (dependency(OAuth client) injection) JSoup (HTML parser) http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  32. 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. 33. BackendAPI http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  34. 34. BackendAPI Best Cross-Platform approach: create an API http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  35. 35. BackendAPI Best Cross-Platform Rest-API approach: resource create an API oriented http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  36. 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. 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. 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. 39. BackendAPI – Best Practices http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  40. 40. BackendAPI – Best Practices versioning http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  41. 41. BackendAPI – Best Practices downward versioning compatible http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  42. 42. BackendAPI – Best Practices downward versioning compatible OAuth support http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  43. 43. BackendAPI – Best Practices downward versioning compatible OAuth support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  44. 44. BackendAPI – Best Practices downward versioning compatible different OAuth views support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  45. 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. 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. 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. 48. AndroidBest Practices
  49. 49. AndroidBest Practices test
  50. 50. AndroidBest Practices test test
  51. 51. AndroidBest Practices test test test
  52. 52. AndroidBest Practices test test test on all emulators
  53. 53. AndroidBest Practices test test test on all emulators
  54. 54. AndroidBest Practices test test test on all emulators available devices
  55. 55. AndroidBest Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators available devices
  56. 56. AndroidBest Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devicesRemove dialogues inonSavedInstanceState
  57. 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. 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. 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. 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. 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. 62. Forecast http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  63. 63. Forecast using Git http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  64. 64. Forecast using Git Widget http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  65. 65. Forecast using Git extend Widget IS24-API SDK http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
  66. 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. 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. 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. 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. 70. Thanks for yourattention! Questions? http://www.flickr.com/photos/peterjlambert/97671748/sizes/o/in/photostream/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×