SlideShare a Scribd company logo
From Robotium to Appium:
Choose Your Journey
Dmitry Vinnik
@DmitryVinnik dvinnik.com
What are our goals?
@DmitryVinnik dvinnik.com
Goals
Mobile End-to-End Testing
Robotium vs Appium
Find Right E2E Tool For Your Team
@DmitryVinnik dvinnik.com
Do you do manual testing?
@DmitryVinnik dvinnik.com
Do you write automation?
@DmitryVinnik dvinnik.com
From the Top Level
@DmitryVinnik dvinnik.com
How do we organize
QA Effort?
@DmitryVinnik dvinnik.com
Testing Quadrants
@DmitryVinnik dvinnik.com
Agile Testing Quadrants
@DmitryVinnik dvinnik.com
Let’s go in more details
@DmitryVinnik dvinnik.com
How do we usually test?
@DmitryVinnik dvinnik.com
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Target Platforms?
@DmitryVinnik dvinnik.com
Target Platforms
iOS
Android
Responsive
Apps
Hybrid
Apps
Android iOS
@DmitryVinnik dvinnik.com
Mobile is taking over
@DmitryVinnik dvinnik.com
Mobile vs Desktop
@DmitryVinnik dvinnik.com
Desktop
Mobile
But “Mobile” is so broad
Let’s see some data
Android
iOS
Android is leading
@DmitryVinnik dvinnik.com
Focus: Android
@DmitryVinnik dvinnik.com
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Android Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Many Test Frameworks...
Calabash
UIAutomator MonkeyTalk
KIF
@DmitryVinnik dvinnik.com
@DmitryVinnik dvinnik.com
Journey of Android
E2E Testing
Android E2E Testing
Robotium Selendroid Appium
@DmitryVinnik dvinnik.com
Our Testing Journey
Robotium Selendroid
Appium
Selendroid
Appium
@DmitryVinnik dvinnik.com
Robotium
@DmitryVinnik dvinnik.com
Robotium: Architecture
App
Package
Test
Package
Test
Runner
@DmitryVinnik dvinnik.com
Device
Robotium
Android
Oriented
Blackbox
Testing
User
Centric
↓ Verbosity
@DmitryVinnik dvinnik.com
@DmitryVinnik dvinnik.com
Robotium
Robotium: Example
@DmitryVinnik dvinnik.com
Robotium: Example
@DmitryVinnik dvinnik.com
Robotium: Example
@DmitryVinnik dvinnik.com
Robotium: Example
@DmitryVinnik dvinnik.com
Robotium: Example
@DmitryVinnik dvinnik.com
Robotium: Example
@DmitryVinnik dvinnik.com
Robotium: Example
@DmitryVinnik dvinnik.com
Robotium: Example
@DmitryVinnik dvinnik.com
Our Testing Journey
Robotium Selendroid
Appium
Selendroid
AppiumAppium
SelendroidRobotium
@DmitryVinnik dvinnik.com
Selendroid
@DmitryVinnik dvinnik.com
Selendroid: Architecture
@DmitryVinnik dvinnik.com
Selendroid: Architecture
@DmitryVinnik dvinnik.com
Selendroid: Architecture
@DmitryVinnik dvinnik.com
Selendroid
Selenium
Based
Multiple
Devices
Gesture
Support
Older
Android API
@DmitryVinnik dvinnik.com
Selendroid
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Selendroid: Example
@DmitryVinnik dvinnik.com
Our Testing Journey
Robotium Selendroid
Appium
Selendroid
AppiumAppium
SelendroidRobotium
@DmitryVinnik dvinnik.com
Robotium vs Selendroid
@DmitryVinnik dvinnik.com
Robotium vs Selendroid
Robotium Category SelendroidRobotium Category Selendroid
Architecture
Robotium Category Selendroid
Activity Architecture
Robotium Category Selendroid
Activity Architecture App
Robotium Category Selendroid
Activity Architecture App
Locator
Strategy
Robotium Category Selendroid
Activity Architecture App
By Android
IDs
Locator
Strategy
Robotium Category Selendroid
Activity Architecture App
By Android
IDs
Locator
Strategy
By Selenium
Locators
Robotium Category Selendroid
Activity Architecture App
By Android
IDs
Locator
Strategy
By Selenium
Locators
Gesture
Support
Robotium Category Selendroid
Activity Architecture App
By Android
IDs
Locator
Strategy
By Selenium
Locators
Limited
Gesture
Support
Robotium Category Selendroid
Activity Architecture App
By Android
IDs
Locator
Strategy
By Selenium
Locators
Limited
Gesture
Support
Extensive
@DmitryVinnik dvinnik.com
Our Testing Journey
Robotium Selendroid
Appium
Selendroid
AppiumAppium
SelendroidRobotiumRobotium Selendroid
Appium
@DmitryVinnik dvinnik.com
Appium
@DmitryVinnik dvinnik.com
Appium: Architecture
Device
Appium
Client
Appium
Server
Native
Libraries
App
@DmitryVinnik dvinnik.com
Appium
Selenium
Based
Platform
Agnostic
Language
Agnostic
Developer
Oriented
@DmitryVinnik dvinnik.com
Appium: Four Pillars
Production ->
Test Ready
Loose
Coupling
Standards
Driven
Open
Source
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Appium: Example
@DmitryVinnik dvinnik.com
Our Testing Journey
Robotium Selendroid
Appium
Selendroid
AppiumAppium
SelendroidRobotiumRobotium Selendroid
Appium
Selendroid
@DmitryVinnik dvinnik.com
Selendroid vs Appium
@DmitryVinnik dvinnik.com
Selendroid vs Appium
Selendroid Category AppiumSelendroid Category Appium
Platform
Selendroid Category Appium
Android Platform
Selendroid Category Appium
Android Platform Any*
Selendroid Category Appium
Android Platform Any*
Android API
Version
Selendroid Category Appium
Android Platform Any*
All*
Android API
Version
Selendroid Category Appium
Android Platform Any*
All*
Android API
Version
Post API16
Selendroid Category Appium
Android Platform Any*
All*
Android API
Version
Post API16
Advanced
Web Tests
Selendroid Category Appium
Android Platform Any*
All*
Android API
Version
Post API16
Limited
Advanced
Web Tests
Selendroid Category Appium
Android Platform Any*
All*
Android API
Version
Post API16
Limited
Advanced
Web Tests
Extensive
@DmitryVinnik dvinnik.com
Our Testing Journey
Robotium Selendroid
Appium
Selendroid
AppiumAppium
SelendroidRobotiumRobotium Selendroid
Appium
SelendroidSelendroid
Appium
Robotium
@DmitryVinnik dvinnik.com
Robotium vs Appium
@DmitryVinnik dvinnik.com
Robotium vs Appium
Robotium Category AppiumRobotium Category Appium
Coupling
Robotium Category Appium
Tight Coupling
Robotium Category Appium
Tight Coupling Loose
Robotium Category Appium
Tight Coupling Loose
Device
Support
Robotium Category Appium
Tight Coupling Loose
Single
Device
Device
Support
Robotium Category Appium
Tight Coupling Loose
Single
Device
Device
Support
Multiple
Devices
Robotium Category Appium
Tight Coupling Loose
Single
Device
Device
Support
Multiple
Devices
Record &
Play
Robotium Category Appium
Tight Coupling Loose
Single
Device
Device
Support
Multiple
Devices
Paid Plugin
Record &
Play
Robotium Category Appium
Tight Coupling Loose
Single
Device
Device
Support
Multiple
Devices
Paid Plugin
Record &
Play
Free,
Desktop App
@DmitryVinnik dvinnik.com
Right Tool
for the Right Problem
@DmitryVinnik dvinnik.com
Avoid Tool Mixups
No DDD
No Common
Language
↑ Complexity
@DmitryVinnik dvinnik.com
How to Choose?
Github
Repos
Twitter
Activity
External
Integrations
POC
@DmitryVinnik dvinnik.com
But More Importantly
Flexibility
Use CaseUse Case
@DmitryVinnik dvinnik.com
Flexibility
Cost of
Transition
ROI
Ability to
Replace
Ability to
Customize
@DmitryVinnik dvinnik.com
But More Importantly
Flexibility
Use CaseUse Case
@DmitryVinnik dvinnik.com
Flexibility
Use Case
Android is leading
@DmitryVinnik dvinnik.com
But iOS as important
@DmitryVinnik dvinnik.com
Use Case
Team
Expertise
Application
Framework
Test
Infrastructure
@DmitryVinnik dvinnik.com
Going Forward
@DmitryVinnik dvinnik.com
Scaling Up
BrowserStack
Devices
SauceLabs
OS Version
@DmitryVinnik dvinnik.com
Call For Action
Evaluate Test
Architecture
Unify Test
Strategy
Adapt to
Change
Experiment!
@DmitryVinnik dvinnik.com
Q/A
@DmitryVinnik dvinnik.com
About Speaker
Twitter: @DmitryVinnik
Blog: dvinnik.com
LinkedIn: in/dmitry-vinnik/
Email: dmitry@dvinnik.com

