SlideShare a Scribd company logo
www.immobilienscout24.de




Coexisting of Android and Robots
Introduction to RoboGuice & Robotium
Android Meetup Berlin | 30.05.2012 | Hasan Hosgel
About me
 www.immobilienscout24.de




Hasan Hoşgel
Twitter: @alosdev
Github: alosdev
G+: Hasan Hosgel

Senior Developer
Mobile enthusiast,
Man of action
Germany‘s leading
ImmobilienScout24
                                              real-estate portal
                                              550 employees,
                                              160 in the IT




 Seite | Coexisting of Android and Robots |
 3     Hasan Hosgel
Germany‘s leading
ImmobilienScout24
                                              real-estate portal
                                              550 employees,
 > 7.5 Million unique users                   160 in the IT
 > 2 Billion PI
 > 260 Million Expose views
 ~ 1.5 Million active listings
 > 110,000 Vendors
 ... per month
 > 3 Mio App-Downloads
 Seite | Coexisting of Android and Robots |
 4     Hasan Hosgel
Germany‘s leading
ImmobilienScout24
                                              real-estate portal
                                              550 employees,
 > 7.5 Million unique users                   160 in the IT
 > 2 Billion PI                                     2 datacenter
 > 260 Million Expose views                         ~100 physical
 ~ 1.5 Million active listings                      ~800 virtual
 > 110,000 Vendors                                  ... machines
 ... per month
 > 3 Mio App-Downloads
 Seite | Coexisting of Android and Robots |
 5     Hasan Hosgel
Normal activity




Seite 6   | Coexisting of Android and Robots | Hasan Hosgel
Normal activity



                                                              do you like it?




Seite 7   | Coexisting of Android and Robots | Hasan Hosgel
Normal activity



                                                              do you like it?

                                                               a lot of boilerplate
                                                               code




Seite 8   | Coexisting of Android and Robots | Hasan Hosgel
How to avoid this?




Seite 9   | Coexisting of Android and Robots | Hasan Hosgel
How to avoid this?




                         as the talk subject
                         says RoboGuice




Seite 10 | Coexisting of Android and Robots | Hasan Hosgel
RoboGuice


                                                              DI & IOC Framework
                                                              for Android




Source: http://roboguice.org




 Seite 11 | Coexisting of Android and Robots | Hasan Hosgel
RoboGuice


                                                              DI & IOC Framework
                                                              for Android

                                                              based on Google Guice no
                                                              AOP (JSR-330 compatible)




Source: http://roboguice.org




 Seite 12 | Coexisting of Android and Robots | Hasan Hosgel
RoboGuice


                                                              DI & IOC Framework
                                                              for Android

                                                              based on Google Guice no
                                                              AOP (JSR-330 compatible)

                                                              actual version 2.0


Source: http://roboguice.org




 Seite 13 | Coexisting of Android and Robots | Hasan Hosgel
definition IOC & DI
source: http://wikipedia.com
 In software engineering, Inversion of Control (IoC) is an object-oriented
 programming practice whereby the object coupling is bound at run time by
 an "assembler" object and is typically not knowable at compile time using
 static analysis.

 Dependency injection is a software design pattern that allows a choice of
 component to be made at run-time rather than compile time. This can be
 used, for example, as a simple way to load plugins dynamically or to choose
 mock objects in test environments vs. real objects in production
 environments.




Seite 14 | Coexisting of Android and Robots | Hasan Hosgel
definition IOC & DI
source: http://wikipedia.com
 In software engineering, Inversion of Control (IoC) is an object-oriented
 programming practice whereby the object coupling is bound at run time by
 an "assembler" object and is typically not knowable at compile time using
 static analysis.

 Dependency injection is a software design pattern that allows a choice of
 component to be made at run-time rather than compile time. This can be
 used, for example, as a simple way to load plugins dynamically or to choose
 mock objects in test environments vs. real objects in production
 environments.


                Spring                                       Google Guice

               EJB (> 3.0)                                   JBoss Seam

