SlideShare a Scribd company logo
Developing amazing #cross-platform #apps using the new #Cordova
tools available in #Visual-Studio-2015
VISUAL STUDIO TOOLS
FOR CORDOVA
Andrea Tino (Software Development Engineer)
Win output
myapp.appx
.NET
Android output
myapp.apk
iOS output
myapp.ipa
index.html
style.css
script.js
Source code
VISUAL
STUDIO 2015
CORDOVA
JAVA
objC
swift
Cordova and its history in a few lines
PhoneGap’s first
appearance during
iPhoneDevCamp in
San Francisco,
developed by Nitobi
20
09
PhoneGap gets acquired
by Adobe and code is
acquired also by the
Apache Foundation
20
11
Visual Studio releases
version 2015 with
tools embedding
Cordova
20
15
Why should you use it?
Cordova comes with its own toolset which one can
use. So Visual Studio is not really needed. What are the
benefits of using Visual Studio then?
UPGRADE
Change Cordova version
in project configuration.
PLUGIN MANAGEMENT
Via project configuration, easy
add/remove/upgrade plugins. In plain Cordova
the upgrade story is not 100% smooth.
CUSTOM FIXES
Need to change plugins or other Cordova
classes? No duplication in platforms folder,
platforms are generated upon cleanup.
MSBUILD
Building process fully
driven by Msbuild
STORE
STORE
STORE
The big picture
Building and debugging is easier, without using platform
specific environments and tools, thus more “central”
development experience
WINDOWS
sdk
ANDROID
sdk
IOS
sdk
WINDOWS
os
MAC OS
os
The build
architecture
Android is the only SDK available for
both Mac and Windows.
Visual Studio builds Windows and
Android on the Windows machine
where it is running, but needs a remote
Mac machine for building iOS!
Prepare
Running before
and after prepare
hooks
Configuration
The configuration
file config.xml is
processed
Platforms
Adding each
supported platform
in the project
Plugins
Adding plugins to all
platforms in the
project
Add platform
Hooks before and
after adding
platforms
Add plugins
Hooks before and
after adding
plugins
Build
Each platform, via
its SDK, is built to
generate the appfile
The build process
Visual Studio will generate platforms and plugins everytime a build is issued. Appfiles are then
generated and moved into the bin folder.
Config file
Enclose plat-
form-specific set-
tings in platform tag
Might need
to replace
values, can’t
do in config
file
<platform
name="android">
<preference
name="Fullscreen"
value="true" />
</platform>
Config plugin
Use a special custom plugin
to manipulate manifest’s
XML in plugin.xml file
Cannot change single
attribute’s value in
manifest file. Can only
replace nodes and all
descendants
<platform name="ios">
<config-file
target="app.plist" parent="/">
...
</config-file>
</platform>
Hook
Crete a hook to
change the manifest
file at proper time
Must write
actual Javas-
cript code
part of the
build process
module.exports =
function(context)
{
// context: env vars
...
};
Platform specific settings
In order to have a platform specific setting land in the proper manifest file, it is
possible to use a few approaches.
The End
THANK YOU
Twitter: @_atino
E-Mail: andrea.tino@microsoft.com
This work is distributed under the Creative
Commons
Attribution-NonCommercial-ShareAlike 4.0
International license.
Cover: Space mess This work includes artworks
designed by Graphic River.
This work includes artworks
designed by Freepik.com.
May 2016
v1.0
Keywords
#visual-studio #cordova
#microsoft #cross-platform
#app #android #ios
#windows-10
#windows-phone #tools
Presentation info
Duration: 30 mins.
Background: Technical
Audience: Developers
This work includes artworks
designed by Freestock.com.
Andrea Tino
Software Development Engineer

More Related Content

What's hot

Testing apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation ServiceTesting apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation ServiceKevin DeRudder
 
Build 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual StudioBuild 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual Studio
Windows Developer
 
Visual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & TricksVisual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & Tricks
Amal Dev
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
dvcrn
 
