SlideShare a Scribd company logo
1 of 21
Designing Mobile Applications
with Xamarin
A best practices guide for optimum mobile cross
platform development.
Who?
Jerel R Hass
@agies1
jhass@quicksolutions.com
Application Life Management
Application Life Cycle
Write
Build
Test
Analyze
Deploy
Release
What is Continuous Integration?
“Continuous Integration (CI) is a development practice that requires developers to
integrate code into a shared repository several times a day. Each check-in is then
verified by an automated build, allowing teams to detect problems early.
By integrating regularly, you can detect errors quickly, and locate them more easily.”
- Thought Works
What Makes Mobile More Challenging?
ASP.NET DEPLOYMENT SCENARIO MOBILE DEPLOYMENT SCENARIO
Developer
Build
Server
QA
Release
Store
Release
WP8 AndroidiOS
iOS AndroidWP8
Developer
Build Server
Development Server
Development Tester
QA Server
QA Testing
Pre-Production
Production
Provisioning
Profiles
Deployment
Package
Signing Cert
Applying CI To
Mobile
Development Stack
Telerik AppBuilder
Cordova with Cloud Build
Xamarin
Simplified code base across major phone platforms
Build Server
Jenkins
Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs
run by cron. Among those things, current Jenkins focuses on the following two jobs:
Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Jenkins provides an easy-
to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it
easier for users to obtain a fresh build. The automated, continuous build increases the productivity.
Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine.
For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently
and notice when it broke. Jenkins keeps those outputs and makes it easy for you to notice when something is wrong.
Jenkins Build Processes
Xamarin And Jenkins
http://developer.xamarin.com/guides/cross-platform/ci/jenkins_walkthrough/
Grab the Github Plugin
Grab the MSBuild Plugin
iOS Project
Android Project
Unit Testing
Xamarin
NUnit: NUnit is a unit-testing framework for all .Net languages.
PhoneGap
JS Testing With Jasmine: Does DOM less JS Testing
Unit Testing and Jenkins
http://www.codemag.com/Article/1006101
nunit :unit_tests do |nunit|
nunit.command = "Lib/NUnit 2.6/nunit-console.exe"
nunit.assemblies
“ProjectLog/ProjectLog.Unit/bin/Debug/ProjectLog.Unit.dll"
nunit.options '/xml=TestResults.xml /framework:net-4.5'
end
Unit Testing and Jenkins
https://github.com/larrymyers/jasmine-reporters
NUnitXmlReporter - Report test results to a file in NUnit XML Report format.
http://johnbintz.github.io/jasmine-headless-webkit/
require 'jasmine-headless-webkit‘
Jasmine::Headless::Task.new('jasmine:headless') do |t|
t.colors = true
t.keep_on_error = true
t.jasmine_config = 'this/is/the/path.yml'
End
Post Build Add the Result TestResult.xml as during the Xamarin Tests
Acceptance Testing
Xamarin
Xamarin Test Cloud
Telerik AppBuilder
Telerik Platform Testing
Xamarin Test Cloud and Jenkins
Install the necessary command line tool test-cloud.exe - This is for tests written using
Xamarin.UITest.
Add A Build Step to your iOS or Android Build
test-cloud.exe <path-to-apk-or-ipa-file> <test-cloud-api-key> --devices <device-
selection-id> --assembly-dir <path-to-tests-containing-test-assemblies>
QA Deployment
Telerik AppBuilder
AppBuilder CLI
AppBuilder Companion
AppManager
Analytics
appbuilder build ios --provision "My Provisioning Profile" --
certificate "My Certificate" --no-livesync
appbuilder build wp8 --no-livesync
appbuilder build android --no-livesync
QA Deployment
Xamarin
Componet
Hockey App
Production Deployment
Telerik AppBuilder
AppBuilder CLI
- Copy To
DropBox/Fileshare
*Windows and Android both Require a Manual Deploy
appbuilder appstore upload <Application Name> <Apple ID> <Password>
--certificate <Certificate ID> --provision <Provision ID>
appbuilder build android --no-livesync --download
appbuilder build wp8 --no-livesync --download
Production Deployment
Xamarin
Build in Deployment
- Copy To
DropBox/Fileshare
<ItemGroup>
<BuildArtifactsDir Include="BuildArtifacts" />
<SolutionFile Include=“ProjectLog.sln" />
</ItemGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">AppStore</Configuration>
<BuildPlatform Condition=" '$(BuildPlatform)' == '' ">Any CPU</BuildPlatform>
</PropertyGroup>
<Target Name="Compile" DependsOnTargets="Init">
<MSBuild Projects="@(SolutionFile)" Targets="Rebuild"
Properties="OutDir=%(BuildArtifactsDir.FullPath);Configuration=$(Configuration);Platfor
m=$(BuildPlatform)" />
</Target>
Mobile CI

