Disclaimer
More Platforms = More Opportunities
Growing Reach with Universal
Windows Apps
Windows Developer Platform
Improving User Engagement
Integrazione
Browser-based applications
Visual Studio tools for
Apache Cordova
Visual C++ for cross-platWin32
ObjC/Swift, Java, .NET/UWANative
Fast, x86 image built from AOSP
Runs on Hyper-V
Comes with Visual Studio
Speaks Android Debugging
Native capabilities and sensors
Zoom, Rotation, Network, Location, Accelerometer, Battery, OpenGL
SD Card, Camera, Audio playback, Keyboard Input, Screenshots,
Version and Screen Size Configurations, Drag&Drop APKs
Polita Paulus
Principal PM Manager
Getting Started with Cross-Platform Mobile Development with
Apache Cordova
2-706
Native Wrapper
<webview>
Your JavaScript App
Cordova Plugin JS API
• HTML, CSS, JS
• Assets
• HTML, CSS, JS, assets
• HTML, CSS, JS, assets
• HTML, CSS, JS, assets
:)
Black Box
Microsoft OSS contributions to Cordova:
• Cordova Browser Platform + Browser Support
for Top 30 Plugins
• Ripple, v2
• Cordova Windows Platform
• Cordova Test Infrastructure (MEDIC)
• Cordova CLI (--list, --save, --restore, --arch)
• Filling out the Plugin support matrix
• Hosted app support for File, Media Capture,
and Camera plugins
Template per:
Demo: Visual Studio Tools for Apache Cordova™
Run on Android and iOS
DOM Explorer
There is a general perception that apps built using
HTML, CSS, and JavaScript are slow.
(Hint: We are going to change that in this session)
1. The Webview Tax
2. Document Object Model (DOM)
3. Images
4. Animation
5. Garbage Collection
6. UI Controls
#perfmatters
Methodology
Go Mobile with C#, Visual Studio and
Xamarin
Native compilation, native performance
Xamarin.iOS does full Ahead Of Time (AOT)
compilation to produce an ARM binary suitable
for Apple’s App Store
Xamarin.Android takes advantage of
Just In Time (JIT) compilation on the Android device
Shared C# codebase • 100% native API access • High performance
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Mobile C# Server
Linux/Mono
CoreCLRAzure
Shared C# Client/Server
Shared C# or F# codebase • 100% native API access • High performance
iOS F# UI Windows F# UIAndroid F# UI
Shared F# Mobile F# Server
Linux/Mono
CoreCLRAzure
Shared F# Client/Server
Traditional Xamarin
Approach
With Xamarin.Forms:
More code-sharing, all native
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Backend
Shared UI Code
Shared C# Backend
Xamarin.iOS e Xamarin.Android
vs
Xamarin Forms
Create UI with drag and drop simplicity
Target multiple screen sizes, resolutions,
and OS platform and versions
Layouts saved in native
resource formats
World’s best Android designer
available in Visual Studio
UI design iOS app designer in Visual Studio
Android app designer in Visual Studio
DESIGN – DEVELOP - INTEGRATE TEST MONITOR
LEARN
Xamarin Inspector
Salmaan Ahmed
- PM Windows
Jim Radigan
- Compiler Technologies
Compiling Objective-C
Using the Visual Studio 2015 C++ Code Generation that Builds
Windows, SQL, .Net, and Office
3-610
Growing Reach with Universal
Windows Apps
Windows Developer Platform
Improving User Engagement
Wherever your code was born, you can bring it to Windows
Middleware Platforms
Middleware Partners (e.g., Xamarin)
Game Engine Partners (e.g., Unity)
Other Mobile Platforms
‘Project A’ (Java/C++)
‘Project I’ (Objective C/C++)
Windows Platform
Universal Windows 8 Apps (C++/C#/JS)
Universal Windows 10 Apps (C++/C#/JS)
‘Project Centennial’ (Classic Apps)
Web Platform
‘Project Spartan’ Rendering Engine
Cordova Tooling (HTML/JS)
‘Project Westminster’ (Web Apps)
Universal Windows
Platform
XboxIoT
Universal
Windows Platform
Project Islandwood
Candy Crush Saga
Sviluppato originariamente per iOS, in
Objective-C
Write Universal Windows Apps in Objective-C
Objective-C language support
• Compiler and Runtime
Useful and usable APIs
• iOS API compat
Tools
• Editor / Workflow
• Project import
Xcode projects
imported to Visual
Studio
Shared project
settings, imported
from Xcode
Tooling
Integrated Visual Studio Development
Xcode projects
imported to
Visual Studio
Integrated
language
support:
syntax
highlighting,
autocomplete
Full
debugging:
breakpoints,
stack traces, …
Universal API
Interop
Project Islandwood
• You are writing a Windows App
• With ObjC as a supported lang
• Interop with Universal API surface
• And reuse code that uses some
iOS APIs
Quindi
Works across Win10 devices
Deploy to more devices
Across multiple form-factors
Running ARM and x86/64 CPUs
API Compatibility
Supports a subset of iOS
APIs
Does not track a
particular version of iOS
Most used APIs are
implemented first
• Games: OpenGL (ANGLE,
CAEAGLLayer, EAGLContext),
OpenAL, Sensors
• UI: UIKit, CoreAnimation,
CoreGraphics, CoreText, Touch
• Objective-C: ARC, blocks
• Foundation / CoreFoundation
• Services: StoreKit, Social,
Notifications, …
Windows does the heavy lifting for you
We translate and redirect iOS concepts to Windows concepts
User experience Monetization services Platform
Windows 10
Proven compatibility
Candy Crush Saga: Brought to Windows
Phone with very few code changes
Interop used for native integration
• In-App Purchase
• Local Notifications
Next Steps
Rolling out the SDK over the summer
http://aka.ms/islandwood
John Justice, Director of Program Management, OSG
Rajesh Sundaram, Director of Software Engineering, OSG
2-702
XboxIoT
Universal
Windows Platform
Middleware Platforms
Middleware Partners (e.g., Xamarin)
Game Engine Partners (e.g., Unity)
Windows Platform
Universal Windows 8 Apps (C++/C#/JS)
Universal Windows 10 Apps (C++/C#/JS)
Project Centennial (Classic Apps))
Web Platform
Microsoft Edge HTML Engine
Cordova Tooling (HTML/JS)
Hosted Web Apps (HTML/JS)
Other Mobile Platforms
Project Astoria (Java/C++)
Project Islandwood (Objective C/C++)
Other Mobile Platforms
Project Islandwood
Project Astoria
Use your Java / C++ code
Use Android IDE
High code reuse
Use your Objective C code
Use Visual Studio
Medium-high code reuse
Wherever your code was born, you can bring it to Windows
Windows app built from Android code
Apps built with Project Astoria are Windows apps
Users acquire apps built with Project
Astoria through the Windows Store
User experience
Cloud services
Platform
Apps built with Project Astoria are Windows apps
v/sv/sv/s
User experience
Cloud services
Platform
Building a Windows app with "Project Astoria”
We translate and redirect Android concepts to Windows concepts
User experience Cloud services Platform
• Acquisition
• Input and interaction
• App-to-app interactions
• Windowing & navigation
• Notifications and live tiles
• …
• In-App Purchases
• Ads
• Maps
• Game Services
• Analytics
• Notification service
• …
• File system
• Contacts, photos,…
• Sensors
• Camera
• Hardware accelerated
graphics & Direct X
• …
Microsoft Services
AppInsights
MS Ads
In-app Purchases
Windows Notification Service
Xbox Live Services
Bing Maps
Windows Location services
…
• Project Astoria SDK in Java
• Use Microsoft services with minimal
code change
• Get Started in Dev Center
Windows apps built with Project Astoria use Microsoft cloud services
User experience
Cloud services
Platform
Android platform capabilities are redirected to Windows
• File system
• Contacts, photos,…
• Sensors
• Camera
• Hardware accelerated graphics &
Direct X
• Networking/sockets
• Application lifecycle
• Resource management
• Background execution model
• Security model
User experience
Cloud services
Platform
Visual Studio 2015
 Windows 10 Mobile Only
+
Your Android Code
(Project Astoria SDK & App analysis)
+
Your app in the
Windows Store
Your IDE
(Project Astoria Plugins)
Your dev
machine
Build a Windows app with your Android code
+
Windows
Magic
Live tiles
…
IntelliJ
Android
Studio
Eclipse
Windows
Mac
Learn more about Project Astoria at
http://aka.ms/projectastoria
Building Cross-Platform Mobile Apps in
C++ with Visual Studio 2015
C++ C++C++
• Code Reuse
• Performance
• Security
.appx .apk .ipa
C#, C++/Cx Java
Dex / ART
ObjC
Swift
Dynamic Link
Library (.dll)
Static Library (.lib)
Dynamic shared
library (.so)
Static library (.a)
Static library (.a)
Shared C++ backend is compiled as:
DropBox
• 80%
C++
• Facebook Messenger
• Facebook
• Pandora
• Clean Master
• Go Keyboard
• Instagram
• SnapChat
• Super-Bright LED
• Candy Crush Soda
• Spotify
• CrossRoads
• Netflix
• Subway Surfers
• Kik
• WhatsApp Messenger
• Skype
• Clash of Clans
• Jelly Jump
• DubsMash
• Temple Run 2
• Surgery Simulator
• Pinterest
• Candy Crush Saga
• CM Security Antivirus
• Trivia Crack
• Zedge Ringtones
• Apus Launcher
• Bingo Crush
• Amazon Shipping
• Texas Holdem
• ZigZag
• 8 ball pool
• Yahoo Mail
• Game of War
• Despicable Me
• Fast and Furious Legacy
• Five Nights at Freddy’s
• Sound Cloud – Music and Audio
• iHeart Radio
• Twitter
• Fruit Ninja Free
• The Weather Channel
• Flow Free 2
• Minicraft
• Magic Piano
• ooVoo video call
• Solitare
• Wish Shopping Made Fun
• Google Earth
• Angry Birds
Compilers Visual C++ Compiler
GCC
Clang/LLVM
Clang/LLVM
Build Engine MSBuild, Nmake
NDK Build, Make files,
Gradle, Ant
Xcode Build
IDE(s) Visual Studio Eclipse CDT Xcode
Host Platform Windows 8/8.1/10
MacOS X, Linux,
Windows
Mac OS X
Development tools for C++ cross-platform
Office su mobile
Visual Studio 2015
Demo 1: Developing for the Android Platform
Demo 2: Building a C++ cross-platform mobile application
Demo 3: Debugging an existing Android Application
blog
Demo: Visual C++ for Cross Platform Mobile Development
• VS Tools for Apache Cordova
• Xamarin
• Project Islandwood:
• Objective-C => UWA
• Esempio: Candy Crush su WP
• Editor: Visual Studio
• Project Astoria:
• Java => UWA
• Editor: Eclipse, Android Studio, …
• C++ Crossplatform
• Esempio: Office su iOS e Android
• Editor: Visual Studio
Recap
Go Mobile!
Login, sync data, and connect to enterprise APIs with
Azure App Service
RESTAPI
Offline
sync
Facebook Twitter Microsoft Google Azure Active
Directory
Windows
iOS
Android
HTML 5/JS
Xamarin
PhoneGap
Sencha
WindowsAndroid
Chrome
iOS
OSX
In-AppKindle
Backend code
SQL MongoTables O365 API Apps
Offline Sync
Visual Studio 2015
Richard diZerega (@richdizz)
http://www.richdizz.com
Principal Software Engineer - Microsoft
Overview of Cross-Platform Mobile Development with
Office 365
2-655
Cross-platform localization with the
Multilingual App Toolkit
Visual Studio 2015
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform
Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform

Visual Studio 2015: novità per gli sviluppatori iOS, Android e Cross-Platform

  • 2.
  • 6.
    More Platforms =More Opportunities
  • 8.
    Growing Reach withUniversal Windows Apps Windows Developer Platform Improving User Engagement
  • 9.
  • 10.
    Browser-based applications Visual Studiotools for Apache Cordova Visual C++ for cross-platWin32 ObjC/Swift, Java, .NET/UWANative
  • 12.
    Fast, x86 imagebuilt from AOSP Runs on Hyper-V Comes with Visual Studio Speaks Android Debugging Native capabilities and sensors Zoom, Rotation, Network, Location, Accelerometer, Battery, OpenGL SD Card, Camera, Audio playback, Keyboard Input, Screenshots, Version and Screen Size Configurations, Drag&Drop APKs
  • 13.
    Polita Paulus Principal PMManager Getting Started with Cross-Platform Mobile Development with Apache Cordova 2-706
  • 14.
  • 15.
    • HTML, CSS,JS • Assets • HTML, CSS, JS, assets • HTML, CSS, JS, assets • HTML, CSS, JS, assets
  • 16.
  • 17.
    Black Box Microsoft OSScontributions to Cordova: • Cordova Browser Platform + Browser Support for Top 30 Plugins • Ripple, v2 • Cordova Windows Platform • Cordova Test Infrastructure (MEDIC) • Cordova CLI (--list, --save, --restore, --arch) • Filling out the Plugin support matrix • Hosted app support for File, Media Capture, and Camera plugins
  • 18.
  • 19.
    Demo: Visual StudioTools for Apache Cordova™
  • 20.
  • 21.
  • 23.
    There is ageneral perception that apps built using HTML, CSS, and JavaScript are slow. (Hint: We are going to change that in this session)
  • 24.
    1. The WebviewTax 2. Document Object Model (DOM) 3. Images 4. Animation 5. Garbage Collection 6. UI Controls
  • 25.
  • 27.
    Go Mobile withC#, Visual Studio and Xamarin
  • 29.
    Native compilation, nativeperformance Xamarin.iOS does full Ahead Of Time (AOT) compilation to produce an ARM binary suitable for Apple’s App Store Xamarin.Android takes advantage of Just In Time (JIT) compilation on the Android device
  • 30.
    Shared C# codebase• 100% native API access • High performance iOS C# UI Windows C# UIAndroid C# UI Shared C# Mobile C# Server Linux/Mono CoreCLRAzure Shared C# Client/Server
  • 31.
    Shared C# orF# codebase • 100% native API access • High performance iOS F# UI Windows F# UIAndroid F# UI Shared F# Mobile F# Server Linux/Mono CoreCLRAzure Shared F# Client/Server
  • 32.
    Traditional Xamarin Approach With Xamarin.Forms: Morecode-sharing, all native iOS C# UI Windows C# UIAndroid C# UI Shared C# Backend Shared UI Code Shared C# Backend
  • 33.
  • 34.
    Create UI withdrag and drop simplicity Target multiple screen sizes, resolutions, and OS platform and versions Layouts saved in native resource formats World’s best Android designer available in Visual Studio UI design iOS app designer in Visual Studio Android app designer in Visual Studio
  • 35.
    DESIGN – DEVELOP- INTEGRATE TEST MONITOR LEARN
  • 36.
  • 38.
    Salmaan Ahmed - PMWindows Jim Radigan - Compiler Technologies Compiling Objective-C Using the Visual Studio 2015 C++ Code Generation that Builds Windows, SQL, .Net, and Office 3-610
  • 40.
    Growing Reach withUniversal Windows Apps Windows Developer Platform Improving User Engagement
  • 41.
    Wherever your codewas born, you can bring it to Windows Middleware Platforms Middleware Partners (e.g., Xamarin) Game Engine Partners (e.g., Unity) Other Mobile Platforms ‘Project A’ (Java/C++) ‘Project I’ (Objective C/C++) Windows Platform Universal Windows 8 Apps (C++/C#/JS) Universal Windows 10 Apps (C++/C#/JS) ‘Project Centennial’ (Classic Apps) Web Platform ‘Project Spartan’ Rendering Engine Cordova Tooling (HTML/JS) ‘Project Westminster’ (Web Apps) Universal Windows Platform XboxIoT Universal Windows Platform
  • 42.
  • 43.
    Candy Crush Saga Sviluppatooriginariamente per iOS, in Objective-C
  • 44.
    Write Universal WindowsApps in Objective-C Objective-C language support • Compiler and Runtime Useful and usable APIs • iOS API compat Tools • Editor / Workflow • Project import
  • 45.
    Xcode projects imported toVisual Studio Shared project settings, imported from Xcode
  • 46.
    Tooling Integrated Visual StudioDevelopment Xcode projects imported to Visual Studio Integrated language support: syntax highlighting, autocomplete Full debugging: breakpoints, stack traces, … Universal API Interop
  • 47.
  • 48.
    • You arewriting a Windows App • With ObjC as a supported lang • Interop with Universal API surface • And reuse code that uses some iOS APIs Quindi
  • 49.
    Works across Win10devices Deploy to more devices Across multiple form-factors Running ARM and x86/64 CPUs
  • 50.
    API Compatibility Supports asubset of iOS APIs Does not track a particular version of iOS Most used APIs are implemented first • Games: OpenGL (ANGLE, CAEAGLLayer, EAGLContext), OpenAL, Sensors • UI: UIKit, CoreAnimation, CoreGraphics, CoreText, Touch • Objective-C: ARC, blocks • Foundation / CoreFoundation • Services: StoreKit, Social, Notifications, …
  • 51.
    Windows does theheavy lifting for you We translate and redirect iOS concepts to Windows concepts User experience Monetization services Platform Windows 10
  • 52.
    Proven compatibility Candy CrushSaga: Brought to Windows Phone with very few code changes Interop used for native integration • In-App Purchase • Local Notifications
  • 53.
    Next Steps Rolling outthe SDK over the summer http://aka.ms/islandwood
  • 54.
    John Justice, Directorof Program Management, OSG Rajesh Sundaram, Director of Software Engineering, OSG 2-702
  • 55.
    XboxIoT Universal Windows Platform Middleware Platforms MiddlewarePartners (e.g., Xamarin) Game Engine Partners (e.g., Unity) Windows Platform Universal Windows 8 Apps (C++/C#/JS) Universal Windows 10 Apps (C++/C#/JS) Project Centennial (Classic Apps)) Web Platform Microsoft Edge HTML Engine Cordova Tooling (HTML/JS) Hosted Web Apps (HTML/JS) Other Mobile Platforms Project Astoria (Java/C++) Project Islandwood (Objective C/C++) Other Mobile Platforms Project Islandwood Project Astoria Use your Java / C++ code Use Android IDE High code reuse Use your Objective C code Use Visual Studio Medium-high code reuse Wherever your code was born, you can bring it to Windows
  • 56.
    Windows app builtfrom Android code
  • 57.
    Apps built withProject Astoria are Windows apps Users acquire apps built with Project Astoria through the Windows Store User experience Cloud services Platform
  • 58.
    Apps built withProject Astoria are Windows apps v/sv/sv/s User experience Cloud services Platform
  • 59.
    Building a Windowsapp with "Project Astoria”
  • 60.
    We translate andredirect Android concepts to Windows concepts User experience Cloud services Platform • Acquisition • Input and interaction • App-to-app interactions • Windowing & navigation • Notifications and live tiles • … • In-App Purchases • Ads • Maps • Game Services • Analytics • Notification service • … • File system • Contacts, photos,… • Sensors • Camera • Hardware accelerated graphics & Direct X • …
  • 61.
    Microsoft Services AppInsights MS Ads In-appPurchases Windows Notification Service Xbox Live Services Bing Maps Windows Location services … • Project Astoria SDK in Java • Use Microsoft services with minimal code change • Get Started in Dev Center Windows apps built with Project Astoria use Microsoft cloud services User experience Cloud services Platform
  • 62.
    Android platform capabilitiesare redirected to Windows • File system • Contacts, photos,… • Sensors • Camera • Hardware accelerated graphics & Direct X • Networking/sockets • Application lifecycle • Resource management • Background execution model • Security model User experience Cloud services Platform
  • 63.
  • 64.
     Windows 10Mobile Only + Your Android Code (Project Astoria SDK & App analysis) + Your app in the Windows Store Your IDE (Project Astoria Plugins) Your dev machine Build a Windows app with your Android code + Windows Magic Live tiles … IntelliJ Android Studio Eclipse Windows Mac
  • 65.
    Learn more aboutProject Astoria at http://aka.ms/projectastoria
  • 66.
    Building Cross-Platform MobileApps in C++ with Visual Studio 2015
  • 68.
    C++ C++C++ • CodeReuse • Performance • Security
  • 69.
    .appx .apk .ipa C#,C++/Cx Java Dex / ART ObjC Swift Dynamic Link Library (.dll) Static Library (.lib) Dynamic shared library (.so) Static library (.a) Static library (.a) Shared C++ backend is compiled as: DropBox
  • 71.
  • 72.
    C++ • Facebook Messenger •Facebook • Pandora • Clean Master • Go Keyboard • Instagram • SnapChat • Super-Bright LED • Candy Crush Soda • Spotify • CrossRoads • Netflix • Subway Surfers • Kik • WhatsApp Messenger • Skype • Clash of Clans • Jelly Jump • DubsMash • Temple Run 2 • Surgery Simulator • Pinterest • Candy Crush Saga • CM Security Antivirus • Trivia Crack • Zedge Ringtones • Apus Launcher • Bingo Crush • Amazon Shipping • Texas Holdem • ZigZag • 8 ball pool • Yahoo Mail • Game of War • Despicable Me • Fast and Furious Legacy • Five Nights at Freddy’s • Sound Cloud – Music and Audio • iHeart Radio • Twitter • Fruit Ninja Free • The Weather Channel • Flow Free 2 • Minicraft • Magic Piano • ooVoo video call • Solitare • Wish Shopping Made Fun • Google Earth • Angry Birds
  • 74.
    Compilers Visual C++Compiler GCC Clang/LLVM Clang/LLVM Build Engine MSBuild, Nmake NDK Build, Make files, Gradle, Ant Xcode Build IDE(s) Visual Studio Eclipse CDT Xcode Host Platform Windows 8/8.1/10 MacOS X, Linux, Windows Mac OS X Development tools for C++ cross-platform
  • 75.
  • 76.
  • 77.
    Demo 1: Developingfor the Android Platform
  • 78.
    Demo 2: Buildinga C++ cross-platform mobile application
  • 79.
    Demo 3: Debuggingan existing Android Application blog
  • 80.
    Demo: Visual C++for Cross Platform Mobile Development
  • 81.
    • VS Toolsfor Apache Cordova • Xamarin • Project Islandwood: • Objective-C => UWA • Esempio: Candy Crush su WP • Editor: Visual Studio • Project Astoria: • Java => UWA • Editor: Eclipse, Android Studio, … • C++ Crossplatform • Esempio: Office su iOS e Android • Editor: Visual Studio Recap
  • 82.
    Go Mobile! Login, syncdata, and connect to enterprise APIs with Azure App Service
  • 83.
    RESTAPI Offline sync Facebook Twitter MicrosoftGoogle Azure Active Directory Windows iOS Android HTML 5/JS Xamarin PhoneGap Sencha WindowsAndroid Chrome iOS OSX In-AppKindle Backend code SQL MongoTables O365 API Apps Offline Sync
  • 85.
  • 87.
    Richard diZerega (@richdizz) http://www.richdizz.com PrincipalSoftware Engineer - Microsoft Overview of Cross-Platform Mobile Development with Office 365 2-655
  • 90.
    Cross-platform localization withthe Multilingual App Toolkit
  • 91.