More Related Content

What's hot

Challenges of Developing BLE Application on Android
Challenges of Developing BLE Application on AndroidChallenges of Developing BLE Application on Android
Challenges of Developing BLE Application on Android
Gabor Guta
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020
Devathon
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
Dominik Dary
 
Mobile Test Automation at eBay
Mobile Test Automation at eBayMobile Test Automation at eBay
Mobile Test Automation at eBayDominik Dary
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
Apple Chow
 
#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...
#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...
#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...
Agile Testing Alliance
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
Dhaval Patel
 
Rebooting APIs at scale
Rebooting APIs at scaleRebooting APIs at scale
Rebooting APIs at scale
Rahul Dighe
 
Using JavaScript for Mobile Development
Using JavaScript for Mobile DevelopmentUsing JavaScript for Mobile Development
Using JavaScript for Mobile Development
Stephen G
 
Phonegap presentation
Phonegap presentationPhonegap presentation
Phonegap presentation
Atilla Özgür
 
Continuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum EditionContinuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum Edition
Michael Medin
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
Lemi Orhan Ergin
 
Chiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app developmentChiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app development
Codemotion
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Srijan Technologies
 

What's hot (17)

Challenges of Developing BLE Application on Android
Challenges of Developing BLE Application on AndroidChallenges of Developing BLE Application on Android
Challenges of Developing BLE Application on Android
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Mobile Test Automation at eBay
Mobile Test Automation at eBayMobile Test Automation at eBay
Mobile Test Automation at eBay
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
 