Seite 15 | Coexisting of Android and Robots | Hasan Hosgel
What you need for RoboGuice?


       Android project


       RoboGuice 2.0


       Guice 3.0 no AOP


       javax.inject


Seite 16 | Coexisting of Android and Robots | Hasan Hosgel
Configuration


       extend Robo* classes




Seite 17 | Coexisting of Android and Robots | Hasan Hosgel
Configuration


       extend Robo* classes

       create
       roboguice_modules.xml




Seite 18 | Coexisting of Android and Robots | Hasan Hosgel
Configuration


       extend Robo* classes

       create
       roboguice_modules.xml

       create your
       AbstractModule




Seite 19 | Coexisting of Android and Robots | Hasan Hosgel
Configuration


       extend Robo* classes

       create
       roboguice_modules.xml

       create your
       AbstractModule

       configure the module
       in the xml

Seite 20 | Coexisting of Android and Robots | Hasan Hosgel
Injection Types




Seite 21 | Coexisting of Android and Robots | Hasan Hosgel
Injection Types


   member injection




Seite 22 | Coexisting of Android and Robots | Hasan Hosgel
Injection Types


   member injection




   setter injection




Seite 23 | Coexisting of Android and Robots | Hasan Hosgel
injection types


   member injection




   setter injection



   constructor
   injection


Seite 24 | Coexisting of Android and Robots | Hasan Hosgel
annotation types part 1

! @Inject
   ! standard Guice annotation
! @InjectView(resId)
   ! inject views after „setContentView()“ in „onCreate()“
! @InjectResource(resId)
   ! inject resource in „onCreate()“
! @InjectExtra(extraName)
   ! inject extra only in „onCreate()“ NOT „onNewIntent()“
! @InjectPreference(keyName)
   ! reads preference by keyName
! @InjectFragment(resId, tagName)
   ! inject the fragment to the resId with the tagName

Seite 25 | Coexisting of Android and Robots | Hasan Hosgel
annotation types part 2

! @ContentView(resId)
   ! set layout for activity/ fragment
! @Named(valueName)
   ! with the valueName a specific configuration can be
           done
! no annotation but related Provider<T>
   ! asynchronous injection, if the creation is expensive and
           not always used. The method #get() can be used




Seite 26 | Coexisting of Android and Robots | Hasan Hosgel
RoboGuiced activity




Seite 27 | Coexisting of Android and Robots | Hasan Hosgel
Normal activity



                                                             for comparison




Seite 28 | Coexisting of Android and Robots | Hasan Hosgel
RoboGuiced activity




                                                             much better &
                                                             clearer




Seite 29 | Coexisting of Android and Robots | Hasan Hosgel
RoboGuice in Action




Seite 30 | Coexisting of Android and Robots | Hasan Hosgel
RoboGuice in Action




                         Live Coding...




Seite 31 | Coexisting of Android and Robots | Hasan Hosgel
Robotium


       Test Framework for
       Android

       similar to Selenium/
       WebTest

       actual version 3.2.1




Seite 32 | Coexisting of Android and Robots | Hasan Hosgel
What you need for Robotium?


       robotium-solo-3.2.1

         extend from
         ActivityInstrumentationTestCase2

       instanciate Solo

          finishInactiveActivities &
          finishOpenedActivities on solo in
          teardown
Seite 33 | Coexisting of Android and Robots | Hasan Hosgel
What you can do with Robotium?

!   remote run of application/ black box tests
!   click on view
!   long click on view
!   scroll
!   search for text and view
!   wait for text and view
!   enter text
!   send keys


! configure sleeper/ waiter? NO è use fork
    https://github.com/alosdev/robotium




Seite 34 | Coexisting of Android and Robots | Hasan Hosgel
Robotium in Action




Seite 35 | Coexisting of Android and Robots | Hasan Hosgel
Robotium in Action




                         Live Coding...




Seite 36 | Coexisting of Android and Robots | Hasan Hosgel
Why this fuss?

! clearer structure/ better API
! better testable/ test automation
! state of the art è proven in production (@IS24 since more
    than 1 year)
! good for libraries

           use RoboGuice & Robotium for Android




