SlideShare a Scribd company logo
1 of 70
Download to read offline
www.immobilienscout24.de

Mobile Development across
Different Platforms

  Berlin | 13.02.2012 | Hasan Hoşgel & Thomas Kummert
About us ...




Hasan Hoşgel, @alosdev
Senior Developer
Mobile enthusiast,
Man of action
About us ...




 Thomas Kummert,
 @kummibaer
 Developer
 Pragmatic developer
Germany‘s leading
ImmobilienScout24
                                              real-estate portal
                                              550 employees,
                                              170 in the IT




 Seite | Titel der Präsentation | Autor der
 4     Präsentation
Germany‘s leading
ImmobilienScout24
                                              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
Germany‘s leading
ImmobilienScout24
                                              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
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
2010-08 (no team):
The Creators
                       1 x developer
                       2012-02 (2 teams):
                       7 x developer
11 applications        2 x QA-engineer
1 Mobile site          2 x product manager
> 2.2 Mio Downloads    1 x designer
> 7.8 Mio Visits
> 20% mobile traffic
2010-08 (no team):
The Creators
                          1 x developer
                          2012-02 (2 teams):
                          7 x developer
11 applications           2 x QA-engineer
1 Mobile site             2 x product manager
> 2.2 Mio Downloads       1 x designer
> 7.8 Mio Visits
                       Agile development
> 20% mobile traffic
                       Scrum/ Kanban
Native, hybrid or
webapp?




                    http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
Native, hybrid or
webapp?

           Depends on
           application,
           environment and
           user needs




                    http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
Native, hybrid or
webapp?

           Depends on
           application,
           environment and
           user needs



                               - User-interface
                               - Responsive design
                    http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
Native, hybrid or
webapp?

            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/
Native, hybrid or
webapp?

            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/
- Development
Native, hybrid or                            - Technologies
webapp?                                      - 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/
- Development
Native, hybrid or                            - Technologies
webapp?                                      - 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/
- Development
Native, hybrid or                            - Technologies
webapp?                                      - 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/
Native, hybrid or
webapp?

            Android & IOS will be supported
            Two Mainstream applications
            è native

            Other applications can choose

            Future:
            Mobile website with responsive
            Design & HTML 5
Infrastructure




                 http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
Infrastructure



                       CI-Server:
                       > SSD
                       > Ubuntu 32-Bit
                       > Jenkins
                       > ADT




                 http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
Infrastructure                                             Repository:
                                                           > Nexus
                       CI-Server:
                       > SSD
                       > Ubuntu 32-Bit
                       > Jenkins
                       > ADT




                 http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
Infrastructure                                             Repository:
                                                           > Nexus
                       CI-Server:
                                                              VCS:
                       > SSD
                                                              > SVN
                       > Ubuntu 32-Bit
                       > Jenkins
                       > ADT




                 http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
Infrastructure                                             Repository:
                                                           > Nexus
                       CI-Server:
                                                              VCS:
                       > SSD
                                                              > SVN
                       > Ubuntu 32-Bit
                       > Jenkins
                       > ADT                                  Errorreporting:
                                                              > Hockeyapp



                 http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
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/
Infrastructure                                             Repository:
                                                           > Nexus

Build-Tools:           CI-Server:
                                                              VCS:
> Maven                > SSD
                                                              > SVN
> Maven-               > Ubuntu 32-Bit
Android-Plugin         > Jenkins
> Android-             > ADT                                  Errorreporting:
Jenkins-Plugin                                                > Hockeyapp
> Eclipse + ADT        ~20 Android devices

                 http://www.flickr.com/photos/theplanetdotcom/4878805439/in/photostream/
Architecture



                                  UI



                            services




filesystem         sensors              network                  database


        http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Architecture
example


                        Exposeview


                            expose
                            service



      memory               database                   network

        http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Used Frameworks




       http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Used Frameworks



  Signpost
(OAuth client)




        http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Used Frameworks


                                                                RoboGuice
  Signpost
                                                               (dependency
(OAuth client)                                                   injection)




        http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Used Frameworks


                                                                RoboGuice
  Signpost
                                                               (dependency
(OAuth client)                                                   injection)


                                                              JSoup
                                                           (HTML parser)


        http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Used Frameworks


                                                                RoboGuice
  Signpost
                                                               (dependency
(OAuth client)              Robotium                             injection)
                         (like selenium/
                            webdriver)
                                                              JSoup
                                                           (HTML parser)


        http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
Backend
API




          http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
Backend
API

   Best Cross-Platform
        approach:
      create an API




                 http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
Backend
API

   Best Cross-Platform                       Rest-API
        approach:                            resource
      create an API                           oriented




                 http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