#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...
#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...
#ATAGTR2019 Presentation "Delivering Cx through Continuous Performance Assura...
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
Rebooting APIs at scale
Rebooting APIs at scaleRebooting APIs at scale
Rebooting APIs at scale
 
Device fragmentation vs clean code
Device fragmentation vs clean codeDevice fragmentation vs clean code
Device fragmentation vs clean code
 
Using JavaScript for Mobile Development
Using JavaScript for Mobile DevelopmentUsing JavaScript for Mobile Development
Using JavaScript for Mobile Development
 
Phonegap presentation
Phonegap presentationPhonegap presentation
Phonegap presentation
 
Continuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum EditionContinuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum Edition
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
 
Your API is not a Website!
Your API is not a Website!Your API is not a Website!
Your API is not a Website!
 
Chiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app developmentChiara Chiappini - Swift and the future of iOS app development
Chiara Chiappini - Swift and the future of iOS app development
 
Api tools overview
Api tools overviewApi tools overview
Api tools overview
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 

Similar to From Robotium to Appium: Choose your Journey

Uphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual RegressionUphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual Regression
Dmitry Vinnik
 
Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium
Dmitry Vinnik
 
Hands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to HeroHands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to Hero
All Things Open
 
Testing at Scale at Meta and Salesforce
Testing at Scale at Meta and SalesforceTesting at Scale at Meta and Salesforce
Testing at Scale at Meta and Salesforce
Dmitry Vinnik
 
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual RegressionMobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
All Things Open
 
Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond SeleniumModern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium
Dmitry Vinnik
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App Development
Todd Burgess
 
Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise
Inflectra
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Bitbar
 