Use html5 to build what you want, where you want it
Use html5 to build what you want, where you want itUse html5 to build what you want, where you want it
Use html5 to build what you want, where you want itKevin DeRudder
 
JavaScript Toolkit
JavaScript ToolkitJavaScript Toolkit
JavaScript Toolkit
Robert MacLean
 
Windows 8
Windows 8Windows 8
Windows 8
Robert MacLean
 
VISUG: Visual studio for web developers
VISUG: Visual studio for web developersVISUG: Visual studio for web developers
VISUG: Visual studio for web developers
Kevin DeRudder
 
Building cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesBuilding cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesKevin DeRudder
 
I didnt know Flex could do this
I didnt know Flex could do thisI didnt know Flex could do this
I didnt know Flex could do thise27
 
Top 10 open source technologies for enterprise/Business web application devel...
Top 10 open source technologies for enterprise/Business web application devel...Top 10 open source technologies for enterprise/Business web application devel...
Top 10 open source technologies for enterprise/Business web application devel...
Techcronus Business Solutions Pvt. Ltd.
 
Everything you need to know about mern stack programming
Everything you need to know about mern stack programmingEverything you need to know about mern stack programming
Everything you need to know about mern stack programming
JAMESJOHN130
 
React Native
React NativeReact Native
Complete Solution for JavaFX Development - NexSoftSys
Complete Solution for JavaFX Development - NexSoftSysComplete Solution for JavaFX Development - NexSoftSys
Complete Solution for JavaFX Development - NexSoftSys
NexSoftsys
 
7 Features Of React Native
7 Features Of React Native7 Features Of React Native
7 Features Of React Native
IndumathySK
 
Full stack web development
Full stack web developmentFull stack web development
Full stack web development
Crampete
 
.Net framework vs .net core a complete comparison
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparison
Katy Slemon
 
Nodejsvs
NodejsvsNodejsvs
Nodejsvs
Dhananjay Kumar
 

What's hot (20)

Testing apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation ServiceTesting apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation Service
 
Build 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual StudioBuild 2017 - B8083 - The future of Visual Studio
Build 2017 - B8083 - The future of Visual Studio
 
Visual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & TricksVisual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & Tricks
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Use html5 to build what you want, where you want it
Use html5 to build what you want, where you want itUse html5 to build what you want, where you want it
Use html5 to build what you want, where you want it
 
JavaScript Toolkit
JavaScript ToolkitJavaScript Toolkit
JavaScript Toolkit
 
Windows 8
Windows 8Windows 8
Windows 8
 
VISUG: Visual studio for web developers
VISUG: Visual studio for web developersVISUG: Visual studio for web developers
VISUG: Visual studio for web developers
 
Building cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesBuilding cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile Services
 
I didnt know Flex could do this
I didnt know Flex could do thisI didnt know Flex could do this
I didnt know Flex could do this
 
Top 10 open source technologies for enterprise/Business web application devel...
Top 10 open source technologies for enterprise/Business web application devel...Top 10 open source technologies for enterprise/Business web application devel...
Top 10 open source technologies for enterprise/Business web application devel...
 
Everything you need to know about mern stack programming
Everything you need to know about mern stack programmingEverything you need to know about mern stack programming
Everything you need to know about mern stack programming
 
Portfolio
PortfolioPortfolio
Portfolio
 
React Native
React NativeReact Native
React Native
 
Complete Solution for JavaFX Development - NexSoftSys
Complete Solution for JavaFX Development - NexSoftSysComplete Solution for JavaFX Development - NexSoftSys
Complete Solution for JavaFX Development - NexSoftSys
 
Php development
Php developmentPhp development
Php development
 
7 Features Of React Native
7 Features Of React Native7 Features Of React Native
7 Features Of React Native
 
Full stack web development
Full stack web developmentFull stack web development
Full stack web development
 
.Net framework vs .net core a complete comparison
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparison
 
Nodejsvs
NodejsvsNodejsvs
Nodejsvs
 

Viewers also liked