Backend
API

   Best Cross-Platform                       Rest-API
        approach:                            resource
      create an API                           oriented


                                                       Json/
                                                        XML



                 http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
Backend
API

   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/
Backend
API

    Best Cross-Platform                           Rest-API
         approach:                                resource
       create an API                               oriented


Don‘t create client                                         Json/
                          „eat your own                      XML
 dependent APIs
                            dog food“


                      http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
Backend
API – Best Practices




                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
Backend
API – Best Practices


     versioning




                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
Backend
API – Best Practices

                       downward
     versioning        compatible




                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
Backend
API – Best Practices

                       downward
     versioning        compatible


                            OAuth
                            support




                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
Backend
API – Best Practices

                       downward
     versioning        compatible


                            OAuth
                            support

          communicate:
        upward compatibility
                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
Backend
API – Best Practices

                       downward
     versioning        compatible


       different            OAuth
         views              support

          communicate:
        upward compatibility
                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
Backend
API – Best Practices

                       downward
     versioning        compatible                            addable
                                                             features

       different            OAuth
         views              support

          communicate:
        upward compatibility
                       http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
Backend
API – 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/
offer
Backend                                                   playground
API – 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/
Android
Best Practices
Android
Best Practices


             test
Android
Best Practices


   test      test
Android
Best Practices


   test          test
          test
Android
Best Practices


   test      test
       test
   on all emulators
Android
Best Practices


   test      test
       test
   on all emulators
Android
Best Practices


   test      test
        test
    on all emulators
   available devices
Android
Best Practices
                       Don‘t recycle images
                          >Gingerbread
   test      test
        test            è process‘ crash
    on all emulators
   available devices
Android
Best Practices
                       Don‘t recycle images
                          >Gingerbread
   test      test
       test             è process‘ crash
   on all emulators
   on all emulators
  available devices
Remove dialogues in
onSavedInstanceState
Android
Best Practices
                        Don‘t recycle images
                           >Gingerbread
   test      test
       test              è process‘ crash
   on all emulators
   on all emulators
  available devices          Don‘t use
Remove dialogues in    message.what=1006 on
onSavedInstanceState      LG Smartphones
                       è ClassCastException
Android
Best Practices
                        Don‘t recycle images
                           >Gingerbread
   test      test
       test              è process‘ crash
   on all emulators
   on all emulators
  available devices          Don‘t use
Remove dialogues in    message.what=1006 on
onSavedInstanceState      LG Smartphones
                       è ClassCastException
   Json streamer vs.
         parser
Android
Best Practices
                        Don‘t recycle images
                           >Gingerbread
   test      test
       test              è process‘ crash
   on all emulators
   on all emulators
  available devices          Don‘t use
Remove dialogues in    message.what=1006 on
onSavedInstanceState      LG Smartphones
                       è ClassCastException
   Json streamer vs.
         parser         AsyncTask vs. Handler
Android
Best Practices

offer StreetView, if possible:
1. create WebView
2. add JavascriptInterface
3. load data with base URL (maps.js &
StreetViewService)
4. Start Intent for StreetView, if
panorama exists!
http://stackoverflow.com/a/4747663/495712
Android
Best Practices

offer StreetView, if possible:              Attention:
1. create WebView                    A lot of best practices
2. add JavascriptInterface              doesn‘t work on
3. load data with base URL (maps.js &Honeycomb & higher
StreetViewService)
4. Start Intent for StreetView, if
panorama exists!
http://stackoverflow.com/a/4747663/495712
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/photostream/
Forecast




                        using Git




       Widget

           http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
Forecast




                        using Git



                                                              extend
       Widget                                                 IS24-API
                                                              SDK
           http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
Forecast




                        using Git



                                 using new                    extend
       Widget                    Google                       IS24-API
                                 APIs                         SDK
           http://www.flickr.com/photos/ponchopenguin/3262869038/sizes/l/in/photostream/
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/
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/
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/
Thanks for your
attention! Questions?




               http://www.flickr.com/photos/peterjlambert/97671748/sizes/o/in/photostream/

More Related Content

Viewers also liked

Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...
Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...
Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...
Kim Kha
 
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢESISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
RaducanuM
 
第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える
第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える
第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える
コーヒー プリン
 
Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...
Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...
Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...
Ari Septiawan
 

Viewers also liked (16)

Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...
Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...
Chude02: Chương 2: Học kết hợp (blended-learning): một mô hình học tập...
 
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢESISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
 
Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...
 
2015.09.28新聞剪報
2015.09.28新聞剪報2015.09.28新聞剪報
2015.09.28新聞剪報
 
M3_translators stocktaking
M3_translators stocktakingM3_translators stocktaking
M3_translators stocktaking
 
заходи в нвк №3
заходи в нвк №3заходи в нвк №3
заходи в нвк №3
 
