SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
BEEF UP ANDROID APPS
USING JAVA TOOLS

Stéphane Nicolas &
Jérôme Van Der Linden
2	
  

Jerome Van Der Linden

android-­‐holo-­‐colors.com	
  

jeromevdl	
  

@jeromevdl	
  

+jerome	
  van	
  der	
  linden	
  
3	
  

Stéphane Nicolas
ox	
  
BoundB

And	
  others	
  :	
  RoboDemo,	
  Quality	
  Analysis	
  Tools	
  for	
  Android,	
  android-­‐maven-­‐plugin,	
  …	
  

stephanenicolas	
  

snicolas	
  

+stephane	
  nicolas	
  
4	
  
5	
  

1

ONCE UPON A TIME
JAVA ENVIRONMENT
6	
  

4	
  
7	
  

Everything is testable
Everything is measurable
Everything is integrated
No excuses to have poor apps !
8	
  

Great !
9	
  

And me ?!
10	
  

2

WTF ?!
ANDROID IS JAVA !
11	
  

Almost YES…
… a story of
Virtual Machine

So what … ?
12	
  

3	
  
Oh Yeah !
14	
  

(almost)

(almost)

Everything is testable

Everything is measurable
BUT

Everything is NOT integrated
15	
  

Quality Tools for Android

http://goo.gl/zGFvda
16	
  

3

Quality Tools Android
Ant
18	
  

4

Quality Tools Android
Maven
19	
  

The magical

plugin

<plugin>!
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
"!
<artifactId>android-maven-plugin</artifactId>!
<version>3.6.1</version>!
</plugin>!
20	
  

The ultimate

profile

# run junit, robotium, robolectric tests and get code coverage!
> mvn clean install –P jacoco!
21	
  

Maven
Profiles

Junit	
  +	
  
Robo,um

Robolectric

UIAutomator

Code	
  
coverage

standard

emma
cobertura

ui	
  
automator

spoon

jacoco

x2	
  

Quality	
  
checks	
  
(Checkstyle	
  +	
  
findbugs	
  +	
  
PMD	
  +	
  lint)

Sonar
22	
  

Android Lint
Sonar plugin
# analyse code (pmd, checkstyle, findbugs, lint) and report in sonar!
> mvn sonar:sonar –P jacoco!

hOps://github.com/SonarCommunity/sonar-­‐android	
  
23	
  

Not an archetype