Ninja Productivity in Android Studio
Ninja Productivity in Android StudioNinja Productivity in Android Studio
Ninja Productivity in Android Studio
Ramon Ribeiro Rabello
 
Android instant app
Android instant appAndroid instant app
Android instant app
Benjamin Cheng
 
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
 
Do you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional InterfacesDo you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional Interfaces
Dmitry Vinnik
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver Selendroid
Dominik Dary
 
Android Application Development China - ITOutsourcingChina
Android Application Development China - ITOutsourcingChinaAndroid Application Development China - ITOutsourcingChina
Android Application Development China - ITOutsourcingChina
IT Outsourcing China
 
selenium-2-mobile-web-testing
selenium-2-mobile-web-testingselenium-2-mobile-web-testing
selenium-2-mobile-web-testing
hugs
 
AADI Services
AADI ServicesAADI Services
AADI Services
Steve Smith
 
Cross-platform mobile that Works - Coobers
Cross-platform mobile that Works - CoobersCross-platform mobile that Works - Coobers
Cross-platform mobile that Works - Coobers
Coobers
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
Noam Kfir
 

Similar to From Robotium to Appium: Choose your Journey (20)

Uphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual RegressionUphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual Regression
 
Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium
 
Hands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to HeroHands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to Hero
 
Testing at Scale at Meta and Salesforce
Testing at Scale at Meta and SalesforceTesting at Scale at Meta and Salesforce
Testing at Scale at Meta and Salesforce
 
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual RegressionMobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
 
Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond SeleniumModern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium
 
Introduction to Android App Development
Introduction to Android App DevelopmentIntroduction to Android App Development
Introduction to Android App Development
 
Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
 
Ninja Productivity in Android Studio
Ninja Productivity in Android StudioNinja Productivity in Android Studio
Ninja Productivity in Android Studio
 
Android instant app
Android instant appAndroid instant app
Android instant app
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
Do you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional InterfacesDo you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional Interfaces
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver Selendroid
 
Shashank
ShashankShashank
Shashank
 
Android Application Development China - ITOutsourcingChina
Android Application Development China - ITOutsourcingChinaAndroid Application Development China - ITOutsourcingChina
Android Application Development China - ITOutsourcingChina
 
selenium-2-mobile-web-testing
selenium-2-mobile-web-testingselenium-2-mobile-web-testing
selenium-2-mobile-web-testing
 
AADI Services
AADI ServicesAADI Services
AADI Services
 
Cross-platform mobile that Works - Coobers
Cross-platform mobile that Works - CoobersCross-platform mobile that Works - Coobers
Cross-platform mobile that Works - Coobers
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
 

More from Dmitry Vinnik

Leadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies CareLeadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies Care
Dmitry Vinnik
 
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Dmitry Vinnik
 
Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!
Dmitry Vinnik
 
Cross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with YogaCross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with Yoga
Dmitry Vinnik
 
Documentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDocumentation Made Easy with Docusaurus
Documentation Made Easy with Docusaurus
Dmitry Vinnik
 
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and GapsFixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Dmitry Vinnik
 
Ent: Making Data Easy in Go
Ent: Making Data Easy in GoEnt: Making Data Easy in Go
Ent: Making Data Easy in Go
Dmitry Vinnik
 
