SlideShare a Scribd company logo
Beef up your Android apps,
     using Java tools
  27/03/2013, 17h - 17h30 - Salle Miles Davis A
Beef up your Android apps, using
           Java tools




     Jérôme Van Der Linden
       & Stéphane Nicolas
     OCTO Technology consultants

       @octotechnology             27 au 29 mars 2013
Jérôme Van Der Linden
 • Java / Android / JEE Architect
  •   Design, development, audit
  •   Industrialization of software engineering


 • OSS softwares on GitHub
  •   Android Holo Colors, Sonar Android Lint Plugin


 • Appaloosa Store co-founder
Stéphane Nicolas
 • 17 years of Java experience
  •   Mostly teaching, programming, designing.


 • OSS softwares on GitHub
  •   RoboSpice, Quality Analysis Tools for Android, RoboDemo
  •   Contributor of android maven plugin


 • Quebecer-like, woodworker wanna be, OSS-fan, Android
   coder
Quality Tools Available on Android
    TestDroid                                Test Tools                               Reporting Tools                                      Sonar
                                                                                                                                                      Spoon
                 Monkey
                 Runner                                                                                                       CheckStyle
                                   FEST-
                                  Android                                                                              PMD

                                                    Mockito                                            findbugs

                                                                                              Lint
                                                                   EasyMock




Calabash
               UI
                       Robotium             Robolectric       JUnit           Quality Tools          Emma         Cobertura   Jacoco       Clover
                                                                                                                                                     Code
           Automator
                                                                              For Android
                                                                                                                                                    coverage
                                                                       Emulator           Maven


                                                          Device
                                                                                                       Jenkins

                                      Andro VM
                                                                                                                      Ant
                          Vogar


                                                                   http://goo.gl/pdwnq                                        Gradle