(see akquinet : http://goo.gl/O46LIw)

Only samples
Do not use everything !
Pick up what you need !
24	
  

Return of
real life experience
Maven	
  
Jenkins	
  
Sonar	
  (PMD,	
  checkstyle,	
  findbugs,	
  lint)	
  
Junit	
  (Instrumenta[onTestCase)	
  

~	
  100	
  screens	
  (phone	
  +	
  tablet)	
  
~	
  5	
  developers	
  during	
  only	
  5	
  months	
  
~	
  60k	
  loc	
  (java),	
  15k	
  loc	
  (xml)	
  
~	
  400	
  unit	
  tests	
  :	
  not	
  an	
  excep[onal	
  coverage	
  (~	
  30%)	
  
Built	
  on	
  each	
  commit	
  on	
  Jenkins	
  +	
  Genymo[on	
  
0	
  lint,	
  pmd,	
  findbugs,	
  checkstyle	
  viola[ons	
  
1	
  sonar	
  report	
  generated	
  each	
  night	
  with	
  those	
  metrics	
  
	
  
è	
  An	
  happy	
  customer	
  J	
  
25	
  

Lessons

learned

A	
  laborious	
  development	
  environment	
  :	
  
eclipse	
  +	
  maven	
  +	
  m2eclipse	
  +	
  android	
  m2e	
  connector	
  
è Many	
  hours	
  lost	
  è	
  Use	
  IntelliJ	
  !	
  	
  
A	
  laborious	
  execu[on	
  environment	
  :	
  emulator	
  
è	
  Too	
  slow	
  è	
  Use	
  Genymo[on	
  (or	
  at	
  least	
  a	
  device)	
  !	
  
	
  
Not	
  enough	
  tests	
  :	
  
è Instrumenta[onTestCase	
  are	
  too	
  heavy/slow	
  for	
  Unit	
  Tes[ng	
  	
  
è Use	
  Robolectric	
  and/or	
  think	
  about	
  MV*	
  paOern	
  
è	
  Keep	
  Instrumenta[onTestCase	
  for	
  Android	
  specific	
  (Ac[vity,	
  
Services,	
  …)	
  
	
  
26	
  

Lessons

learned

A	
  robust	
  development	
  environment	
  :	
  
eclipse	
  +	
  maven	
  +	
  m2eclipse	
  +	
  android	
  m2e	
  connector	
  
è	
  s[ll	
  some	
  problem	
  with	
  eclipse	
  and	
  maven	
  integra[on	
  
	
  
About	
  tests	
  
è Instrumenta[onTestCase	
  are	
  fast	
  enough	
  with	
  GenyMo[on	
  
è	
  Robolectric	
  can’t	
  give	
  you	
  enough	
  confidence	
  	
  
	
  
27	
  

5

Quality Tools Android
Gradle
28	
  

Before	
  	
  
V	
  0.6	
  

Lint
UIAutomator

Monkey & Monkey Runner
Robolectric
PMD, checkstyle, findbugs
Emma, Cobertura, Jacoco
Joke ?!
30	
  

V	
  0.6.+	
  

Lint
UIAutomator

Monkey & Monkey Runner
Robolectric
PMD, checkstyle, findbugs
Emma, Cobertura, Jacoco
31	
  

Quality
#
#
>
#
>

the gradle way

run junit, robotium, robolectric tests !
AND Chekstyle + PMD + Findbugs + Classycle!
gradle check!
report in sonar!
gradle sonarRunner!
32	
  

6

Conclusion

Android is filling the gap
Gradle
Feature
Application Variants &
Manifest merging

Standard	
  tests	
  &	
  Robo,um

Code	
  Coverage	
  
Robolectric
UI	
  automator	
  /	
  Monkey	
  /	
  
Monkey	
  Runner
PMD	
  /	
  CheckStyle	
  /	
  
FindBgugs	
  /	
  Classycle	
  /	
  Lint
Sonar	
  &	
  Project	
  Sites

0.6.1

VS Maven
Gradle

Maven

?

33	
  

3.6.1
Android offers

34	
  

lots of quality tools
lots of testing methods
rapid testing
Everything gets easier
to use
Build rock solid apps
35	
  

Thank You !
Any Question ?
stephanenicolas	
  
jeromevdl	
  

snicolas	
  
@jeromevdl	
  

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

+stephane	
  nicolas	
  
+jerome	
  van	
  der	
  linden	
  
36	
  

Quality Tools for Android

http://goo.gl/zGFvda

Más contenido relacionado

La actualidad más candente

Inconvenient Truth(s) - On Application Security (from 2007)
Inconvenient Truth(s) - On Application Security (from 2007)Inconvenient Truth(s) - On Application Security (from 2007)
Inconvenient Truth(s) - On Application Security (from 2007)Dinis Cruz
 
Application compatibility final
Application compatibility finalApplication compatibility final
Application compatibility finalHarold Wong
 
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)Alex Florescu
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...Yuval Yeret
 
Test Driven Development for Embedded C
Test Driven Development for Embedded CTest Driven Development for Embedded C
Test Driven Development for Embedded CJames Grenning
 
Developing Android Apps
Developing Android AppsDeveloping Android Apps
Developing Android AppsClaire Lee
 
Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit Prasad
 Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit Prasad Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit Prasad
Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit PrasadApplitools
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakSigma Software
 
How to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsHow to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsDaniel Knott
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support developmentChema del Barco
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 

La actualidad más candente (15)

Inconvenient Truth(s) - On Application Security (from 2007)
Inconvenient Truth(s) - On Application Security (from 2007)Inconvenient Truth(s) - On Application Security (from 2007)
Inconvenient Truth(s) - On Application Security (from 2007)
 
I dream of ISPWeb
I dream of ISPWebI dream of ISPWeb
I dream of ISPWeb
 
Application compatibility final
Application compatibility finalApplication compatibility final
Application compatibility final
 
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
 
Shift left-testing
Shift left-testingShift left-testing
Shift left-testing
 
Apptest.ai intro & pitch
Apptest.ai intro & pitchApptest.ai intro & pitch
Apptest.ai intro & pitch
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
 
Test Driven Development for Embedded C
Test Driven Development for Embedded CTest Driven Development for Embedded C
Test Driven Development for Embedded C
 
Developing Android Apps
Developing Android AppsDeveloping Android Apps
Developing Android Apps
 
Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit Prasad
 Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit Prasad Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit Prasad
Advanced Techniques for Testing Responsive Apps and Sites -- By Aakrit Prasad
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
 
How to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsHow to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several Teams
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
Solid c-accu2014.key
Solid c-accu2014.keySolid c-accu2014.key
Solid c-accu2014.key
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 

Similar a DroidconUK 2013 : Beef up android apps with java tools

Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios
 
When & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile ApplicationsWhen & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile ApplicationsTechnologyAssociationOregon
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android ApplicationsLeif Janzik
 
Android testing
Android testingAndroid testing
Android testingBitbar
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingKatie Chin
 
Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"
Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"
Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"QA Dnepropetrovsk Community (Ukraine)
 
Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.UA Mobile
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...mCloud
 
How we improved i os delivery speed from qa side by Kateryna Sprynsian
How we improved i os delivery speed from qa side by Kateryna SprynsianHow we improved i os delivery speed from qa side by Kateryna Sprynsian
How we improved i os delivery speed from qa side by Kateryna SprynsianBadoo
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]Dynatrace
 
Introduction To Android For Beginners.
Introduction To Android For Beginners.Introduction To Android For Beginners.
Introduction To Android For Beginners.Sandeep Londhe
 
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product..."Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...Product of Things
 
Discover Android Wear
Discover Android WearDiscover Android Wear
Discover Android WearTroy Miles
 

Similar a DroidconUK 2013 : Beef up android apps with java tools (20)

Synapseindia android apps application
Synapseindia android apps applicationSynapseindia android apps application
Synapseindia android apps application
 
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
 
When & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile ApplicationsWhen & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile Applications
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 
Mobitop
MobitopMobitop
Mobitop
 
Mobitop
MobitopMobitop
Mobitop
 
Mobitop
MobitopMobitop
Mobitop
 
Mobitop
MobitopMobitop
Mobitop
 
Android testing
Android testingAndroid testing
Android testing
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
 
Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"
Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"
Александр Качур - "Android и MeeGo: автоматизация тестовых сценариев"
 
Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
 
How we improved i os delivery speed from qa side by Kateryna Sprynsian
How we improved i os delivery speed from qa side by Kateryna SprynsianHow we improved i os delivery speed from qa side by Kateryna Sprynsian
How we improved i os delivery speed from qa side by Kateryna Sprynsian
 
Cs4hs android-01hello
Cs4hs android-01helloCs4hs android-01hello
Cs4hs android-01hello
 
Chapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CIChapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CI
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
Introduction To Android For Beginners.
Introduction To Android For Beginners.Introduction To Android For Beginners.
Introduction To Android For Beginners.
 
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product..."Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...
 
Discover Android Wear
Discover Android WearDiscover Android Wear
Discover Android Wear
 

Más de jeromevdl

Message-Driven Architecture on AWS
Message-Driven Architecture on AWSMessage-Driven Architecture on AWS
Message-Driven Architecture on AWSjeromevdl
 
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 serverlessjeromevdl
 
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 worldjeromevdl
 
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 Codejeromevdl
 
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 Alexajeromevdl
 
Chatbots buzzword ou nouvel eldorado
Chatbots   buzzword ou nouvel eldoradoChatbots   buzzword ou nouvel eldorado
Chatbots buzzword ou nouvel eldoradojeromevdl
 
Management projet vs management produit
Management projet vs management produitManagement projet vs management produit
Management projet vs management produitjeromevdl
 
Softshake - Offline applications
Softshake - Offline applicationsSoftshake - Offline applications
Softshake - Offline applicationsjeromevdl
 
My Android is not an iPhone like any others (Mdevcon 2014)
My Android is not an iPhone like any others (Mdevcon 2014)My Android is not an iPhone like any others (Mdevcon 2014)
My Android is not an iPhone like any others (Mdevcon 2014)jeromevdl
 
Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...
Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...
Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...jeromevdl
 
Devoxx France 2013 : Musclez vos apps android avec les outils du monde java
Devoxx France 2013 : Musclez vos apps android avec les outils du monde javaDevoxx France 2013 : Musclez vos apps android avec les outils du monde java
Devoxx France 2013 : Musclez vos apps android avec les outils du monde javajeromevdl
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013jeromevdl
 

Más de jeromevdl (13)

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
 
My Android is not an iPhone like any others (Mdevcon 2014)
My Android is not an iPhone like any others (Mdevcon 2014)My Android is not an iPhone like any others (Mdevcon 2014)
My Android is not an iPhone like any others (Mdevcon 2014)
 
Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...
Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...
Droidcon Paris 2013 - Musclez vos applications Android avec les outils du mon...
 
Devoxx France 2013 : Musclez vos apps android avec les outils du monde java
Devoxx France 2013 : Musclez vos apps android avec les outils du monde javaDevoxx France 2013 : Musclez vos apps android avec les outils du monde java
Devoxx France 2013 : Musclez vos apps android avec les outils du monde java
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
 
Metroide
MetroideMetroide
Metroide
 

Último

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 

Último (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 

DroidconUK 2013 : Beef up android apps with java tools

  • 1. BEEF UP ANDROID APPS USING JAVA TOOLS Stéphane Nicolas & Jérôme Van Der Linden
  • 2. 2   Jerome Van Der Linden android-­‐holo-­‐colors.com   jeromevdl   @jeromevdl   +jerome  van  der  linden  
  • 3. 3   Stéphane Nicolas ox   BoundB And  others  :  RoboDemo,  Quality  Analysis  Tools  for  Android,  android-­‐maven-­‐plugin,  …   stephanenicolas   snicolas   +stephane  nicolas  
  • 5. 5   1 ONCE UPON A TIME JAVA ENVIRONMENT
  • 7. 7   Everything is testable Everything is measurable Everything is integrated No excuses to have poor apps !
  • 11. 11   Almost YES… … a story of Virtual Machine So what … ?
  • 14. 14   (almost) (almost) Everything is testable Everything is measurable BUT Everything is NOT integrated
  • 15. 15   Quality Tools for Android http://goo.gl/zGFvda
  • 16. 16   3 Quality Tools Android Ant
  • 17.
  • 18. 18   4 Quality Tools Android Maven
  • 20. 20   The ultimate profile # run junit, robotium, robolectric tests and get code coverage! > mvn clean install –P jacoco!
  • 21. 21   Maven Profiles Junit  +   Robo,um Robolectric UIAutomator Code   coverage standard emma cobertura ui   automator spoon jacoco x2   Quality   checks   (Checkstyle  +   findbugs  +   PMD  +  lint) Sonar
  • 22. 22   Android Lint Sonar plugin # analyse code (pmd, checkstyle, findbugs, lint) and report in sonar! > mvn sonar:sonar –P jacoco! hOps://github.com/SonarCommunity/sonar-­‐android  
  • 23. 23   Not an archetype (see akquinet : http://goo.gl/O46LIw) Only samples Do not use everything ! Pick up what you need !
  • 24. 24   Return of real life experience Maven   Jenkins   Sonar  (PMD,  checkstyle,  findbugs,  lint)   Junit  (Instrumenta[onTestCase)   ~  100  screens  (phone  +  tablet)   ~  5  developers  during  only  5  months   ~  60k  loc  (java),  15k  loc  (xml)   ~  400  unit  tests  :  not  an  excep[onal  coverage  (~  30%)   Built  on  each  commit  on  Jenkins  +  Genymo[on   0  lint,  pmd,  findbugs,  checkstyle  viola[ons   1  sonar  report  generated  each  night  with  those  metrics     è  An  happy  customer  J  
  • 25. 25   Lessons learned A  laborious  development  environment  :   eclipse  +  maven  +  m2eclipse  +  android  m2e  connector   è Many  hours  lost  è  Use  IntelliJ  !     A  laborious  execu[on  environment  :  emulator   è  Too  slow  è  Use  Genymo[on  (or  at  least  a  device)  !     Not  enough  tests  :   è Instrumenta[onTestCase  are  too  heavy/slow  for  Unit  Tes[ng     è Use  Robolectric  and/or  think  about  MV*  paOern   è  Keep  Instrumenta[onTestCase  for  Android  specific  (Ac[vity,   Services,  …)    
  • 26. 26   Lessons learned A  robust  development  environment  :   eclipse  +  maven  +  m2eclipse  +  android  m2e  connector   è  s[ll  some  problem  with  eclipse  and  maven  integra[on     About  tests   è Instrumenta[onTestCase  are  fast  enough  with  GenyMo[on   è  Robolectric  can’t  give  you  enough  confidence      
  • 27. 27   5 Quality Tools Android Gradle
  • 28. 28   Before     V  0.6   Lint UIAutomator Monkey & Monkey Runner Robolectric PMD, checkstyle, findbugs Emma, Cobertura, Jacoco
  • 30. 30   V  0.6.+   Lint UIAutomator Monkey & Monkey Runner Robolectric PMD, checkstyle, findbugs Emma, Cobertura, Jacoco
  • 31. 31   Quality # # > # > the gradle way run junit, robotium, robolectric tests ! AND Chekstyle + PMD + Findbugs + Classycle! gradle check! report in sonar! gradle sonarRunner!
  • 32. 32   6 Conclusion Android is filling the gap
  • 33. Gradle Feature Application Variants & Manifest merging Standard  tests  &  Robo,um Code  Coverage   Robolectric UI  automator  /  Monkey  /   Monkey  Runner PMD  /  CheckStyle  /   FindBgugs  /  Classycle  /  Lint Sonar  &  Project  Sites 0.6.1 VS Maven Gradle Maven ? 33   3.6.1
  • 34. Android offers 34   lots of quality tools lots of testing methods rapid testing Everything gets easier to use Build rock solid apps
  • 35. 35   Thank You ! Any Question ? stephanenicolas   jeromevdl   snicolas   @jeromevdl   Stéphane Nicolas & Jérôme Van Der Linden +stephane  nicolas   +jerome  van  der  linden  
  • 36. 36   Quality Tools for Android http://goo.gl/zGFvda