SlideShare a Scribd company logo
1	

Tél : +33 (0)1 58 56 10 00
Fax : +33 (0)1 58 56 10 01
www.octo.com© OCTO 2012
50, avenue des Champs-Elysées
75008 Paris - FRANCE
Beef up your Android apps, using Java tools
Musclez vos apps Android
avec les outils du monde Java.
Jérôme Van Der Linden & Stéphane Nicolas
2	

! 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
Jérôme Van Der Linden
@jeromevdl	

 +jerome van der linden
3	

! 17 years of Java experience
!   Mostly teaching, programming, designing.
! OSS softwares on GitHub
!   RoboSpice, Quality Analysis Tools for Android,
RoboDemo, ORMLite Content Provider Compiler
!   Contributor of android maven plugin
! Quebecer-like, woodworker wanna be, OSS-fan,
Android coder
Stéphane Nicolas
+stephane nicolas
4	


Quality Tools Available on Android
Quality Tools
For Android
Calabash
Mockito
Robotium
UI
Automator
Robo
lectric
JUnit
Jenkins
Sonar
Maven
Ant
Geny
Motion
Emulator
Vogar
Emma Jacoco
Lint
PMD
CheckSt
yle
findbugs
EasyMock
Cobertura
Device
FEST-
Android
Spoon
Test Tools	

 Reporting Tools	

Code coverage	

Graddle
Monkey
Monkey
Runner
5	

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

(http://goo.gl/pdwnq)
6	

Initial setup
#install Eclipse Juno or IntelliJ
#install ADT (for Eclipse)
#install a few Android SDK (i.e: 8,
11, 14, 17)
#install Hardware Acceleration from
Intel
#install X86 android emulator with
Hardware Acceleration Support
	

#install maven 3.0.3+
#install Jenkins
#install Jenkins Android
Emulator Plugin
JenkinsMaven
7	