https://github.com/stephanenicolas/Quality-Tools-for-Android

                  (http://goo.gl/pdwnq)
                                                               27 au 29 mars 2013
Initial Setup
#install Eclipse Juno or IntelliJ
                                                  #install maven 3.0.3+               Maven    Jenkins
#install ADT (for Eclipse)
                                                  #install Jenkins
#install a few Android SDK (i.e: 8, 11, 14, 17)
                                                  #install Jenkins Android Emulator Plugin
#install Hardware Acceleration from Intel

#install X86 android emulator with Hardware
Acceleration Support



    #install Sonar                                       Cobertura   findbugs   PMD    Check
                                                                                               Sonar
                                                                                       Style



    #install the Sonar Android Lint Plugin
    > git clone git@github.com:jeromevdl/sonar-android-lint-plugin.git                          Lint

    > mvn clean install && cp target/*.jar [SONAR_HOME]/extensions/plugins/
    > sonar.sh restart
                                                                                                Emma
    #install the Sonar Emma Plugin
Getting started
 # clone the repository on GitHub
 > git clone git@github.com:stephanenicolas/Quality-Tools-for-Android.git




            This projects combines many Quality Tools for Android.
                   It demonstrates how to set up those tools.

              It is not intended to be used as a maven archetype.
                   No project will need all of those technologies,
                             take only what you need.

        All configurations work both in IntelliJ, Eclipse, Maven CLI and
                                   Jenkins.
Project Structure



                        •Main app + Robolectric : Maven Android project
                        •Shared configuration : Maven parent project
                        •Android Junit Tests : Maven Android project
                        •UI Automator Tests : Maven Java project




          Eclipse projects follow maven submodules.
Maven Profiles
                                                                             Quality checks
                                                                              (Checkstyle +
            Junit + Robotium   Robolectric   UIAutomator   Code coverage                      Sonar
                                                                           findbugs + PMD +
                                                                                  lint)


standard


 emma


cobertura

    ui
automator

 spoon


 jacoco
Standard profile :
Running tests and Quality checks




                    Robotium          JUnit         Robolectric             UI
                                                                        Automator



                               Lint           findbugs            PMD               Check
                                                                                    Style




                   # run all tests
                   > mvn clean install
emma profile :
JUnit tests and Emma code coverage in Sonar
          Robotium      JUnit         Emma           Sonar




   Lint          findbugs       PMD          Check
                                             Style




# run standard junit tests and get code coverage
> mvn clean install –P emma

# Report in Sonar
> mvn sonar:sonar –P emma
cobertura profile :
Robolectric tests and Cobertura code coverage in Sonar
          Robolectric    Cobertura         Sonar




   Lint            findbugs          PMD           Check
                                                   Style




# run robolectric tests and get code coverage
> mvn clean cobertura:cobertura –P cobertura

# Report in Sonar
> mvn sonar:sonar –P cobertura
jacoco profile :
Robolectric and standard tests and Jacoco code coverage in Sonar
          Robotium         JUnit         Robolectric           Jacoco   Sonar




   Lint         findbugs           PMD                 Check
                                                       Style




# run robolectric tests and get code coverage
> mvn clean install –P jacoco

# Report in Sonar
> mvn sonar:sonar –P jacoco
ui automator profile :
Running UI Automator tests

           UI            Sonar
       Automator




Lint          findbugs           PMD   Check
                                       Style




# run UI Automator tests
> mvn clean install –P uiautomator

> mvn sonar:sonar –P uiautomator
Spoon profile :
Running Junit & Robotium via Spoon

                Robotium         JUnit




Lint     findbugs          PMD           Check   Spoon
                                         Style




  # run JUnit & Robotium tests via spoon
  > mvn clean install –P spoon
Conclusion

                 Let’s take advantage of Java maturity.
             Testing and building more robust apps can be
                                 easy.

               Choose technologies that suit your needs.
                  qrcode.12511021.png




             Clone our project on GitHub, try it, contribute !




                                        http://goo.gl/pdwnq
Live Demo




https://github.com/stephanenicolas/Quality-Tools-for-Android

                  (http://goo.gl/pdwnq)
                                                               27 au 29 mars 2013
Question and comments ?

More Related Content

Viewers also liked

Webinar: Open Source Business Intelligence Intro
Webinar: Open Source Business Intelligence IntroWebinar: Open Source Business Intelligence Intro
Webinar: Open Source Business Intelligence Intro
SpagoWorld
 
Android development
Android developmentAndroid development
Android development
Gregoire BARRET
 
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn TớiTech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
Nexus FrontierTech
 
Adopting Open Source Business Intelligence: Who, Why and How
Adopting Open Source Business Intelligence: Who, Why and HowAdopting Open Source Business Intelligence: Who, Why and How
Adopting Open Source Business Intelligence: Who, Why and How
mark madsen
 
Open Source Business Intelligence
Open Source Business IntelligenceOpen Source Business Intelligence
Open Source Business Intelligence
Jos van Dongen
 
Mondrian and OLAP Overview
Mondrian and OLAP OverviewMondrian and OLAP Overview
Mondrian and OLAP Overview
Alex Meadows
 
Jaspersoft Webinar deck
Jaspersoft Webinar deckJaspersoft Webinar deck
Jaspersoft Webinar deck
Jos van Dongen
 

Viewers also liked (7)

Webinar: Open Source Business Intelligence Intro
Webinar: Open Source Business Intelligence IntroWebinar: Open Source Business Intelligence Intro
Webinar: Open Source Business Intelligence Intro
 
Android development
Android developmentAndroid development
Android development
 
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn TớiTech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn Tới
 
Adopting Open Source Business Intelligence: Who, Why and How
Adopting Open Source Business Intelligence: Who, Why and HowAdopting Open Source Business Intelligence: Who, Why and How
Adopting Open Source Business Intelligence: Who, Why and How
 
Open Source Business Intelligence
Open Source Business IntelligenceOpen Source Business Intelligence
Open Source Business Intelligence
 
Mondrian and OLAP Overview
Mondrian and OLAP OverviewMondrian and OLAP Overview
Mondrian and OLAP Overview
 
Jaspersoft Webinar deck
Jaspersoft Webinar deckJaspersoft Webinar deck
Jaspersoft Webinar deck
 

Similar to Devoxx France 2013 : Musclez vos apps android avec les outils du monde java

A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android Applications
Porfirio Tramontana
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648
Eing Ong
 
PhoneGap Day 2016 USA
PhoneGap Day 2016 USAPhoneGap Day 2016 USA
PhoneGap Day 2016 USA
Ryan J. Salva
 
Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012
Agora Group
 
Mwri security testing-android-with-mercury-2013-04-02
Mwri security testing-android-with-mercury-2013-04-02Mwri security testing-android-with-mercury-2013-04-02
Mwri security testing-android-with-mercury-2013-04-02
Droidcon Berlin
 
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...
Mathias Seguy
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
Mindfire Solutions
 
Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))
dev2ops
 
XP Days UA Pecha kucha
XP Days UA Pecha kuchaXP Days UA Pecha kucha
XP Days UA Pecha kucha
Eugen Martynov
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentation
Bitbar
 
Rationalize Android Development with StAnD - Clement Escoffier, akquinet
Rationalize Android Development with StAnD - Clement Escoffier, akquinetRationalize Android Development with StAnD - Clement Escoffier, akquinet
Rationalize Android Development with StAnD - Clement Escoffier, akquinet
Paris Open Source Summit
 
Embedded system-Introduction to development cycle and development tool
Embedded system-Introduction to development cycle and development  toolEmbedded system-Introduction to development cycle and development  tool
Embedded system-Introduction to development cycle and development tool
Pantech ProLabs India Pvt Ltd
 
CiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality managementCiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality management
Ciklum Ukraine
 
IoT Tech Day Coding Mojo slides. Utrecht, April 2016
IoT Tech Day Coding Mojo slides.  Utrecht, April 2016IoT Tech Day Coding Mojo slides.  Utrecht, April 2016
IoT Tech Day Coding Mojo slides. Utrecht, April 2016
Mark West
 
Eco system apps
Eco system appsEco system apps
Eco system apps
Sergey Seletsky
 
Victor CG Erofeev - Metro UI
Victor CG Erofeev - Metro UIVictor CG Erofeev - Metro UI
Victor CG Erofeev - Metro UI
Dmitri Nesteruk
 
Phonegap Development & Debugging
Phonegap Development & DebuggingPhonegap Development & Debugging
Phonegap Development & Debugging
Ivano Malavolta
 
Mobile testingartifacts
Mobile testingartifactsMobile testingartifacts
Mobile testingartifacts
Pragya Rastogi
 
Ci2d - The Colossal Hood For Agile Development And Deployment
Ci2d - The Colossal Hood For Agile Development And DeploymentCi2d - The Colossal Hood For Agile Development And Deployment
Ci2d - The Colossal Hood For Agile Development And Deployment
Naveen S.R
 
Ci for Android
Ci for AndroidCi for Android
Ci for Android
Alexey Ustenko
 

Similar to Devoxx France 2013 : Musclez vos apps android avec les outils du monde java (20)

A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android Applications
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648
 
PhoneGap Day 2016 USA
PhoneGap Day 2016 USAPhoneGap Day 2016 USA
PhoneGap Day 2016 USA
 
Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012
 
Mwri security testing-android-with-mercury-2013-04-02
Mwri security testing-android-with-mercury-2013-04-02Mwri security testing-android-with-mercury-2013-04-02
Mwri security testing-android-with-mercury-2013-04-02
 
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))
 
XP Days UA Pecha kucha
XP Days UA Pecha kuchaXP Days UA Pecha kucha
XP Days UA Pecha kucha
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentation
 
Rationalize Android Development with StAnD - Clement Escoffier, akquinet
Rationalize Android Development with StAnD - Clement Escoffier, akquinetRationalize Android Development with StAnD - Clement Escoffier, akquinet
Rationalize Android Development with StAnD - Clement Escoffier, akquinet
 
Embedded system-Introduction to development cycle and development tool
Embedded system-Introduction to development cycle and development  toolEmbedded system-Introduction to development cycle and development  tool
Embedded system-Introduction to development cycle and development tool
 
CiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality managementCiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality management
 
IoT Tech Day Coding Mojo slides. Utrecht, April 2016
IoT Tech Day Coding Mojo slides.  Utrecht, April 2016IoT Tech Day Coding Mojo slides.  Utrecht, April 2016
IoT Tech Day Coding Mojo slides. Utrecht, April 2016
 
Eco system apps
Eco system appsEco system apps
Eco system apps
 
Victor CG Erofeev - Metro UI
Victor CG Erofeev - Metro UIVictor CG Erofeev - Metro UI
Victor CG Erofeev - Metro UI
 
Phonegap Development & Debugging
Phonegap Development & DebuggingPhonegap Development & Debugging
Phonegap Development & Debugging
 
Mobile testingartifacts
Mobile testingartifactsMobile testingartifacts
Mobile testingartifacts
 
Ci2d - The Colossal Hood For Agile Development And Deployment
Ci2d - The Colossal Hood For Agile Development And DeploymentCi2d - The Colossal Hood For Agile Development And Deployment
Ci2d - The Colossal Hood For Agile Development And Deployment
 
Ci for Android
Ci for AndroidCi for Android
Ci for Android
 

More from jeromevdl

Message-Driven Architecture on AWS
Message-Driven Architecture on AWSMessage-Driven Architecture on AWS
Message-Driven Architecture on AWS
jeromevdl
 
Do more with less code in serverless
Do more with less code in serverlessDo more with less code in serverless
Do more with less code in serverless
jeromevdl
 
Do more with less code in a serverless world
Do more with less code in a serverless worldDo more with less code in a serverless world
Do more with less code in a serverless world
jeromevdl
 
DevopsDays Geneva 2020 - Compliance & Governance as Code
DevopsDays Geneva 2020 - Compliance & Governance as CodeDevopsDays Geneva 2020 - Compliance & Governance as Code
DevopsDays Geneva 2020 - Compliance & Governance as Code
jeromevdl
 
Softshake 2017 - Développer un chatbot Alexa
Softshake 2017 - Développer un chatbot AlexaSoftshake 2017 - Développer un chatbot Alexa
Softshake 2017 - Développer un chatbot Alexa
jeromevdl
 
Chatbots buzzword ou nouvel eldorado
Chatbots   buzzword ou nouvel eldoradoChatbots   buzzword ou nouvel eldorado
Chatbots buzzword ou nouvel eldorado
jeromevdl
 
Management projet vs management produit
Management projet vs management produitManagement projet vs management produit
Management projet vs management produit
jeromevdl
 
Softshake - Offline applications
Softshake - Offline applicationsSoftshake - Offline applications
Softshake - Offline applications
jeromevdl
 
DroidconUK 2013 : Beef up android apps with java tools
DroidconUK 2013 : Beef up android apps with java toolsDroidconUK 2013 : Beef up android apps with java tools
DroidconUK 2013 : Beef up android apps with java tools
jeromevdl
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
jeromevdl
 
Metroide
MetroideMetroide
Metroide
jeromevdl
 

More from jeromevdl (11)

Message-Driven Architecture on AWS
Message-Driven Architecture on AWSMessage-Driven Architecture on AWS
Message-Driven Architecture on AWS
 
Do more with less code in serverless
Do more with less code in serverlessDo more with less code in serverless
Do more with less code in serverless
 
Do more with less code in a serverless world
Do more with less code in a serverless worldDo more with less code in a serverless world
Do more with less code in a serverless world
 
DevopsDays Geneva 2020 - Compliance & Governance as Code
DevopsDays Geneva 2020 - Compliance & Governance as CodeDevopsDays Geneva 2020 - Compliance & Governance as Code
DevopsDays Geneva 2020 - Compliance & Governance as Code
 
Softshake 2017 - Développer un chatbot Alexa
Softshake 2017 - Développer un chatbot AlexaSoftshake 2017 - Développer un chatbot Alexa
Softshake 2017 - Développer un chatbot Alexa
 
Chatbots buzzword ou nouvel eldorado
Chatbots   buzzword ou nouvel eldoradoChatbots   buzzword ou nouvel eldorado
Chatbots buzzword ou nouvel eldorado
 
Management projet vs management produit
Management projet vs management produitManagement projet vs management produit
Management projet vs management produit
 
Softshake - Offline applications
Softshake - Offline applicationsSoftshake - Offline applications
Softshake - Offline applications
 
DroidconUK 2013 : Beef up android apps with java tools
DroidconUK 2013 : Beef up android apps with java toolsDroidconUK 2013 : Beef up android apps with java tools
DroidconUK 2013 : Beef up android apps with java tools
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
 
Metroide
MetroideMetroide
Metroide
 

Recently uploaded

Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
Tobias Schneck
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
Sunil Jagani
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
ScyllaDB
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 

Recently uploaded (20)

Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 

Devoxx France 2013 : Musclez vos apps android avec les outils du monde java

  • 1. Beef up your Android apps, using Java tools 27/03/2013, 17h - 17h30 - Salle Miles Davis A
  • 2. Beef up your Android apps, using Java tools Jérôme Van Der Linden & Stéphane Nicolas OCTO Technology consultants @octotechnology 27 au 29 mars 2013
  • 3. Jérôme Van Der Linden • Java / Android / JEE Architect • Design, development, audit • Industrialization of software engineering • OSS softwares on GitHub • Android Holo Colors, Sonar Android Lint Plugin • Appaloosa Store co-founder
  • 4. Stéphane Nicolas • 17 years of Java experience • Mostly teaching, programming, designing. • OSS softwares on GitHub • RoboSpice, Quality Analysis Tools for Android, RoboDemo • Contributor of android maven plugin • Quebecer-like, woodworker wanna be, OSS-fan, Android coder
  • 5. Quality Tools Available on Android TestDroid Test Tools Reporting Tools Sonar Spoon Monkey Runner CheckStyle FEST- Android PMD Mockito findbugs Lint EasyMock Calabash UI Robotium Robolectric JUnit Quality Tools Emma Cobertura Jacoco Clover Code Automator For Android coverage Emulator Maven Device Jenkins Andro VM Ant Vogar http://goo.gl/pdwnq Gradle
  • 6. https://github.com/stephanenicolas/Quality-Tools-for-Android (http://goo.gl/pdwnq) 27 au 29 mars 2013
  • 7. Initial Setup #install Eclipse Juno or IntelliJ #install maven 3.0.3+ Maven Jenkins #install ADT (for Eclipse) #install Jenkins #install a few Android SDK (i.e: 8, 11, 14, 17) #install Jenkins Android Emulator Plugin #install Hardware Acceleration from Intel #install X86 android emulator with Hardware Acceleration Support #install Sonar Cobertura findbugs PMD Check Sonar Style #install the Sonar Android Lint Plugin > git clone git@github.com:jeromevdl/sonar-android-lint-plugin.git Lint > mvn clean install && cp target/*.jar [SONAR_HOME]/extensions/plugins/ > sonar.sh restart Emma #install the Sonar Emma Plugin
  • 8. Getting started # clone the repository on GitHub > git clone git@github.com:stephanenicolas/Quality-Tools-for-Android.git This projects combines many Quality Tools for Android. It demonstrates how to set up those tools. It is not intended to be used as a maven archetype. No project will need all of those technologies, take only what you need. All configurations work both in IntelliJ, Eclipse, Maven CLI and Jenkins.
  • 9. Project Structure •Main app + Robolectric : Maven Android project •Shared configuration : Maven parent project •Android Junit Tests : Maven Android project •UI Automator Tests : Maven Java project Eclipse projects follow maven submodules.
  • 10. Maven Profiles Quality checks (Checkstyle + Junit + Robotium Robolectric UIAutomator Code coverage Sonar findbugs + PMD + lint) standard emma cobertura ui automator spoon jacoco
  • 11. Standard profile : Running tests and Quality checks Robotium JUnit Robolectric UI Automator Lint findbugs PMD Check Style # run all tests > mvn clean install
  • 12. emma profile : JUnit tests and Emma code coverage in Sonar Robotium JUnit Emma Sonar Lint findbugs PMD Check Style # run standard junit tests and get code coverage > mvn clean install –P emma # Report in Sonar > mvn sonar:sonar –P emma
  • 13. cobertura profile : Robolectric tests and Cobertura code coverage in Sonar Robolectric Cobertura Sonar Lint findbugs PMD Check Style # run robolectric tests and get code coverage > mvn clean cobertura:cobertura –P cobertura # Report in Sonar > mvn sonar:sonar –P cobertura
  • 14. jacoco profile : Robolectric and standard tests and Jacoco code coverage in Sonar Robotium JUnit Robolectric Jacoco Sonar Lint findbugs PMD Check Style # run robolectric tests and get code coverage > mvn clean install –P jacoco # Report in Sonar > mvn sonar:sonar –P jacoco
  • 15. ui automator profile : Running UI Automator tests UI Sonar Automator Lint findbugs PMD Check Style # run UI Automator tests > mvn clean install –P uiautomator > mvn sonar:sonar –P uiautomator
  • 16. Spoon profile : Running Junit & Robotium via Spoon Robotium JUnit Lint findbugs PMD Check Spoon Style # run JUnit & Robotium tests via spoon > mvn clean install –P spoon
  • 17. Conclusion Let’s take advantage of Java maturity. Testing and building more robust apps can be easy. Choose technologies that suit your needs. qrcode.12511021.png Clone our project on GitHub, try it, contribute ! http://goo.gl/pdwnq