More Related Content

What's hot

Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkinsvodQA
 
Simple Continous Integration
Simple Continous IntegrationSimple Continous Integration
Simple Continous IntegrationRicky Martaputra
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case StudyTalentica Software
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with RubyPierluigi Riti
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous IntegrationChristopher Read
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile TechnologiesTalentica Software
 
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenarioContinuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenarioDavide Benvegnù
 
LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev opsLINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev opsKenichiro Nakamura
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CDAdsmurai
 
Improving software quality using Continuous Integration
Improving software quality using Continuous IntegrationImproving software quality using Continuous Integration
Improving software quality using Continuous IntegrationWouter Konecny
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Poonam Panday
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)Mohamed TAIEB
 
Continuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobileContinuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobileAntonio Liccardi
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & DeploymentsShinu Suresh
 

What's hot (20)

Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkins
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 
Simple Continous Integration
Simple Continous IntegrationSimple Continous Integration
Simple Continous Integration
 
Devops | CICD Pipeline
Devops | CICD PipelineDevops | CICD Pipeline
Devops | CICD Pipeline
 
Selenium and Continuous Intergration
Selenium and Continuous IntergrationSelenium and Continuous Intergration
Selenium and Continuous Intergration
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with Ruby
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenarioContinuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenario
 
LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev opsLINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Improving software quality using Continuous Integration
Improving software quality using Continuous IntegrationImproving software quality using Continuous Integration
Improving software quality using Continuous Integration
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)
 
Continuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobileContinuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobile
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & Deployments
 

Viewers also liked

Configuring asa site to-site vp ns
Configuring asa site to-site vp nsConfiguring asa site to-site vp ns
Configuring asa site to-site vp nschiensy
 
Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)Nawsheen Hosenally
 
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico FagorFq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagorserviciotecnicofagor
 
Desafíos en la enseñanza del Markerting
Desafíos en la enseñanza del MarkertingDesafíos en la enseñanza del Markerting
Desafíos en la enseñanza del Markertingrperezllanes
 
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...Jakob Østergaard Nielsen
 
Hosting Personalizado SMweb
Hosting Personalizado SMwebHosting Personalizado SMweb
Hosting Personalizado SMwebSMweb.es
 
Water painting-techniques
Water painting-techniquesWater painting-techniques
Water painting-techniquesEmilia Lima
 
Salud 2.0 : Una oportunidad para la EPS en la escuela.
Salud 2.0 :  Una oportunidad para la EPS en la escuela.Salud 2.0 :  Una oportunidad para la EPS en la escuela.
Salud 2.0 : Una oportunidad para la EPS en la escuela.Ignacio Basagoiti
 
Actividades plan de septiembre 2012
Actividades plan de septiembre 2012Actividades plan de septiembre 2012
Actividades plan de septiembre 201230201259R
 
Knowledge Management: Introducción
Knowledge Management: IntroducciónKnowledge Management: Introducción
Knowledge Management: Introduccióndarthquasar
 
Powerpoint animales carnívoros, herbívoros y omnívoros
Powerpoint animales carnívoros, herbívoros y omnívoros Powerpoint animales carnívoros, herbívoros y omnívoros
Powerpoint animales carnívoros, herbívoros y omnívoros Jorge Cardiel
 
Fraude cibernético
Fraude cibernéticoFraude cibernético
Fraude cibernéticoPatty G.
 
Diapo sena
Diapo senaDiapo sena
Diapo senafeerika
 
Radiographic assessment in paediatric dentistry
Radiographic assessment in paediatric dentistryRadiographic assessment in paediatric dentistry
Radiographic assessment in paediatric dentistryS. K.
 
Tema 5. sinapsis
Tema 5. sinapsisTema 5. sinapsis
Tema 5. sinapsisSalvadorGH
 

Viewers also liked (20)

Verano deportivo 2016
Verano deportivo 2016Verano deportivo 2016
Verano deportivo 2016
 