#install Sonar
#install the Sonar Android Lint Plugin
 git clone git@github.com:SonarCommunity/sonar-android.git
 mvn clean install  cp target/*.jar [SONAR_HOME]/extensions/plugins/
 sonar.sh restart
#install the Sonar Emma Plugin
Sonar LintPMD Check
Style
findbugsEmma Cobertura
Initial setup :: Sonar
Jacoco
Thanks to Thomas Bores  Florian Roncari
for their contributions to the sonar lint plugin.
8	

# 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
Junit + Robotium Robolectric UIAutomator Code coverage
Quality checks
(Checkstyle +
findbugs +
PMD + lint)
Sonar
standard
emma
cobertura
ui
automator
spoon
jacoco
11	

Standard profile :
Running tests and Quality checks
Robo	

lectric	

Robotium	

 JUnit	

 UI
Automator	

Lint PMD Check
Style
findbugs
# run all tests	

 mvn clean install
12	

Emma profile :
JUnit tests and Emma code coverage in Sonar
Robo	

tium	

JUnit	

 Emma	

 Sonar
Lint PMD Check
Style
findbugs
# 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
# run robolectric tests and get code coverage	

 mvn clean cobertura:cobertura –P cobertura	

	

# Report in Sonar	

 mvn sonar:sonar –P cobertura	

	

Robo	

lectric	

Cober
tura
Sonar
Lint PMD Check
Style
findbugs
14	

Jacoco profile :
Robolectric and standard tests and Jacoco code coverage in Sonar
# run robolectric tests and get code coverage	

 mvn clean install –P jacoco	

	

# Report in Sonar	

 mvn sonar:sonar –P jacoco	

	

Robo	

lectric	

Jacoco
SonarLint PMD Check
Style
findbugs
Robo	

tium	

JUnit
15	

UI Automator profile :
Running UI Automator tests
# run UI Automator tests	

 mvn clean install –P uiautomator	

	

 mvn sonar:sonar –P uiautomator	

UI
Autom
ator	

Sonar
Lint PMD
Check
Stylefindbugs
16	

Spoon profile :
Running Junit  Robotium via Spoon
# run JUnit  Robotium tests via spoon	

 mvn clean install –P spoon	

	

Robotium	

 JUnit	

Lint PMD Check
Style
findbugs Spoon
17	

Monkey profile :
Running Monkey tests
# run Monkey tests and get result in Sonar	

 mvn clean install –P monkey	

	

Monkey	

Lint PMD Check
Style
findbugs Sonar
18	

Monkey Runner profile :
Running Monkey runner tests
# run Monkey runner tests 
#and get result in Sonar	

 mvn clean install –P monkeyrunner	

	

Monkey	

Runner	

Lint PMD Check
Style
findbugs Sonar
19	

! Let’s take advantage of Java maturity.
! Testing and building more robust apps can be easy.
! Choose technologies that suit your needs.
! Clone our project on GitHub, try it, contribute !
Conclusion
http://goo.gl/pdwnq
20	

https://github.com/stephanenicolas/Quality-Tools-for-Android
(http://goo.gl/pdwnq)
Live Demo
21	

Question and comments ?

More Related Content

Similar to Droidcon Paris 2013 - Musclez vos applications Android avec les outils du monde java

Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
Justin James
 
PhoneGap Day 2016 USA
PhoneGap Day 2016 USAPhoneGap Day 2016 USA
PhoneGap Day 2016 USA
Ryan J. Salva
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648
Eing Ong
 
Descubre Android
Descubre AndroidDescubre Android
Descubre Android
Antonio López Marín
 
mydevops.pptx
mydevops.pptxmydevops.pptx
mydevops.pptx
ssuserf111e7
 
Video Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesVideo Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devices
Matteo Bonifazi
 
Opencv
OpencvOpencv
Opencv
Ethishkumar
 
Continuous inspection with Sonar
Continuous inspection with SonarContinuous inspection with Sonar
Continuous inspection with Sonar
gaudol
 
Phonegap Development & Debugging
Phonegap Development & DebuggingPhonegap Development & Debugging
Phonegap Development & Debugging
Ivano Malavolta
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
Emre Dündar
 
Learning android with AOSP
Learning android with AOSPLearning android with AOSP
Learning android with AOSP
Jorge Barroso
 
Ninja Productivity in Android Studio
Ninja Productivity in Android StudioNinja Productivity in Android Studio
Ninja Productivity in Android Studio
Ramon Ribeiro Rabello
 
selenium-2-mobile-web-testing
selenium-2-mobile-web-testingselenium-2-mobile-web-testing
selenium-2-mobile-web-testing
hugs
 
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBattle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Bess Ho
 
Continuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and AppiumContinuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and Appium
Emergya
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
Mindfire Solutions
 
Oscon presentation
Oscon presentationOscon presentation
Oscon presentation
garrettmoon
 
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger,  GreenrobotDroidcon 2011: Gingerbread and honeycomb, Markus Junginger,  Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon Berlin
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
Cristián Cortéz
 
Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...
Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...
Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...
Ron Werner
 

Similar to Droidcon Paris 2013 - Musclez vos applications Android avec les outils du monde java (20)

Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
PhoneGap Day 2016 USA
PhoneGap Day 2016 USAPhoneGap Day 2016 USA
PhoneGap Day 2016 USA
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648
 
Descubre Android
Descubre AndroidDescubre Android
Descubre Android
 
mydevops.pptx
mydevops.pptxmydevops.pptx
mydevops.pptx
 
Video Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesVideo Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devices
 
Opencv
OpencvOpencv
Opencv
 
Continuous inspection with Sonar
Continuous inspection with SonarContinuous inspection with Sonar
Continuous inspection with Sonar
 
Phonegap Development & Debugging
Phonegap Development & DebuggingPhonegap Development & Debugging
Phonegap Development & Debugging
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
 
Learning android with AOSP
Learning android with AOSPLearning android with AOSP
Learning android with AOSP
 
Ninja Productivity in Android Studio
Ninja Productivity in Android StudioNinja Productivity in Android Studio
Ninja Productivity in Android Studio
 
selenium-2-mobile-web-testing
selenium-2-mobile-web-testingselenium-2-mobile-web-testing
selenium-2-mobile-web-testing
 
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBattle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
 
Continuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and AppiumContinuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and Appium
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Oscon presentation
Oscon presentationOscon presentation
Oscon presentation
 
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger,  GreenrobotDroidcon 2011: Gingerbread and honeycomb, Markus Junginger,  Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...
Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...
Dragons & Knights - Calabash and Cucumber as Automation Tools for Hybrid Apps...
 

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

Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
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
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
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
 
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
 
"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
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
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
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 

Recently uploaded (20)

Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
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
 
"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
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 

Droidcon Paris 2013 - Musclez vos applications Android avec les outils du monde java

  • 1. 1 Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com© OCTO 2012 50, avenue des Champs-Elysées 75008 Paris - FRANCE Beef up your Android apps, using Java tools Musclez vos apps Android avec les outils du monde Java. Jérôme Van Der Linden & Stéphane Nicolas
  • 2. 2 ! 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 Jérôme Van Der Linden @jeromevdl +jerome van der linden
  • 3. 3 ! 17 years of Java experience !   Mostly teaching, programming, designing. ! OSS softwares on GitHub !   RoboSpice, Quality Analysis Tools for Android, RoboDemo, ORMLite Content Provider Compiler !   Contributor of android maven plugin ! Quebecer-like, woodworker wanna be, OSS-fan, Android coder Stéphane Nicolas +stephane nicolas
  • 4. 4 Quality Tools Available on Android Quality Tools For Android Calabash Mockito Robotium UI Automator Robo lectric JUnit Jenkins Sonar Maven Ant Geny Motion Emulator Vogar Emma Jacoco Lint PMD CheckSt yle findbugs EasyMock Cobertura Device FEST- Android Spoon Test Tools Reporting Tools Code coverage Graddle Monkey Monkey Runner
  • 6. 6 Initial setup #install Eclipse Juno or IntelliJ #install ADT (for Eclipse) #install a few Android SDK (i.e: 8, 11, 14, 17) #install Hardware Acceleration from Intel #install X86 android emulator with Hardware Acceleration Support #install maven 3.0.3+ #install Jenkins #install Jenkins Android Emulator Plugin JenkinsMaven
  • 7. 7 #install Sonar #install the Sonar Android Lint Plugin git clone git@github.com:SonarCommunity/sonar-android.git mvn clean install cp target/*.jar [SONAR_HOME]/extensions/plugins/ sonar.sh restart #install the Sonar Emma Plugin Sonar LintPMD Check Style findbugsEmma Cobertura Initial setup :: Sonar Jacoco Thanks to Thomas Bores Florian Roncari for their contributions to the sonar lint plugin.
  • 8. 8 # 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. 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. 10 Maven profiles Junit + Robotium Robolectric UIAutomator Code coverage Quality checks (Checkstyle + findbugs + PMD + lint) Sonar standard emma cobertura ui automator spoon jacoco
  • 11. 11 Standard profile : Running tests and Quality checks Robo lectric Robotium JUnit UI Automator Lint PMD Check Style findbugs # run all tests mvn clean install
  • 12. 12 Emma profile : JUnit tests and Emma code coverage in Sonar Robo tium JUnit Emma Sonar Lint PMD Check Style findbugs # run standard junit tests and get code coverage mvn clean install –P emma # Report in Sonar mvn sonar:sonar –P emma
  • 13. 13 Cobertura profile : Robolectric tests and Cobertura code coverage in Sonar # run robolectric tests and get code coverage mvn clean cobertura:cobertura –P cobertura # Report in Sonar mvn sonar:sonar –P cobertura Robo lectric Cober tura Sonar Lint PMD Check Style findbugs
  • 14. 14 Jacoco profile : Robolectric and standard tests and Jacoco code coverage in Sonar # run robolectric tests and get code coverage mvn clean install –P jacoco # Report in Sonar mvn sonar:sonar –P jacoco Robo lectric Jacoco SonarLint PMD Check Style findbugs Robo tium JUnit
  • 15. 15 UI Automator profile : Running UI Automator tests # run UI Automator tests mvn clean install –P uiautomator mvn sonar:sonar –P uiautomator UI Autom ator Sonar Lint PMD Check Stylefindbugs
  • 16. 16 Spoon profile : Running Junit Robotium via Spoon # run JUnit Robotium tests via spoon mvn clean install –P spoon Robotium JUnit Lint PMD Check Style findbugs Spoon
  • 17. 17 Monkey profile : Running Monkey tests # run Monkey tests and get result in Sonar mvn clean install –P monkey Monkey Lint PMD Check Style findbugs Sonar
  • 18. 18 Monkey Runner profile : Running Monkey runner tests # run Monkey runner tests #and get result in Sonar mvn clean install –P monkeyrunner Monkey Runner Lint PMD Check Style findbugs Sonar
  • 19. 19 ! Let’s take advantage of Java maturity. ! Testing and building more robust apps can be easy. ! Choose technologies that suit your needs. ! Clone our project on GitHub, try it, contribute ! Conclusion http://goo.gl/pdwnq