The 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project HealthThe 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project Health
Dmitry Vinnik
 
Better Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with KotlinBetter Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with Kotlin
Dmitry Vinnik
 
Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!
Dmitry Vinnik
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
Dmitry Vinnik
 
Remote Work: Gateway to Freedom
Remote Work: Gateway to FreedomRemote Work: Gateway to Freedom
Remote Work: Gateway to Freedom
Dmitry Vinnik
 
Kindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersKindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What Matters
Dmitry Vinnik
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
Dmitry Vinnik
 
Stress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid ItStress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid It
Dmitry Vinnik
 
Engineer in Test: Bridging the Gap
Engineer in Test: Bridging the GapEngineer in Test: Bridging the Gap
Engineer in Test: Bridging the Gap
Dmitry Vinnik
 
Domain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re DoingDomain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re Doing
Dmitry Vinnik
 
Back to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in ActionBack to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in Action
Dmitry Vinnik
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
Dmitry Vinnik
 

More from Dmitry Vinnik (19)

Leadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies CareLeadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies Care
 
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
 
Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!
 
Cross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with YogaCross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with Yoga
 
Documentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDocumentation Made Easy with Docusaurus
Documentation Made Easy with Docusaurus
 
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and GapsFixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
 
Ent: Making Data Easy in Go
Ent: Making Data Easy in GoEnt: Making Data Easy in Go
Ent: Making Data Easy in Go
 
The 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project HealthThe 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project Health
 
Better Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with KotlinBetter Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with Kotlin
 
Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Remote Work: Gateway to Freedom
Remote Work: Gateway to FreedomRemote Work: Gateway to Freedom
Remote Work: Gateway to Freedom
 
Kindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersKindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What Matters
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
 
Stress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid ItStress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid It
 
Engineer in Test: Bridging the Gap
Engineer in Test: Bridging the GapEngineer in Test: Bridging the Gap
Engineer in Test: Bridging the Gap
 
Domain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re DoingDomain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re Doing
 
Back to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in ActionBack to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in Action
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
 

Recently uploaded

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 

Recently uploaded (20)

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 

From Robotium to Appium: Choose your Journey