QuantumMagic.ru: КВАНТОВАЯ МАГИЯ | Что если ваша новая жизнь начнется прямо с...
QuantumMagic.ru: КВАНТОВАЯ МАГИЯ | Что если ваша новая жизнь начнется прямо с...QuantumMagic.ru: КВАНТОВАЯ МАГИЯ | Что если ваша новая жизнь начнется прямо с...
QuantumMagic.ru: КВАНТОВАЯ МАГИЯ | Что если ваша новая жизнь начнется прямо с...
 
Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...
 
第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える
第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える
第10回放射能ゴミ焼却を考える学習会 2015-09-27 再エネはフクシマを救う?今木質バイオマス発電から考える
 
Analysis of multi-hazard risk to human life at County Level in the Yangtze Ri...
Analysis of multi-hazard risk to human life at County Level in the Yangtze Ri...Analysis of multi-hazard risk to human life at County Level in the Yangtze Ri...
Analysis of multi-hazard risk to human life at County Level in the Yangtze Ri...
 
книги прочитанные летом!
книги прочитанные летом!книги прочитанные летом!
книги прочитанные летом!
 
MPPL Chapter 2
MPPL Chapter 2MPPL Chapter 2
MPPL Chapter 2
 
куренкова полина, ученица 7а
куренкова полина, ученица 7акуренкова полина, ученица 7а
куренкова полина, ученица 7а
 
Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...
Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...
Makalah tentang Hardisk - Akademi Manajemen Informatika dan Komputer Amik Mit...
 
Inheritance
InheritanceInheritance
Inheritance
 
5 originálnych tipov na valentínsky darček
5 originálnych tipov na valentínsky darček5 originálnych tipov na valentínsky darček
5 originálnych tipov na valentínsky darček
 

Similar to Mobile Development across Different Platforms @ Immobilienscout24

2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
dino715195
 
Developing Tizen OS Based Solutions (IDF13) - Chris Norman
Developing Tizen OS Based Solutions (IDF13) - Chris NormanDeveloping Tizen OS Based Solutions (IDF13) - Chris Norman
Developing Tizen OS Based Solutions (IDF13) - Chris Norman
Ryo Jin
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
ITCamp
 
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Ugly truths about html5   moosecon - robert virkus - 2013-03-07Ugly truths about html5   moosecon - robert virkus - 2013-03-07
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Enough Software
 

Similar to Mobile Development across Different Platforms @ Immobilienscout24 (20)

Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
14180203 an-introduction-to-android
14180203 an-introduction-to-android14180203 an-introduction-to-android
14180203 an-introduction-to-android
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Next Generation Vulnerability Assessment Using Datadog and Snyk
Next Generation Vulnerability Assessment Using Datadog and SnykNext Generation Vulnerability Assessment Using Datadog and Snyk
Next Generation Vulnerability Assessment Using Datadog and Snyk
 
