SlideShare a Scribd company logo
1 of 51
Download to read offline
Android
Elvis Lin 2016/10/15
Agenda
•
• Continuous Integration 101
•
•
About Me
Elvis Lin
Mobile Application Developer
• Github: https://github.com/elvismetaphor
• Blog: http://blog.elvismetaphor.me
•
•
• BUG
•
•
•
•
!?
Issue
Tracking

•
•
•
But,
Bot
https://www.jitbit.com/alexblog/249-now-thats-what-i-call-a-hacker/
Every time they got a problem they
found that they were still repeating
what they were doing. They would
write a tool for it, automate it.
— Edmond Lau
CI
https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html
Android Studio
•
•
•
•
Settings
Git
•
• Gitlab — Git Server
• GitHub —
GitHub
•
• Markdown README
•
• Wiki
•
•
Zenhub
Github Issues
• Jenkins —
• Travis CI —
Jenkins
•
•
• plugins
• Web
Travis CI
Travis CI Android
/
Gradle
• Command Line IDE CI Server
• Groovy Script ( Groovy DSL)
• Product Flavour
• Powerful Dependencies Management
Android
• Windows

> gradlew.bat assembleDebug
• Mac

$ chmod +x gradlew

$ ./gradlew assembleDebug
• 

$ ./gradlew tasks
FIRST
• Fast
• Independant
• Repeatable
• Self Validation
• Timely
The AAA Pattern
• Arrange
• Act
• Assert
Library
• JUnit 4
• Android Test Support Library
• Robolectric
• Espresso
• Mockito
JUnit
•
• Java API
Android Testing Support
Library
• Android API
•
Robolectric
• Android API
•
Espresso
• UI
• Cucumber
Mockito
• Mock Framework
Clean Architecture
https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
Clean
Grade Play Publisher Plugin
• Gradle plugin
• APK Google Play
Crashlytic
• Fabric Mobile Development Kits
•
•
•
•
/
•
•
Automate_Android_development_brief_20161015
Automate_Android_development_brief_20161015

More Related Content

What's hot

Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions Sauce Labs
 
WordPress updates - Why You Can't Live Without Them
WordPress updates - Why You Can't Live Without ThemWordPress updates - Why You Can't Live Without Them
WordPress updates - Why You Can't Live Without ThemWarren Denley
 
Building your first Native iOs App with an API Backend
Building your first Native iOs App with an API BackendBuilding your first Native iOs App with an API Backend
Building your first Native iOs App with an API BackendApigee | Google Cloud
 
API 101 - Understanding APIs.
API 101 - Understanding APIs.API 101 - Understanding APIs.
API 101 - Understanding APIs.Kirsten Hunter
 
Distributed Stream Processing with Apache Kafka
Distributed Stream Processing with Apache KafkaDistributed Stream Processing with Apache Kafka
Distributed Stream Processing with Apache KafkaJay Kreps
 
Reark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJavaReark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJavaFuturice
 
Running Away from JSON APIStrat 2015 Edition
Running Away from JSON APIStrat 2015 EditionRunning Away from JSON APIStrat 2015 Edition
Running Away from JSON APIStrat 2015 EditionGareth Jones
 
An iOS Developer's Perspective on React Native
An iOS Developer's Perspective on React NativeAn iOS Developer's Perspective on React Native
An iOS Developer's Perspective on React NativeAleksandras Smirnovas
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android ApplicationsLeif Janzik
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Sauce Labs
 
How to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a ProHow to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a ProAtul Gupta(8X)
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA TeamSrijan Technologies
 
Essential Plone development tools - Plone conf 2012
Essential Plone development tools - Plone conf 2012Essential Plone development tools - Plone conf 2012
Essential Plone development tools - Plone conf 2012Kim Chee Leong
 
Appcelerator Titanium Alloy
Appcelerator Titanium AlloyAppcelerator Titanium Alloy
Appcelerator Titanium AlloyKarthi Ponnusamy
 
SauceCon19: Fashionable XCUITest for iOS App
SauceCon19: Fashionable XCUITest for iOS App SauceCon19: Fashionable XCUITest for iOS App
SauceCon19: Fashionable XCUITest for iOS App Shashikant Jagtap
 
Test Driven Development - Workshop
Test Driven Development - WorkshopTest Driven Development - Workshop
Test Driven Development - WorkshopAnjana Somathilake
 
How we built a job board in one week with JHipster
How we built a job board in one week with JHipsterHow we built a job board in one week with JHipster
How we built a job board in one week with JHipsterKile Niklawski
 

What's hot (20)

Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions
 