Editor's Notes

  1. Not how to, but why (not step-by-step instructions, there are 100s of those)
  2. Not how to, but why (not step-by-step instructions, there are 100s of those)
  3. Would like to start with the audience
  4. Would like to start with the audience
  5. Start with something we already know *Focus on Left Side
  6. Start with something we already know *Focus on Left Side Reference: From “Agile Testing: A Practical Guide for Testers and Agile Teams” by Lisa Crispin and Janet Gregory
  7. Explain width is #tests
  8. Few words about responsive apps (react) and hybrid apps (react native) Credit: Designed by Freepik, https://www.freepik.com/free-vector/technological-devices-design_953322.htm
  9. Few words about responsive apps (react) and hybrid apps (react native) Credit: Designed by Freepik, https://www.freepik.com/free-vector/technological-devices-design_953322.htm
  10. Summary: Mobile: 54.11% Desktop: 45.89% References: http://gs.statcounter.com/platform-market-share/desktop-mobile/worldwide/#monthly-201305-201805 “Global market share is the measure by which one can assess the presence of a firm in a worldwide industry. Market share is defined as "the percentage of a market (in terms of either units or revenue) accounted for by a specific entity". Global market share is a key indicator for a company’s competitiveness as it is largely independent of macroeconomic fluctuations and directly comparable across companies. ”
  11. Summary: Mobile: 54.11% Desktop: 45.89% References: http://gs.statcounter.com/platform-market-share/desktop-mobile/worldwide/#monthly-201305-201805 “Global market share is the measure by which one can assess the presence of a firm in a worldwide industry. Market share is defined as "the percentage of a market (in terms of either units or revenue) accounted for by a specific entity". Global market share is a key indicator for a company’s competitiveness as it is largely independent of macroeconomic fluctuations and directly comparable across companies. ”
  12. Summary: Mobile: 54.11% Desktop: 45.89% References: http://gs.statcounter.com/platform-market-share/desktop-mobile/worldwide/#monthly-201305-201805 “Global market share is the measure by which one can assess the presence of a firm in a worldwide industry. Market share is defined as "the percentage of a market (in terms of either units or revenue) accounted for by a specific entity". Global market share is a key indicator for a company’s competitiveness as it is largely independent of macroeconomic fluctuations and directly comparable across companies. ”
  13. Data: Android: 76.53% iOS: 18.97% Windows: 0.49% Reference: http://gs.statcounter.com/os-market-share/mobile/worldwide/#monthly-201305-201805
  14. Data: Android: 76.53% iOS: 18.97% Windows: 0.49% Reference: http://gs.statcounter.com/os-market-share/mobile/worldwide/#monthly-201305-201805
  15. Data: Android: 76.53% iOS: 18.97% Windows: 0.49% Reference: http://gs.statcounter.com/os-market-share/mobile/worldwide/#monthly-201305-201805
  16. Explain width is #tests
  17. Explain width is #tests Talk about unit test - can run on local/desktop Integration tests - running phone/emulator
  18. Connect two directly
  19. Robotium provides the following benefits: Test Android apps, both native and hybrid. Requires minimal knowledge of the application under test. The framework handles multiple Android activities automatically. Minimal time needed to write solid test cases. Readability of test cases is greatly improved, compared to standard instrumentation tests. Test cases are more robust due to the run-time binding to UI components. Fast test case execution. Integrates smoothly with Maven, Gradle or Ant to run tests as part of continuous integration.
  20. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  21. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  22. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  23. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  24. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  25. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  26. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  27. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  28. https://github.com/RobotiumTech/robotium/wiki/Getting-Started
  29. Connect two directly
  30. https://www.guru99.com/introduction-to-selendroid.html
  31. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  32. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  33. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  34. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  35. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  36. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  37. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  38. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  39. https://github.com/selendroid/demoproject-selendroid/blob/master/src/main/java/io/selendroid/demo/SelendroidIntegrationTest.java#L45
  40. Connect two directly
  41. https://saucelabs.com/blog/things-robotium-can-do-that-selendroid-cant
  42. https://saucelabs.com/blog/things-robotium-can-do-that-selendroid-cant
  43. Connect two directly
  44. https://www.guru99.com/introduction-to-selendroid.html No need to recompile
  45. https://hackernoon.com/an-introduction-to-appium-the-best-open-source-mobile-app-automation-tool-940f5eaabae9
  46. Connect two directly
  47. https://saucelabs.com/blog/selendroid-vs-appium-which-to-choose-for-your-mobile-app-testing
  48. https://saucelabs.com/blog/selendroid-vs-appium-which-to-choose-for-your-mobile-app-testing
  49. Connect two directly
  50. https://saucelabs.com/resources/articles/open-source-tools-robotium-android-appium
  51. https://saucelabs.com/resources/articles/open-source-tools-robotium-android-appium
  52. Github Stats: Robotium: Stars - 2,399 Last Commit: September 2016 Appium: Stars - 7,290 Last Commit: May 2018 https://twitter.com/robotium?lang=en https://twitter.com/AppiumDevs
  53. Compare to Kotlin/Scala transition cost, ROI
  54. App Annie: http://bgr.com/2016/07/20/ios-vs-android-developers-profits-app-store-google-play/ “Apple’s App Store generates two times as much money as Google Play” Instagram
  55. App Annie: http://bgr.com/2016/07/20/ios-vs-android-developers-profits-app-store-google-play/ “Apple’s App Store generates two times as much money as Google Play” Instagram
  56. https://zach.codes/end-to-end-testing-with-react/
  57. https://zach.codes/end-to-end-testing-with-react/
  58. Will be sharing slides, github and useful links