Seite 37 | Coexisting of Android and Robots | Hasan Hosgel
Dive into the topic & sources

! github with sample project of presentation:
    ! https://github.com/alosdev/amu-roboguice
! slideshare:
    ! http://www.slideshare.net/hosgel/coexisting-of-
           android-robots
! RoboGuice:
   ! http://roboguice.org/
! Robotium:
   ! http://robotium.org/
! deeper look into RoboGuice:
   ! http://www.blog.project13.pl/wp-content/uploads/
           2011/12/presentation.html



Seite 38 | Coexisting of Android and Robots | Hasan Hosgel
Thanks for your
attention! Questions?




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

Vielen Dank für Ihre
Aufmerksamkeit!

Kontakt:
ImmobilienScout24          Fon:   030/24301-11 00
Andreasstraße 10           Email: info@immobilienscout24.de.
10243 Berlin               URL: www.immobilienscout24.de

More Related Content

Viewers also liked

Administracion del tiempo y realizacion personal
Administracion del tiempo y realizacion personalAdministracion del tiempo y realizacion personal
Administracion del tiempo y realizacion personal
Monroy Asesores, S.C.
 
MANTENER EL CEREBRO SIEMPRE JOVEN
MANTENER EL CEREBRO SIEMPRE JOVENMANTENER EL CEREBRO SIEMPRE JOVEN
MANTENER EL CEREBRO SIEMPRE JOVEN
PSICOLOGIA Y EDUCACION INTEGRAL A.C.
 
Cine Forum Wes Anderson Villarrubia de los Ojos
Cine Forum Wes Anderson Villarrubia de los OjosCine Forum Wes Anderson Villarrubia de los Ojos
Cine Forum Wes Anderson Villarrubia de los Ojos
Andrés Romero Montero
 
Photovoltaik – Produktionstechnik und Technologie im Wandel der Zeit
Photovoltaik – Produktionstechnik und Technologie im Wandel der ZeitPhotovoltaik – Produktionstechnik und Technologie im Wandel der Zeit
Photovoltaik – Produktionstechnik und Technologie im Wandel der Zeit
engineeringzhaw
 
Waste management presentation
Waste management presentationWaste management presentation
Waste management presentation
Joac Roberto Nyamukanza
 
MonetizacióN 2.0 3dic09 (Marta Dominguez)
MonetizacióN 2.0   3dic09  (Marta Dominguez)MonetizacióN 2.0   3dic09  (Marta Dominguez)
MonetizacióN 2.0 3dic09 (Marta Dominguez)
Marta Dominguez
 
Investment proposal for sustainable energy project
Investment proposal for sustainable energy projectInvestment proposal for sustainable energy project
Investment proposal for sustainable energy project
Anuron Technologies
 
Trastorno antisocial de la personalidad
Trastorno antisocial de la personalidadTrastorno antisocial de la personalidad
Trastorno antisocial de la personalidadDiego Neyra
 
Procesos para llegar a la calidad total
Procesos para llegar a la calidad totalProcesos para llegar a la calidad total
Procesos para llegar a la calidad totalAndres Rodriguez
 
Los Flip Flops
Los Flip FlopsLos Flip Flops
Los Flip Flops
Fabian Reyes
 
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de SoftwareArquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de SoftwareMarta Silvia Tabares
 
Distribucion comercial colgate palmolive.
Distribucion comercial colgate palmolive.Distribucion comercial colgate palmolive.
Distribucion comercial colgate palmolive.Daianna Reyes
 
Electrodinamica.
Electrodinamica.Electrodinamica.
Electrodinamica.garnan68
 
Geofisica agua
Geofisica aguaGeofisica agua
Geofisica agua
wpachecoe
 

Viewers also liked (14)

Administracion del tiempo y realizacion personal
Administracion del tiempo y realizacion personalAdministracion del tiempo y realizacion personal
Administracion del tiempo y realizacion personal
 
MANTENER EL CEREBRO SIEMPRE JOVEN
MANTENER EL CEREBRO SIEMPRE JOVENMANTENER EL CEREBRO SIEMPRE JOVEN
MANTENER EL CEREBRO SIEMPRE JOVEN
 