WordPress updates - Why You Can't Live Without Them
WordPress updates - Why You Can't Live Without ThemWordPress updates - Why You Can't Live Without Them
WordPress updates - Why You Can't Live Without Them
 
Building your first Native iOs App with an API Backend
Building your first Native iOs App with an API BackendBuilding your first Native iOs App with an API Backend
Building your first Native iOs App with an API Backend
 
API 101 - Understanding APIs.
API 101 - Understanding APIs.API 101 - Understanding APIs.
API 101 - Understanding APIs.
 
Distributed Stream Processing with Apache Kafka
Distributed Stream Processing with Apache KafkaDistributed Stream Processing with Apache Kafka
Distributed Stream Processing with Apache Kafka
 
How to define an api
How to define an apiHow to define an api
How to define an api
 
Reark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJavaReark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJava
 
Plone api
Plone apiPlone api
Plone api
 
Running Away from JSON APIStrat 2015 Edition
Running Away from JSON APIStrat 2015 EditionRunning Away from JSON APIStrat 2015 Edition
Running Away from JSON APIStrat 2015 Edition
 
An iOS Developer's Perspective on React Native
An iOS Developer's Perspective on React NativeAn iOS Developer's Perspective on React Native
An iOS Developer's Perspective on React Native
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 
Ohoh
OhohOhoh
Ohoh
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
 
How to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a ProHow to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a Pro
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team
 
Essential Plone development tools - Plone conf 2012
Essential Plone development tools - Plone conf 2012Essential Plone development tools - Plone conf 2012
Essential Plone development tools - Plone conf 2012
 
Appcelerator Titanium Alloy
Appcelerator Titanium AlloyAppcelerator Titanium Alloy
Appcelerator Titanium Alloy
 
SauceCon19: Fashionable XCUITest for iOS App
SauceCon19: Fashionable XCUITest for iOS App SauceCon19: Fashionable XCUITest for iOS App
SauceCon19: Fashionable XCUITest for iOS App
 
Test Driven Development - Workshop
Test Driven Development - WorkshopTest Driven Development - Workshop
Test Driven Development - Workshop
 
How we built a job board in one week with JHipster
How we built a job board in one week with JHipsterHow we built a job board in one week with JHipster
How we built a job board in one week with JHipster
 

Viewers also liked

Black diamond corporate lcp
Black diamond corporate lcpBlack diamond corporate lcp
Black diamond corporate lcpPaul Wheeler
 
Zain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidi
Zain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidiZain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidi
Zain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidiMuhammad Tariq
 
ECU APPA Presentation101815
ECU APPA Presentation101815ECU APPA Presentation101815
ECU APPA Presentation101815Haley Thore, MPA
 
Cim formación - claves para hacer el roll over
Cim formación - claves para hacer el roll overCim formación - claves para hacer el roll over
Cim formación - claves para hacer el roll overCIM Grupo de Formación
 
Dicas de suplementos emagrecer
Dicas de suplementos emagrecerDicas de suplementos emagrecer
Dicas de suplementos emagrecerjaqueslouback
 
Jason Lad ProdSec CV 2015
Jason Lad  ProdSec CV 2015Jason Lad  ProdSec CV 2015
Jason Lad ProdSec CV 2015Jason Lad
 
Millennial Perspective
Millennial PerspectiveMillennial Perspective
Millennial PerspectiveBeau Roberts
 
Internship report presentation at square fashion ltd by md.shariful islam im...
Internship  report presentation at square fashion ltd by md.shariful islam im...Internship  report presentation at square fashion ltd by md.shariful islam im...
Internship report presentation at square fashion ltd by md.shariful islam im...MD.SHARIFUL ISLAM IMAN
 
Six Sigma in Recruitment Presentation
Six Sigma in Recruitment PresentationSix Sigma in Recruitment Presentation
Six Sigma in Recruitment Presentationmike4656
 

Viewers also liked (13)

Black diamond corporate lcp
Black diamond corporate lcpBlack diamond corporate lcp
Black diamond corporate lcp
 
17 dec
17 dec17 dec
17 dec
 
Zain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidi
Zain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidiZain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidi
Zain ul barkat fi manaqib ahle bait by zain ul abideen shah rashidi
 
ECU APPA Presentation101815
ECU APPA Presentation101815ECU APPA Presentation101815
ECU APPA Presentation101815
 
Bab i kkp
Bab i kkpBab i kkp
Bab i kkp
 
Cim formación - claves para hacer el roll over
Cim formación - claves para hacer el roll overCim formación - claves para hacer el roll over
Cim formación - claves para hacer el roll over
 