Configuring asa site to-site vp ns
Configuring asa site to-site vp nsConfiguring asa site to-site vp ns
Configuring asa site to-site vp ns
 
Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)Workshop Proceedings (Full Document)
Workshop Proceedings (Full Document)
 
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico FagorFq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
Fq8 x000f0 astra led, dig y pantalla mini - Servicio Tecnico Fagor
 
Desafíos en la enseñanza del Markerting
Desafíos en la enseñanza del MarkertingDesafíos en la enseñanza del Markerting
Desafíos en la enseñanza del Markerting
 
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
Øget produktivitet med Skype for Business og Office 365, Jakob Østergaard Nie...
 
Hosting Personalizado SMweb
Hosting Personalizado SMwebHosting Personalizado SMweb
Hosting Personalizado SMweb
 
Water painting-techniques
Water painting-techniquesWater painting-techniques
Water painting-techniques
 
Seminario ISO 19600
Seminario ISO 19600Seminario ISO 19600
Seminario ISO 19600
 
Salud 2.0 : Una oportunidad para la EPS en la escuela.
Salud 2.0 :  Una oportunidad para la EPS en la escuela.Salud 2.0 :  Una oportunidad para la EPS en la escuela.
Salud 2.0 : Una oportunidad para la EPS en la escuela.
 
Being Pavan Kota
Being Pavan KotaBeing Pavan Kota
Being Pavan Kota
 
Actividades plan de septiembre 2012
Actividades plan de septiembre 2012Actividades plan de septiembre 2012
Actividades plan de septiembre 2012
 
Knowledge Management: Introducción
Knowledge Management: IntroducciónKnowledge Management: Introducción
Knowledge Management: Introducción
 
Powerpoint animales carnívoros, herbívoros y omnívoros
Powerpoint animales carnívoros, herbívoros y omnívoros Powerpoint animales carnívoros, herbívoros y omnívoros
Powerpoint animales carnívoros, herbívoros y omnívoros
 
Fraude cibernético
Fraude cibernéticoFraude cibernético
Fraude cibernético
 
Diapo sena
Diapo senaDiapo sena
Diapo sena
 
Currículum vitae raul
Currículum vitae raulCurrículum vitae raul
Currículum vitae raul
 
El poder de la Mancha. Quijote News
El poder de la Mancha. Quijote NewsEl poder de la Mancha. Quijote News
El poder de la Mancha. Quijote News
 
Radiographic assessment in paediatric dentistry
Radiographic assessment in paediatric dentistryRadiographic assessment in paediatric dentistry
Radiographic assessment in paediatric dentistry
 
Tema 5. sinapsis
Tema 5. sinapsisTema 5. sinapsis
Tema 5. sinapsis
 

Similar to Mobile CI

De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João JesusComunidade NetPonto
 
Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...
Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...
Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...pCloudy
 
Continuous Integration using Cruise Control
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Controlelliando dias
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch EventJames Montemagno
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptxVgPolampalli
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayLeonard Fingerman
 
Visual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximoVisual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximoDaniel Semedo
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaAmazon Web Services
 
Visual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewVisual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewHimanshu Desai
 
2.Android App Development_ Types of Automated Unit Tests.pdf
2.Android App Development_ Types of Automated Unit Tests.pdf2.Android App Development_ Types of Automated Unit Tests.pdf
2.Android App Development_ Types of Automated Unit Tests.pdfBelayet Hossain
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitTina Su
 
Speed to Market in Mobile Development
Speed to Market in Mobile DevelopmentSpeed to Market in Mobile Development
Speed to Market in Mobile DevelopmentTina Su
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitTina Su
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Skytap Cloud
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourDenis Santos
 

Similar to Mobile CI (20)

De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João Jesus
 
Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...
Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...
Best Unit Testing Frameworks to Automate your Desktop Web Testing using Selen...
 
Continuous Integration using Cruise Control
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Control
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch Event
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
 
Visual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximoVisual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximo
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Visual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewVisual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services Overview
 
2.Android App Development_ Types of Automated Unit Tests.pdf
2.Android App Development_ Types of Automated Unit Tests.pdf2.Android App Development_ Types of Automated Unit Tests.pdf
2.Android App Development_ Types of Automated Unit Tests.pdf
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
Speed to Market in Mobile Development
Speed to Market in Mobile DevelopmentSpeed to Market in Mobile Development
Speed to Market in Mobile Development
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on Carrefour
 