Cine Forum Wes Anderson Villarrubia de los Ojos
Cine Forum Wes Anderson Villarrubia de los OjosCine Forum Wes Anderson Villarrubia de los Ojos
Cine Forum Wes Anderson Villarrubia de los Ojos
 
Photovoltaik – Produktionstechnik und Technologie im Wandel der Zeit
Photovoltaik – Produktionstechnik und Technologie im Wandel der ZeitPhotovoltaik – Produktionstechnik und Technologie im Wandel der Zeit
Photovoltaik – Produktionstechnik und Technologie im Wandel der Zeit
 
Waste management presentation
Waste management presentationWaste management presentation
Waste management presentation
 
MonetizacióN 2.0 3dic09 (Marta Dominguez)
MonetizacióN 2.0   3dic09  (Marta Dominguez)MonetizacióN 2.0   3dic09  (Marta Dominguez)
MonetizacióN 2.0 3dic09 (Marta Dominguez)
 
Investment proposal for sustainable energy project
Investment proposal for sustainable energy projectInvestment proposal for sustainable energy project
Investment proposal for sustainable energy project
 
Trastorno antisocial de la personalidad
Trastorno antisocial de la personalidadTrastorno antisocial de la personalidad
Trastorno antisocial de la personalidad
 
Procesos para llegar a la calidad total
Procesos para llegar a la calidad totalProcesos para llegar a la calidad total
Procesos para llegar a la calidad total
 
Los Flip Flops
Los Flip FlopsLos Flip Flops
Los Flip Flops
 
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de SoftwareArquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
 
Distribucion comercial colgate palmolive.
Distribucion comercial colgate palmolive.Distribucion comercial colgate palmolive.
Distribucion comercial colgate palmolive.
 
Electrodinamica.
Electrodinamica.Electrodinamica.
Electrodinamica.
 
Geofisica agua
Geofisica aguaGeofisica agua
Geofisica agua
 

Similar to Coexisting of Android & Robots

iOS & Android App Indexing & App Actions
iOS & Android App Indexing & App ActionsiOS & Android App Indexing & App Actions
iOS & Android App Indexing & App Actions
Justin Briggs
 
Why hybrid-is-important
Why hybrid-is-importantWhy hybrid-is-important
Why hybrid-is-important
Jacob Nelson
 
Holidu Android Instant App
Holidu Android Instant AppHolidu Android Instant App
Holidu Android Instant App
Andrei Boeru
 
Android Minnebar
Android MinnebarAndroid Minnebar
Android Minnebar
Justin Grammens
 
Bringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile worldBringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile world
Laurent Sansonetti
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
christoforosnalmpantis
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice Nightmare
Hasan Hosgel
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
Knoldus Inc.
 
Instant app Intro
Instant app IntroInstant app Intro
Instant app Intro
Jintin Lin
 
DroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using PhonegapDroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
Ayushman Jain
 
Supercharge your Android UI
Supercharge your Android UISupercharge your Android UI
Supercharge your Android UI
inovex GmbH
 
Vahid Garousi-SE meets robotics
Vahid Garousi-SE meets roboticsVahid Garousi-SE meets robotics
Vahid Garousi-SE meets robotics
Vahid Garousi
 
Project Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the EnterpriseProject Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the Enterprise
Leon Stigter
 
Tools to Use in Android Development Or iOS Development.pdf
Tools to Use in Android Development Or iOS Development.pdfTools to Use in Android Development Or iOS Development.pdf
Tools to Use in Android Development Or iOS Development.pdf
Technology News & Updates
 
Mobile applications in a new way with React Native
Mobile applications in a new way with React NativeMobile applications in a new way with React Native
Mobile applications in a new way with React Native
Eugene Zharkov
 
Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...
Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...
Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...
Intersog
 