Formato para hoja de vida alumnos (buena)
Formato para hoja de vida alumnos (buena)Formato para hoja de vida alumnos (buena)
Formato para hoja de vida alumnos (buena)
Mateo Montoya
 
Aurel Popescu Balcesti Spirit-si-suflet-reincarnarea
Aurel Popescu Balcesti   Spirit-si-suflet-reincarnareaAurel Popescu Balcesti   Spirit-si-suflet-reincarnarea
Aurel Popescu Balcesti Spirit-si-suflet-reincarnarea
Valentina Stefan
 
Aurel Popescu Balcesti Sufletul-in-timpul-vietii-si-dupa-moarte
Aurel Popescu Balcesti   Sufletul-in-timpul-vietii-si-dupa-moarteAurel Popescu Balcesti   Sufletul-in-timpul-vietii-si-dupa-moarte
Aurel Popescu Balcesti Sufletul-in-timpul-vietii-si-dupa-moarte
Valentina Stefan
 
Juegos paralímpicos
Juegos paralímpicosJuegos paralímpicos
Juegos paralímpicos
María Manzano López
 
2 1 중동에서 불어오는 위기의 모래바람
2 1 중동에서 불어오는 위기의 모래바람2 1 중동에서 불어오는 위기의 모래바람
2 1 중동에서 불어오는 위기의 모래바람Contents Bio Culture
 
Cover lettters
Cover letttersCover lettters
Cover lettters
truelyme
 
#1 MAG_March 2015_Benoit Letellier
#1 MAG_March 2015_Benoit Letellier#1 MAG_March 2015_Benoit Letellier
#1 MAG_March 2015_Benoit LetellierBenoit LETELLIER
 
SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...
SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...
SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...
Distilled
 
How To Find Clients
How To Find ClientsHow To Find Clients
How To Find Clients
Chris Do
 
МЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИ
МЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИМЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИ
МЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИTsvetan Stoqnov
 
Job Searching 101 Resume And Cover Letter
Job Searching 101 Resume And Cover LetterJob Searching 101 Resume And Cover Letter
Job Searching 101 Resume And Cover Letter
Eastern Lancaster County Library
 

Viewers also liked (12)

Formato para hoja de vida alumnos (buena)
Formato para hoja de vida alumnos (buena)Formato para hoja de vida alumnos (buena)
Formato para hoja de vida alumnos (buena)
 
Aurel Popescu Balcesti Spirit-si-suflet-reincarnarea
Aurel Popescu Balcesti   Spirit-si-suflet-reincarnareaAurel Popescu Balcesti   Spirit-si-suflet-reincarnarea
Aurel Popescu Balcesti Spirit-si-suflet-reincarnarea
 
Aurel Popescu Balcesti Sufletul-in-timpul-vietii-si-dupa-moarte
Aurel Popescu Balcesti   Sufletul-in-timpul-vietii-si-dupa-moarteAurel Popescu Balcesti   Sufletul-in-timpul-vietii-si-dupa-moarte
Aurel Popescu Balcesti Sufletul-in-timpul-vietii-si-dupa-moarte
 
Juegos paralímpicos
Juegos paralímpicosJuegos paralímpicos
Juegos paralímpicos
 
San Prints Pvt Ltd
San Prints Pvt LtdSan Prints Pvt Ltd
San Prints Pvt Ltd
 
2 1 중동에서 불어오는 위기의 모래바람
2 1 중동에서 불어오는 위기의 모래바람2 1 중동에서 불어오는 위기의 모래바람
2 1 중동에서 불어오는 위기의 모래바람
 
Cover lettters
Cover letttersCover lettters
Cover lettters
 
#1 MAG_March 2015_Benoit Letellier
#1 MAG_March 2015_Benoit Letellier#1 MAG_March 2015_Benoit Letellier
#1 MAG_March 2015_Benoit Letellier
 
SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...
SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...
SearchLove San Diego 2015 | Jose Caballer & Chris Do, 'Continuous Alignment o...
 