Kasi Viswanath
Kasi ViswanathKasi Viswanath
Kasi Viswanath
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 

Mobile CI

  • 1.
  • 2. Designing Mobile Applications with Xamarin A best practices guide for optimum mobile cross platform development.
  • 4. Application Life Management Application Life Cycle Write Build Test Analyze Deploy Release
  • 5. What is Continuous Integration? “Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. By integrating regularly, you can detect errors quickly, and locate them more easily.” - Thought Works
  • 6. What Makes Mobile More Challenging? ASP.NET DEPLOYMENT SCENARIO MOBILE DEPLOYMENT SCENARIO Developer Build Server QA Release Store Release WP8 AndroidiOS iOS AndroidWP8 Developer Build Server Development Server Development Tester QA Server QA Testing Pre-Production Production Provisioning Profiles Deployment Package Signing Cert
  • 8. Development Stack Telerik AppBuilder Cordova with Cloud Build Xamarin Simplified code base across major phone platforms
  • 9. Build Server Jenkins Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Jenkins focuses on the following two jobs: Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Jenkins provides an easy- to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity. Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Jenkins keeps those outputs and makes it easy for you to notice when something is wrong.
  • 11. Xamarin And Jenkins http://developer.xamarin.com/guides/cross-platform/ci/jenkins_walkthrough/ Grab the Github Plugin Grab the MSBuild Plugin iOS Project Android Project
  • 12. Unit Testing Xamarin NUnit: NUnit is a unit-testing framework for all .Net languages. PhoneGap JS Testing With Jasmine: Does DOM less JS Testing
  • 13. Unit Testing and Jenkins http://www.codemag.com/Article/1006101 nunit :unit_tests do |nunit| nunit.command = "Lib/NUnit 2.6/nunit-console.exe" nunit.assemblies “ProjectLog/ProjectLog.Unit/bin/Debug/ProjectLog.Unit.dll" nunit.options '/xml=TestResults.xml /framework:net-4.5' end
  • 14. Unit Testing and Jenkins https://github.com/larrymyers/jasmine-reporters NUnitXmlReporter - Report test results to a file in NUnit XML Report format. http://johnbintz.github.io/jasmine-headless-webkit/ require 'jasmine-headless-webkit‘ Jasmine::Headless::Task.new('jasmine:headless') do |t| t.colors = true t.keep_on_error = true t.jasmine_config = 'this/is/the/path.yml' End Post Build Add the Result TestResult.xml as during the Xamarin Tests
  • 15. Acceptance Testing Xamarin Xamarin Test Cloud Telerik AppBuilder Telerik Platform Testing
  • 16. Xamarin Test Cloud and Jenkins Install the necessary command line tool test-cloud.exe - This is for tests written using Xamarin.UITest. Add A Build Step to your iOS or Android Build test-cloud.exe <path-to-apk-or-ipa-file> <test-cloud-api-key> --devices <device- selection-id> --assembly-dir <path-to-tests-containing-test-assemblies>
  • 17. QA Deployment Telerik AppBuilder AppBuilder CLI AppBuilder Companion AppManager Analytics appbuilder build ios --provision "My Provisioning Profile" -- certificate "My Certificate" --no-livesync appbuilder build wp8 --no-livesync appbuilder build android --no-livesync
  • 19. Production Deployment Telerik AppBuilder AppBuilder CLI - Copy To DropBox/Fileshare *Windows and Android both Require a Manual Deploy appbuilder appstore upload <Application Name> <Apple ID> <Password> --certificate <Certificate ID> --provision <Provision ID> appbuilder build android --no-livesync --download appbuilder build wp8 --no-livesync --download
  • 20. Production Deployment Xamarin Build in Deployment - Copy To DropBox/Fileshare <ItemGroup> <BuildArtifactsDir Include="BuildArtifacts" /> <SolutionFile Include=“ProjectLog.sln" /> </ItemGroup> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">AppStore</Configuration> <BuildPlatform Condition=" '$(BuildPlatform)' == '' ">Any CPU</BuildPlatform> </PropertyGroup> <Target Name="Compile" DependsOnTargets="Init"> <MSBuild Projects="@(SolutionFile)" Targets="Rebuild" Properties="OutDir=%(BuildArtifactsDir.FullPath);Configuration=$(Configuration);Platfor m=$(BuildPlatform)" /> </Target>