Comparisons react native vs. flutter vs. ionic vs. xamarin vs. native script
Comparisons  react native vs. flutter vs. ionic vs. xamarin vs. native scriptComparisons  react native vs. flutter vs. ionic vs. xamarin vs. native script
Comparisons react native vs. flutter vs. ionic vs. xamarin vs. native script
MoonTechnolabsPvtLtd
 
The Best Alternatives To The Ionic Framework.pdf
The Best Alternatives To The Ionic Framework.pdfThe Best Alternatives To The Ionic Framework.pdf
The Best Alternatives To The Ionic Framework.pdf
Moon Technolabs Pvt. Ltd.
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 

Similar to Coexisting of Android & Robots (20)

iOS & Android App Indexing & App Actions
iOS & Android App Indexing & App ActionsiOS & Android App Indexing & App Actions
iOS & Android App Indexing & App Actions
 
HealthyCodeMay2014
HealthyCodeMay2014HealthyCodeMay2014
HealthyCodeMay2014
 
Why hybrid-is-important
Why hybrid-is-importantWhy hybrid-is-important
Why hybrid-is-important
 
Holidu Android Instant App
Holidu Android Instant AppHolidu Android Instant App
Holidu Android Instant App
 
Android Minnebar
Android MinnebarAndroid Minnebar
Android Minnebar
 
Bringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile worldBringing the Ruby language into the mobile world
Bringing the Ruby language into the mobile world
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice Nightmare
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
 
Instant app Intro
Instant app IntroInstant app Intro
Instant app Intro
 
DroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using PhonegapDroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
DroidCon 2011: Developing HTML5 and hybrid Android apps using Phonegap
 
Supercharge your Android UI
Supercharge your Android UISupercharge your Android UI
Supercharge your Android UI
 
Vahid Garousi-SE meets robotics
Vahid Garousi-SE meets roboticsVahid Garousi-SE meets robotics
Vahid Garousi-SE meets robotics
 
Project Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the EnterpriseProject Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the Enterprise
 
Tools to Use in Android Development Or iOS Development.pdf
Tools to Use in Android Development Or iOS Development.pdfTools to Use in Android Development Or iOS Development.pdf
Tools to Use in Android Development Or iOS Development.pdf
 
Mobile applications in a new way with React Native
Mobile applications in a new way with React NativeMobile applications in a new way with React Native
Mobile applications in a new way with React Native
 
Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...
Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...
Mobile applications in a new way with React Native (by Eugene Zharkov) - Hack...
 
Comparisons react native vs. flutter vs. ionic vs. xamarin vs. native script
Comparisons  react native vs. flutter vs. ionic vs. xamarin vs. native scriptComparisons  react native vs. flutter vs. ionic vs. xamarin vs. native script
Comparisons react native vs. flutter vs. ionic vs. xamarin vs. native script
 
The Best Alternatives To The Ionic Framework.pdf
The Best Alternatives To The Ionic Framework.pdfThe Best Alternatives To The Ionic Framework.pdf
The Best Alternatives To The Ionic Framework.pdf
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 

More from Hasan Hosgel

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...
Hasan Hosgel
 
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
Hasan Hosgel
 
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...
Hasan Hosgel
 
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...
Hasan Hosgel
 
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...
Hasan Hosgel
 
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
Hasan Hosgel
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice Nightmare
Hasan Hosgel
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & Adapter
Hasan Hosgel
 
Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013
Hasan Hosgel
 
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetupCustomer&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
Hasan Hosgel
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
Hasan Hosgel
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24
Hasan Hosgel
 

More from Hasan Hosgel (12)

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...
 
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...
 
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...
 
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
 
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&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetupCustomer&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24
 

Recently uploaded

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