How To Find Clients
How To Find ClientsHow To Find Clients
How To Find Clients
 
МЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИ
МЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИМЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИ
МЕЖДУНАРОДЕН ФЕСТИВАЛ НА МАСКАРАДНИТЕ ИГРИ
 
Job Searching 101 Resume And Cover Letter
Job Searching 101 Resume And Cover LetterJob Searching 101 Resume And Cover Letter
Job Searching 101 Resume And Cover Letter
 

Similar to Visual Studio Tools for Cordova

Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
Sentinel Solutions Ltd
 
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
 
Cordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to CordovaCordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to Cordova
Binu Paul
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
Toma Velev
 
Codename one
Codename oneCodename one
Android installation guide
Android installation guideAndroid installation guide
Android installation guidemagicshui
 
CI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift DeploymentCI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift Deployment
Bintang Thunder
 
flutterbootcamp
flutterbootcampflutterbootcamp
flutterbootcamp
RakshaAgrawal21
 
flutter_bootcamp_MUGDSC_Presentation.pptx
flutter_bootcamp_MUGDSC_Presentation.pptxflutter_bootcamp_MUGDSC_Presentation.pptx
flutter_bootcamp_MUGDSC_Presentation.pptx
RakshaAgrawal21
 
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
DevClub_lv
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
Nicholas Jansma
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 
TechnoGeek training report
TechnoGeek training reportTechnoGeek training report
TechnoGeek training report
Anup Singh
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
Jeffrey T. Fritz
 
Tutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJSTutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJS
Philipp Burgmer
 
Cordova Tutorial
Cordova TutorialCordova Tutorial
Cordova Tutorial
Jacky Chen
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
Joseph Labrecque
 
Ignite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseIgnite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and Firebase
Jen Looper
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development
divyawani2
 

Similar to Visual Studio Tools for Cordova (20)

Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
 
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
 
Cordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to CordovaCordova training : Day 1 : Introduction to Cordova
Cordova training : Day 1 : Introduction to Cordova
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 
Codename one
Codename oneCodename one
Codename one
 
Homestead demo
Homestead demoHomestead demo
Homestead demo
 
Android installation guide
Android installation guideAndroid installation guide
Android installation guide
 
CI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift DeploymentCI CD Jenkins for Swift Deployment
CI CD Jenkins for Swift Deployment
 
flutterbootcamp
flutterbootcampflutterbootcamp
flutterbootcamp
 
flutter_bootcamp_MUGDSC_Presentation.pptx
flutter_bootcamp_MUGDSC_Presentation.pptxflutter_bootcamp_MUGDSC_Presentation.pptx
flutter_bootcamp_MUGDSC_Presentation.pptx
 
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
TechnoGeek training report
TechnoGeek training reportTechnoGeek training report
TechnoGeek training report
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
 
Tutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJSTutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJS
 
Cordova Tutorial
Cordova TutorialCordova Tutorial
Cordova Tutorial
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Ignite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseIgnite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and Firebase
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development
 

More from Andrea Tino

Our Journey: from Waterfall to Agile to DevOps
Our Journey: from Waterfall to Agile to DevOpsOur Journey: from Waterfall to Agile to DevOps
Our Journey: from Waterfall to Agile to DevOps
Andrea Tino
 
Development & GDPR (v2)
Development & GDPR (v2)Development & GDPR (v2)
Development & GDPR (v2)
Andrea Tino
 
Development & GDPR
Development & GDPRDevelopment & GDPR
Development & GDPR
Andrea Tino
 
Cutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in ITCutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in IT
Andrea Tino
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
Andrea Tino
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
Andrea Tino
 
Modern Trends in UI Decoupling Design
Modern Trends in UI Decoupling DesignModern Trends in UI Decoupling Design
Modern Trends in UI Decoupling Design
Andrea Tino
 
Workshop on Cryptography - Frequency Analysis (basic)
Workshop on Cryptography - Frequency Analysis (basic)Workshop on Cryptography - Frequency Analysis (basic)
Workshop on Cryptography - Frequency Analysis (basic)
Andrea Tino
 
