Develop for Windows Android and iOS March 15 th 2016 Marc Grégoire marcgregoirenuonsoftcom More Platforms More Opportunities Mobile users want to use same application across devices ID: 489885
Download Presentation The PPT/PDF document "Cross-Platform Mobile App Development wi..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Cross-Platform Mobile App Development with Visual C++ 2015
Develop for Windows, Android, and iOS
March 15th 2016
Marc
Grégoiremarc.gregoire@nuonsoft.com Slide2
More Platforms = More Opportunities
Mobile users want to use same application
across devices
Developers want to target many platformsSlide3
More Platforms = More Opportunities
11%
26%
2%
8%
6%
12%
28%
55%
37%
1%
Primary platform for Android and iOS developers
46%
30%
10%
Primary platform for developers using all 3 platforms
Primary platform for iOS and WP developers
Primary platform for Android and WP developers
46%
36%
4%
50%
23%
6%
Currently 37% of all
mobile developers target
Both iOS and Android
Game developers on
Average build for 2.6
platforms
Non-Game developers
on average build for 2.2
platforms.
Survey source: Vision Mobile – “Cross-platform tools 2015”Slide4
Multi-Platform Approach?
Slide5
iOS
Android
Windows
The Silo Approach
C#, C++/CX
ObjC, Swift
Java
Benefits
Full native experience
Total access to the device as provided
by the SDK
New SDK features are immediately useable
Negatives
Minimal code reuse
Higher development cost
One platform becomes the dominant platformSlide6
Benefits
Support a wide range of platforms
Use existing development skills
NegativesNo fast iterationLack native look and feel
Run-time Performance
Survey source: Vision Mobile – “Cross-platform tools 2015”
The cross-platform approachSlide7
Common Denominator?
Slide8
Trivia!
Android
Java
How many of the
top 100
applications on the
Android U.S.
Playstore
leverage C++ code?
None
15%
40%
75%Slide9
Trivia!
Java
--------------
C++
How many of the
top 100
applications on the
Android U.S.
Playstore
leverage C++ code?
None
15%
40%
75%
AndroidSlide10
Top 100 Android U.S.
Playstore
applications
Java
--------------
C++
Messenger
Facebook
Pandora Radio
Instagram
Minecraft
Snapchat
Spotify Music
Du Speed Booster
Twitter
The Game of Life
Super Bright LED
FlashLight
Soda Saga
Skype – Free
Whatsapp
Messenger
Clean Master
Netflix
Kik
Crossy
Road
Clash of Clans
Amazon Shopping
Candy Crush e IM and Video Calls
8 Ball Pool
Glass Tower
Subway Surfers
Pinterest
Cooking Fever
Zedge
Ringtones and Wallpaper
Word Academy
Poshmark
- Buy and Sell
Candy Crush Saga
Dragon Blaze
Marvel Future Fight
Emoji Keyboard
DU Battery saver
SoundCloud
- Music and Radio
Monopoly
Twitter
CM Security Antivirus
Slots - Journey of Magic
Yahoo Mail - Free Email App
iHeart
Radio - Radio and Music
Temple Run 2
Boom Beach
Despicable me
ebay
Wish - shopping made fun
Trivia Check
Juice Jam
Game of War - Fire Age
TouchPal
Keyboard
Geometry Dash Lite
Flow Free
Bird Climb
Coin Dozer
Uber
Google Earth
Flow Free
Bird Climb
Coin Dozer
Uber
Google Earth
Archery Master 3d
Go Keyboard - Emoji
ooVoo
video call
Inbox by Gmail
Samsung Smart Switch Mobile
Tango - Free video call and chat
Earn to Die 2
Fruit Ninja Free
Farm Heroes Saga
Wallapop
Capital One Wallet
Truck Driver 3d:
offroad
Solitare
Plants vs Zombies
Hidden Object -
Marrinotes
Tinder
DropBox
Hulu
Extreme Car driving simulator
The Sims 3 Word Search Hidden Object - Marrinotes
TinderHuluExtreme Car driving simulatorNeed for Speed Most WantedAngry BirdsShazamMyRadar Weather RadarVineLine: Free calls and messagesWaze Social GPS MapsGoogle TranslateDon't tap the white tilePanda PopEA Sports UFCFlipagramHill Climb RacingTasty Tale - The Cooking GameYelpOffer Up - Buy, sellCM Launcher - Boost, SecureTemple RunEmpire and Allies Google DocsTetrisBattery DoctorBeats MusicWalmartSurgery DoctorEA FrostBite
AndroidSlide11
C++ the common denominator
C#, CX
ObjC, Swift
Java
----------
C++
----------
C++
----------
C++
Benefits
Full native experience
Total access to the device as provided
by the SDK
Code Reuse (own + 3
rd
party)
Performance
Battery life
Security
iOS
Android
WindowsSlide12
C++ the common denominator
.ipa
.apk
.appx
.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:
XAML
C++/
Cx
C#
Pinvoke
C++ Wrapper
Java/C++
JNI Wrappers
ObjC Wrapper
XML
Java
Cocoa Touch
Shared C++ Backend
DropBox
MomentsSlide13
Compilers
Visual C++ Compiler
GCC
Clang/LLVMClang/LLVMBuild EngineMSBuild, NmakeNDK Build, Make files, Gradle, AntXcode BuildIDE(s)Visual StudioEclipse CDTXcodeHost PlatformWindows 8/8.1/10MacOS X, Linux, WindowsMac OS X
Development tools for C++ cross-platform
Development tools for C++ cross-platformSlide14
Multiple installation experiences
Multiple C++ IDE(s)
Maintaining multiple build tools
and automated build systemsDebugging experience is not ideal
Challenges with C++ cross-platform mobileSlide15
Easy
to install
Single
installer
One
C++ IDE for your cross-platform needs
Share
and
reuse
cross-platform code
Emulation
support
Visual Studio 2015
Solution
Wish list for C++ cross-platform mobileSlide16
Visual C++
Slide17
Easy
installation
One
C++ IDE for your cross-platform needsShare and reuse cross-platform codeState of the Art code-editing features like IntelliSenserefactoring, static code analysis, …
Powerful
debugging experience
Fast emulation
Visual Studio 2015
Visual C++
Visual Studio 2015Slide18
Demo
Slide19
Visual Studio 2015 Update 1
Java Language Service for Android and Eclipse Android Project Import (
VSGallery
)
Java editing for all Java sources in Android projects
Syntax and semantic colorization
Semantic highlighting
Error and warning squiggles
Auto-complete, parameter help, quick info tooltips and support for Go-to-definition
Eclipse project importer
Java debugging support
arm64 / x64 targets (Android and iOS)
Parallel compilation for Android development
Visual C++Slide20
Visual Studio 2015 Update 2
Xcode
project importer
Visual C++Slide21
What
’
s coming!
Cmake
support (Project Generators)
New Android NDK, iOS SDK targeting
Visual C++Slide22
Resources
https://www.visualstudio.com/en-us/features/cplusplus-mdd-vs.aspx
blogs.msdn.com/b/
vcblog
/
Install and configure tools to build using iOS:
https://msdn.microsoft.com/en-us/library/mt147405.aspx
Ankit Asthana
(
aasthan@microsoft.com
)
Senior program manager in charge of the cross-platform mobile
C++ app development experience in Visual Studio
Marc Gregoire
(
marc.gregoire@nuonsoft.com
)Slide23
Q&A