[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
 
Android e mobile security - Falcomatà
Android e mobile security - FalcomatàAndroid e mobile security - Falcomatà
Android e mobile security - Falcomatà
 
UX and the City - An introduction to user experience design in the financial ...
UX and the City - An introduction to user experience design in the financial ...UX and the City - An introduction to user experience design in the financial ...
UX and the City - An introduction to user experience design in the financial ...
 
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
 
Developing Tizen OS Based Solutions (IDF13) - Chris Norman
Developing Tizen OS Based Solutions (IDF13) - Chris NormanDeveloping Tizen OS Based Solutions (IDF13) - Chris Norman
Developing Tizen OS Based Solutions (IDF13) - Chris Norman
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
Managing the Experience + Ad Hoc Reporting
Managing the Experience + Ad Hoc ReportingManaging the Experience + Ad Hoc Reporting
Managing the Experience + Ad Hoc Reporting
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
 
Android ppt
Android pptAndroid ppt
Android ppt
 
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Ugly truths about html5   moosecon - robert virkus - 2013-03-07Ugly truths about html5   moosecon - robert virkus - 2013-03-07
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
 
Python + NoSQL in Animations
Python + NoSQL in AnimationsPython + NoSQL in Animations
Python + NoSQL in Animations
 

More from Hasan Hosgel

More from Hasan Hosgel (11)

DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Ch...
DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Ch...DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Ch...
DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Ch...
 
Android Developer Days 2014 How second screen can enhance your app
Android Developer Days 2014 How second screen can enhance your appAndroid Developer Days 2014 How second screen can enhance your app
Android Developer Days 2014 How second screen can enhance your app
 
Mtc spring 2014 best practices to develop for different android device classi...
Mtc spring 2014 best practices to develop for different android device classi...Mtc spring 2014 best practices to develop for different android device classi...
Mtc spring 2014 best practices to develop for different android device classi...
 
MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesMTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi Devices
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice Nightmare
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice Nightmare
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & Adapter
 
Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013
 
Customer’s Choice @ GDG Android Berlin on January meetup
Customer’s Choice @ GDG Android Berlin on January meetupCustomer’s Choice @ GDG Android Berlin on January meetup
Customer’s Choice @ GDG Android Berlin on January meetup
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & Robots
 

Recently uploaded

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

Mobile Development across Different Platforms @ Immobilienscout24

  • 1. www.immobilienscout24.de Mobile Development across Different Platforms Berlin | 13.02.2012 | Hasan Hoşgel & Thomas Kummert
  • 2. About us ... Hasan Hoşgel, @alosdev Senior Developer Mobile enthusiast, Man of action
  • 3. About us ... Thomas Kummert, @kummibaer Developer Pragmatic developer
  • 4. Germany‘s leading ImmobilienScout24 real-estate portal 550 employees, 170 in the IT Seite | Titel der Präsentation | Autor der 4 Präsentation
  • 5. Germany‘s leading ImmobilienScout24 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 leading ImmobilienScout24 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 developer 11 applications 2 x QA-engineer 1 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 developer 11 applications 2 x QA-engineer 1 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 or webapp? http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 11. Native, hybrid or webapp? Depends on application, environment and user needs http://www.flickr.com/photos/y_i/2330044065/sizes/l/in/photostream/
  • 12. Native, hybrid or webapp? 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 or webapp? 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 or webapp? 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. - Development Native, hybrid or - Technologies webapp? - 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. - Development Native, hybrid or - Technologies webapp? - 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. - Development Native, hybrid or - Technologies webapp? - 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 or webapp? 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: > Nexus Build-Tools: CI-Server: VCS: > Maven > SSD > SVN > Maven- > Ubuntu 32-Bit Android-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 services filesystem sensors network database http://www.flickr.com/photos/designandtechnologydepartment/4029381213/in/photostream/
  • 27. Architecture example 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. Backend API http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 34. Backend API Best Cross-Platform approach: create an API http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 35. Backend API Best Cross-Platform Rest-API approach: resource create an API oriented http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 36. Backend API Best Cross-Platform Rest-API approach: resource create an API oriented Json/ XML http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 37. Backend API 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. Backend API Best Cross-Platform Rest-API approach: resource create an API oriented Don‘t create client Json/ „eat your own XML dependent APIs dog food“ http://www.flickr.com/photos/roll_initiative/3305000778/in/photostream/
  • 39. Backend API – Best Practices http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 40. Backend API – Best Practices versioning http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 41. Backend API – Best Practices downward versioning compatible http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 42. Backend API – Best Practices downward versioning compatible OAuth support http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 43. Backend API – Best Practices downward versioning compatible OAuth support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 44. Backend API – Best Practices downward versioning compatible different OAuth views support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 45. Backend API – Best Practices downward versioning compatible addable features different OAuth views support communicate: upward compatibility http://www.flickr.com/photos/familymwr/4927926523/in/photostream/
  • 46. Backend API – 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. offer Backend playground API – 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/
  • 51. Android Best Practices test test test
  • 52. Android Best Practices test test test on all emulators
  • 53. Android Best Practices test test test on all emulators
  • 54. Android Best Practices test test test on all emulators available devices
  • 55. Android Best Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators available devices
  • 56. Android Best Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devices Remove dialogues in onSavedInstanceState
  • 57. Android Best Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devices Don‘t use Remove dialogues in message.what=1006 on onSavedInstanceState LG Smartphones è ClassCastException
  • 58. Android Best Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devices Don‘t use Remove dialogues in message.what=1006 on onSavedInstanceState LG Smartphones è ClassCastException Json streamer vs. parser
  • 59. Android Best Practices Don‘t recycle images >Gingerbread test test test è process‘ crash on all emulators on all emulators available devices Don‘t use Remove dialogues in message.what=1006 on onSavedInstanceState LG Smartphones è ClassCastException Json streamer vs. parser AsyncTask vs. Handler
  • 60. Android Best Practices offer StreetView, if possible: 1. create WebView 2. add JavascriptInterface 3. load data with base URL (maps.js & StreetViewService) 4. Start Intent for StreetView, if panorama exists! http://stackoverflow.com/a/4747663/495712
  • 61. Android Best Practices offer StreetView, if possible: Attention: 1. create WebView A lot of best practices 2. add JavascriptInterface doesn‘t work on 3. load data with base URL (maps.js &Honeycomb & higher StreetViewService) 4. Start Intent for StreetView, if panorama 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 your attention! Questions? http://www.flickr.com/photos/peterjlambert/97671748/sizes/o/in/photostream/