Master Thesis - A Distributed Algorithm for Stateless Load Balancing
Master Thesis - A Distributed Algorithm for Stateless Load BalancingMaster Thesis - A Distributed Algorithm for Stateless Load Balancing
Master Thesis - A Distributed Algorithm for Stateless Load Balancing
Andrea Tino
 
Microsoft + Agile (light)
Microsoft + Agile (light)Microsoft + Agile (light)
Microsoft + Agile (light)
Andrea Tino
 
Microsoft + Agile
Microsoft + AgileMicrosoft + Agile
Microsoft + Agile
Andrea Tino
 
The World of Stylesheet Languages
The World of Stylesheet LanguagesThe World of Stylesheet Languages
The World of Stylesheet Languages
Andrea Tino
 
How to Develop Cross-Platform Apps
How to Develop Cross-Platform AppsHow to Develop Cross-Platform Apps
How to Develop Cross-Platform Apps
Andrea Tino
 
The Asynchronous Pattern (for beginners)
The Asynchronous Pattern (for beginners)The Asynchronous Pattern (for beginners)
The Asynchronous Pattern (for beginners)
Andrea Tino
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation framework
Andrea Tino
 
7 tips for more effective morning SCRUM
7 tips for more effective morning SCRUM7 tips for more effective morning SCRUM
7 tips for more effective morning SCRUM
Andrea Tino
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutions
Andrea Tino
 
Working with Agile technologies and SCRUM
Working with Agile technologies and SCRUMWorking with Agile technologies and SCRUM
Working with Agile technologies and SCRUM
Andrea Tino
 
Creating a compiler for your own language
Creating a compiler for your own languageCreating a compiler for your own language
Creating a compiler for your own language
Andrea Tino
 
Stateless load balancing - Early results
Stateless load balancing - Early resultsStateless load balancing - Early results
Stateless load balancing - Early results
Andrea Tino
 

More from Andrea Tino (20)

Our Journey: from Waterfall to Agile to DevOps
Our Journey: from Waterfall to Agile to DevOpsOur Journey: from Waterfall to Agile to DevOps
Our Journey: from Waterfall to Agile to DevOps
 
Development & GDPR (v2)
Development & GDPR (v2)Development & GDPR (v2)
Development & GDPR (v2)
 
Development & GDPR
Development & GDPRDevelopment & GDPR
Development & GDPR
 
Cutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in ITCutting Edge on Development Methodologies in IT
Cutting Edge on Development Methodologies in IT
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Modern Trends in UI Decoupling Design
Modern Trends in UI Decoupling DesignModern Trends in UI Decoupling Design
Modern Trends in UI Decoupling Design
 
Workshop on Cryptography - Frequency Analysis (basic)
Workshop on Cryptography - Frequency Analysis (basic)Workshop on Cryptography - Frequency Analysis (basic)
Workshop on Cryptography - Frequency Analysis (basic)
 
Master Thesis - A Distributed Algorithm for Stateless Load Balancing
Master Thesis - A Distributed Algorithm for Stateless Load BalancingMaster Thesis - A Distributed Algorithm for Stateless Load Balancing
Master Thesis - A Distributed Algorithm for Stateless Load Balancing
 
Microsoft + Agile (light)
Microsoft + Agile (light)Microsoft + Agile (light)
Microsoft + Agile (light)
 
Microsoft + Agile
Microsoft + AgileMicrosoft + Agile
Microsoft + Agile
 
The World of Stylesheet Languages
The World of Stylesheet LanguagesThe World of Stylesheet Languages
The World of Stylesheet Languages
 
How to Develop Cross-Platform Apps
How to Develop Cross-Platform AppsHow to Develop Cross-Platform Apps
How to Develop Cross-Platform Apps
 
The Asynchronous Pattern (for beginners)
The Asynchronous Pattern (for beginners)The Asynchronous Pattern (for beginners)
The Asynchronous Pattern (for beginners)
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation framework
 
