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

21
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

description

Musclez vos applications Android avec les outils du monde java, conférence Droidcon Paris 2013

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

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

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

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

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

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

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

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

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

CheckStyle

findbugs

EasyMock

Cobertura

Device

FEST-Android

Spoon

http://goo.gl/pdwnq

Test Tools Reporting Tools

Code coverage

Graddle

Monkey

Monkey Runner

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

5

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

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

6

Initial setup

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

Jenkins Maven

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

7

#install Sonar

#install the Sonar Android Lint Plugin > git clone [email protected]:SonarCommunity/sonar-android.git > mvn clean install && cp target/*.jar [SONAR_HOME]/extensions/plugins/ > sonar.sh restart #install the Sonar Emma Plugin

Sonar Lint PMD Check Style findbugs Emma Cobertura

Initial setup :: Sonar

Jacoco

Thanks to Thomas Bores & Florian Roncari for their contributions to the sonar lint plugin.

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

8

Getting started # clone the repository on GitHub > git clone [email protected]: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.

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

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.

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

10

Maven profiles

Junit + Robotium Robolectric UIAutomator Code coverage

Quality checks (Checkstyle +

findbugs + PMD + lint)

Sonar

standard

emma

cobertura

ui automator

spoon

jacoco

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

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

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

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

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

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

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

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

Sonar Lint PMD Check Style findbugs

Robo tium

JUnit

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

15

UI Automator profile : Running UI Automator tests

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

UI���Automator

Sonar

Lint PMD Check Style findbugs

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

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

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

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

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

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

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

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

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

20

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

(http://goo.gl/pdwnq)

Live Demo

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

21

Question and comments ?