Israr ul mushtaaq
Israr ul mushtaaqIsrar ul mushtaaq
Israr ul mushtaaq
 
Dicas de suplementos emagrecer
Dicas de suplementos emagrecerDicas de suplementos emagrecer
Dicas de suplementos emagrecer
 
Jason Lad ProdSec CV 2015
Jason Lad  ProdSec CV 2015Jason Lad  ProdSec CV 2015
Jason Lad ProdSec CV 2015
 
Masis group
Masis groupMasis group
Masis group
 
Millennial Perspective
Millennial PerspectiveMillennial Perspective
Millennial Perspective
 
Internship report presentation at square fashion ltd by md.shariful islam im...
Internship  report presentation at square fashion ltd by md.shariful islam im...Internship  report presentation at square fashion ltd by md.shariful islam im...
Internship report presentation at square fashion ltd by md.shariful islam im...
 
Six Sigma in Recruitment Presentation
Six Sigma in Recruitment PresentationSix Sigma in Recruitment Presentation
Six Sigma in Recruitment Presentation
 

Similar to Automate_Android_development_brief_20161015

Visual Studio Online as a CI Service
Visual Studio Online as a CI ServiceVisual Studio Online as a CI Service
Visual Studio Online as a CI ServiceHiroshi Maekawa
 
Selenium IDE and Beyond
Selenium IDE and BeyondSelenium IDE and Beyond
Selenium IDE and BeyondSamit Badle
 
Api Versioning
Api VersioningApi Versioning
Api VersioningBen Ramsey
 
CI doesn’t start with Jenkins
CI doesn’t start with JenkinsCI doesn’t start with Jenkins
CI doesn’t start with JenkinsYuriy Rochnyak
 
Hassle-Free Continuous Integration with Real Device Testing
Hassle-Free Continuous Integration with Real Device TestingHassle-Free Continuous Integration with Real Device Testing
Hassle-Free Continuous Integration with Real Device TestingBitbar
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deploymentAlan Harper
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HEREStefan Verhoeff
 
Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019Tobias Hoppenthaler
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahiericjamesblackburn
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合Carl Su
 
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2Wen-Tien Chang
 
Agile startup company management and operation
Agile startup company management and operationAgile startup company management and operation
Agile startup company management and operationJiang Zhu
 
You Don't Know ES Modules
You Don't Know ES ModulesYou Don't Know ES Modules
You Don't Know ES ModulesTeppei Sato
 
サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦Teppei Sato
 
Inspect The Uninspected
Inspect The UninspectedInspect The Uninspected
Inspect The Uninspectedcgack
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tipsTony May
 
Kendo UI - Mikita Manko at Mobile Optimized
Kendo UI - Mikita Manko at Mobile OptimizedKendo UI - Mikita Manko at Mobile Optimized
Kendo UI - Mikita Manko at Mobile OptimizedMikita Manko
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayBojan Veljanovski
 

Similar to Automate_Android_development_brief_20161015 (20)

Visual Studio Online as a CI Service
Visual Studio Online as a CI ServiceVisual Studio Online as a CI Service
Visual Studio Online as a CI Service
 
Selenium IDE and Beyond
Selenium IDE and BeyondSelenium IDE and Beyond
Selenium IDE and Beyond
 
Api Versioning
Api VersioningApi Versioning
Api Versioning
 
CI doesn’t start with Jenkins
CI doesn’t start with JenkinsCI doesn’t start with Jenkins
CI doesn’t start with Jenkins
 
Hassle-Free Continuous Integration with Real Device Testing
Hassle-Free Continuous Integration with Real Device TestingHassle-Free Continuous Integration with Real Device Testing
Hassle-Free Continuous Integration with Real Device Testing
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 
Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahi
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合
 
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
 
Agile startup company management and operation
Agile startup company management and operationAgile startup company management and operation
Agile startup company management and operation
 
The Ruby workflow
The Ruby workflowThe Ruby workflow
The Ruby workflow
 
You Don't Know ES Modules
You Don't Know ES ModulesYou Don't Know ES Modules
You Don't Know ES Modules
 
サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦
 
Inspect The Uninspected
Inspect The UninspectedInspect The Uninspected
Inspect The Uninspected
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
 
Kendo UI - Mikita Manko at Mobile Optimized
Kendo UI - Mikita Manko at Mobile OptimizedKendo UI - Mikita Manko at Mobile Optimized
Kendo UI - Mikita Manko at Mobile Optimized
 
Frontend State of the union
Frontend State of the unionFrontend State of the union
Frontend State of the union
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
 

Automate_Android_development_brief_20161015