7 tips for more effective morning SCRUM
7 tips for more effective morning SCRUM7 tips for more effective morning SCRUM
7 tips for more effective morning SCRUM
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutions
 
Working with Agile technologies and SCRUM
Working with Agile technologies and SCRUMWorking with Agile technologies and SCRUM
Working with Agile technologies and SCRUM
 
Creating a compiler for your own language
Creating a compiler for your own languageCreating a compiler for your own language
Creating a compiler for your own language
 
Stateless load balancing - Early results
Stateless load balancing - Early resultsStateless load balancing - Early results
Stateless load balancing - Early results
 

Recently uploaded

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 

Recently uploaded (20)

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 

Visual Studio Tools for Cordova

  • 1. Developing amazing #cross-platform #apps using the new #Cordova tools available in #Visual-Studio-2015 VISUAL STUDIO TOOLS FOR CORDOVA Andrea Tino (Software Development Engineer)
  • 2. Win output myapp.appx .NET Android output myapp.apk iOS output myapp.ipa index.html style.css script.js Source code VISUAL STUDIO 2015 CORDOVA JAVA objC swift Cordova and its history in a few lines PhoneGap’s first appearance during iPhoneDevCamp in San Francisco, developed by Nitobi 20 09 PhoneGap gets acquired by Adobe and code is acquired also by the Apache Foundation 20 11 Visual Studio releases version 2015 with tools embedding Cordova 20 15
  • 3. Why should you use it? Cordova comes with its own toolset which one can use. So Visual Studio is not really needed. What are the benefits of using Visual Studio then? UPGRADE Change Cordova version in project configuration. PLUGIN MANAGEMENT Via project configuration, easy add/remove/upgrade plugins. In plain Cordova the upgrade story is not 100% smooth. CUSTOM FIXES Need to change plugins or other Cordova classes? No duplication in platforms folder, platforms are generated upon cleanup. MSBUILD Building process fully driven by Msbuild
  • 4. STORE STORE STORE The big picture Building and debugging is easier, without using platform specific environments and tools, thus more “central” development experience
  • 5. WINDOWS sdk ANDROID sdk IOS sdk WINDOWS os MAC OS os The build architecture Android is the only SDK available for both Mac and Windows. Visual Studio builds Windows and Android on the Windows machine where it is running, but needs a remote Mac machine for building iOS!
  • 6. Prepare Running before and after prepare hooks Configuration The configuration file config.xml is processed Platforms Adding each supported platform in the project Plugins Adding plugins to all platforms in the project Add platform Hooks before and after adding platforms Add plugins Hooks before and after adding plugins Build Each platform, via its SDK, is built to generate the appfile The build process Visual Studio will generate platforms and plugins everytime a build is issued. Appfiles are then generated and moved into the bin folder.
  • 7. Config file Enclose plat- form-specific set- tings in platform tag Might need to replace values, can’t do in config file <platform name="android"> <preference name="Fullscreen" value="true" /> </platform> Config plugin Use a special custom plugin to manipulate manifest’s XML in plugin.xml file Cannot change single attribute’s value in manifest file. Can only replace nodes and all descendants <platform name="ios"> <config-file target="app.plist" parent="/"> ... </config-file> </platform> Hook Crete a hook to change the manifest file at proper time Must write actual Javas- cript code part of the build process module.exports = function(context) { // context: env vars ... }; Platform specific settings In order to have a platform specific setting land in the proper manifest file, it is possible to use a few approaches.
  • 8. The End THANK YOU Twitter: @_atino E-Mail: andrea.tino@microsoft.com This work is distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. Cover: Space mess This work includes artworks designed by Graphic River. This work includes artworks designed by Freepik.com. May 2016 v1.0 Keywords #visual-studio #cordova #microsoft #cross-platform #app #android #ios #windows-10 #windows-phone #tools Presentation info Duration: 30 mins. Background: Technical Audience: Developers This work includes artworks designed by Freestock.com. Andrea Tino Software Development Engineer