Coexisting of Android & Robots

  • 1. www.immobilienscout24.de Coexisting of Android and Robots Introduction to RoboGuice & Robotium Android Meetup Berlin | 30.05.2012 | Hasan Hosgel
  • 2. About me www.immobilienscout24.de Hasan Hoşgel Twitter: @alosdev Github: alosdev G+: Hasan Hosgel Senior Developer Mobile enthusiast, Man of action
  • 3. Germany‘s leading ImmobilienScout24 real-estate portal 550 employees, 160 in the IT Seite | Coexisting of Android and Robots | 3 Hasan Hosgel
  • 4. Germany‘s leading ImmobilienScout24 real-estate portal 550 employees, > 7.5 Million unique users 160 in the IT > 2 Billion PI > 260 Million Expose views ~ 1.5 Million active listings > 110,000 Vendors ... per month > 3 Mio App-Downloads Seite | Coexisting of Android and Robots | 4 Hasan Hosgel
  • 5. Germany‘s leading ImmobilienScout24 real-estate portal 550 employees, > 7.5 Million unique users 160 in the IT > 2 Billion PI 2 datacenter > 260 Million Expose views ~100 physical ~ 1.5 Million active listings ~800 virtual > 110,000 Vendors ... machines ... per month > 3 Mio App-Downloads Seite | Coexisting of Android and Robots | 5 Hasan Hosgel
  • 6. Normal activity Seite 6 | Coexisting of Android and Robots | Hasan Hosgel
  • 7. Normal activity do you like it? Seite 7 | Coexisting of Android and Robots | Hasan Hosgel
  • 8. Normal activity do you like it? a lot of boilerplate code Seite 8 | Coexisting of Android and Robots | Hasan Hosgel
  • 9. How to avoid this? Seite 9 | Coexisting of Android and Robots | Hasan Hosgel
  • 10. How to avoid this? as the talk subject says RoboGuice Seite 10 | Coexisting of Android and Robots | Hasan Hosgel
  • 11. RoboGuice DI & IOC Framework for Android Source: http://roboguice.org Seite 11 | Coexisting of Android and Robots | Hasan Hosgel
  • 12. RoboGuice DI & IOC Framework for Android based on Google Guice no AOP (JSR-330 compatible) Source: http://roboguice.org Seite 12 | Coexisting of Android and Robots | Hasan Hosgel
  • 13. RoboGuice DI & IOC Framework for Android based on Google Guice no AOP (JSR-330 compatible) actual version 2.0 Source: http://roboguice.org Seite 13 | Coexisting of Android and Robots | Hasan Hosgel
  • 14. definition IOC & DI source: http://wikipedia.com In software engineering, Inversion of Control (IoC) is an object-oriented programming practice whereby the object coupling is bound at run time by an "assembler" object and is typically not knowable at compile time using static analysis. Dependency injection is a software design pattern that allows a choice of component to be made at run-time rather than compile time. This can be used, for example, as a simple way to load plugins dynamically or to choose mock objects in test environments vs. real objects in production environments. Seite 14 | Coexisting of Android and Robots | Hasan Hosgel
  • 15. definition IOC & DI source: http://wikipedia.com In software engineering, Inversion of Control (IoC) is an object-oriented programming practice whereby the object coupling is bound at run time by an "assembler" object and is typically not knowable at compile time using static analysis. Dependency injection is a software design pattern that allows a choice of component to be made at run-time rather than compile time. This can be used, for example, as a simple way to load plugins dynamically or to choose mock objects in test environments vs. real objects in production environments. Spring Google Guice EJB (> 3.0) JBoss Seam Seite 15 | Coexisting of Android and Robots | Hasan Hosgel
  • 16. What you need for RoboGuice? Android project RoboGuice 2.0 Guice 3.0 no AOP javax.inject Seite 16 | Coexisting of Android and Robots | Hasan Hosgel
  • 17. Configuration extend Robo* classes Seite 17 | Coexisting of Android and Robots | Hasan Hosgel
  • 18. Configuration extend Robo* classes create roboguice_modules.xml Seite 18 | Coexisting of Android and Robots | Hasan Hosgel
  • 19. Configuration extend Robo* classes create roboguice_modules.xml create your AbstractModule Seite 19 | Coexisting of Android and Robots | Hasan Hosgel
  • 20. Configuration extend Robo* classes create roboguice_modules.xml create your AbstractModule configure the module in the xml Seite 20 | Coexisting of Android and Robots | Hasan Hosgel
  • 21. Injection Types Seite 21 | Coexisting of Android and Robots | Hasan Hosgel
  • 22. Injection Types member injection Seite 22 | Coexisting of Android and Robots | Hasan Hosgel
  • 23. Injection Types member injection setter injection Seite 23 | Coexisting of Android and Robots | Hasan Hosgel
  • 24. injection types member injection setter injection constructor injection Seite 24 | Coexisting of Android and Robots | Hasan Hosgel
  • 25. annotation types part 1 ! @Inject ! standard Guice annotation ! @InjectView(resId) ! inject views after „setContentView()“ in „onCreate()“ ! @InjectResource(resId) ! inject resource in „onCreate()“ ! @InjectExtra(extraName) ! inject extra only in „onCreate()“ NOT „onNewIntent()“ ! @InjectPreference(keyName) ! reads preference by keyName ! @InjectFragment(resId, tagName) ! inject the fragment to the resId with the tagName Seite 25 | Coexisting of Android and Robots | Hasan Hosgel
  • 26. annotation types part 2 ! @ContentView(resId) ! set layout for activity/ fragment ! @Named(valueName) ! with the valueName a specific configuration can be done ! no annotation but related Provider<T> ! asynchronous injection, if the creation is expensive and not always used. The method #get() can be used Seite 26 | Coexisting of Android and Robots | Hasan Hosgel
  • 27. RoboGuiced activity Seite 27 | Coexisting of Android and Robots | Hasan Hosgel
  • 28. Normal activity for comparison Seite 28 | Coexisting of Android and Robots | Hasan Hosgel
  • 29. RoboGuiced activity much better & clearer Seite 29 | Coexisting of Android and Robots | Hasan Hosgel
  • 30. RoboGuice in Action Seite 30 | Coexisting of Android and Robots | Hasan Hosgel
  • 31. RoboGuice in Action Live Coding... Seite 31 | Coexisting of Android and Robots | Hasan Hosgel
  • 32. Robotium Test Framework for Android similar to Selenium/ WebTest actual version 3.2.1 Seite 32 | Coexisting of Android and Robots | Hasan Hosgel
  • 33. What you need for Robotium? robotium-solo-3.2.1 extend from ActivityInstrumentationTestCase2 instanciate Solo finishInactiveActivities & finishOpenedActivities on solo in teardown Seite 33 | Coexisting of Android and Robots | Hasan Hosgel
  • 34. What you can do with Robotium? ! remote run of application/ black box tests ! click on view ! long click on view ! scroll ! search for text and view ! wait for text and view ! enter text ! send keys ! configure sleeper/ waiter? NO è use fork https://github.com/alosdev/robotium Seite 34 | Coexisting of Android and Robots | Hasan Hosgel
  • 35. Robotium in Action Seite 35 | Coexisting of Android and Robots | Hasan Hosgel
  • 36. Robotium in Action Live Coding... Seite 36 | Coexisting of Android and Robots | Hasan Hosgel
  • 37. Why this fuss? ! clearer structure/ better API ! better testable/ test automation ! state of the art è proven in production (@IS24 since more than 1 year) ! good for libraries use RoboGuice & Robotium for Android Seite 37 | Coexisting of Android and Robots | Hasan Hosgel
  • 38. Dive into the topic & sources ! github with sample project of presentation: ! https://github.com/alosdev/amu-roboguice ! slideshare: ! http://www.slideshare.net/hosgel/coexisting-of- android-robots ! RoboGuice: ! http://roboguice.org/ ! Robotium: ! http://robotium.org/ ! deeper look into RoboGuice: ! http://www.blog.project13.pl/wp-content/uploads/ 2011/12/presentation.html Seite 38 | Coexisting of Android and Robots | Hasan Hosgel
  • 39. Thanks for your attention! Questions? http://www.flickr.com/photos/peterjlambert/97671748/sizes/o/in/photostream/
  • 40. www.immobilienscout24.de Vielen Dank für Ihre Aufmerksamkeit! Kontakt: ImmobilienScout24 Fon: 030/24301-11 00 Andreasstraße 10 Email: info@immobilienscout24.de. 10243 Berlin URL: www.immobilienscout24.de