cross platform mobile development with visual studio 2015 and c++
TRANSCRIPT
![Page 1: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/1.jpg)
Richard Thomson
Principal Architect for Modeling, Daz 3D
@LegalizeAdulthd
LegalizeAdulthood.wordpress.com
![Page 2: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/2.jpg)
Thanks to our Sponsors!Community Sponsor
Yearly Sponsor
Marquee Sponsor
![Page 3: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/3.jpg)
About Me... Meetup organizer:
Utah C++ Programmers (2nd Wednesday)
Salt Lake City Software Craftsmanship (1st Thursday)
3D Modelers (3rd Tuesday)
C++ language track on exercism.io
Polyglot developer Currently: C++, JavaScript/NodeJS
Previously: C#, JavaScript/NodeJS, Python, Java
Distantly: C, Perl, FORTRAN, LISP, FORTH, Assembly, TECO
Different languages have their strengths
Leverage strengths where appropriate
![Page 4: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/4.jpg)
Why C++ for Mobile? Write once, run everywhere
Seriously!
Modern C++ is more familiar than you think
Come to "Modern C++", 3:40 pm, Room 5130 for more
![Page 5: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/5.jpg)
No, really. Why C++ for Mobile? Rich variety of abstraction mechanisms
Directly express concepts in code
Execution model maps directly to the machine
Wisely use precious battery life
Deterministic resource allocation
Hold onto resources only for as long as you need them and no longer
No garbage collection
Responsive UI, even when chewing on lots of data
![Page 6: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/6.jpg)
Case Study: DropBox Started with platform specific apps
Write everything twice!
Debug everything twice!
Ship everything twice! (and not at the same time)
Switched to MVVM architecture View: Thin platform-specific UI layer (Java/ObjC)
Thin platform-specific services layer (Java/ObjC)
Model, ViewModel: C++
Share business logic and UI logic between platforms
Write almost everything once
![Page 7: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/7.jpg)
DropBox Deep Dive on YouTube CppCon 2014: T. Grue & S. Kabbes "From the DropBox
Trenches: A Deep Dive into 2 Cross-Platform Mobile Apps Written in C++"
CppCon 2014: Alex Allain & Andrew Twyman"Practical Cross-Platform Mobile C++ Development"
CppCon 2015: Jacob Potter & Andrew Twyman“Bridging Languages Cross-Platform: DjinniImplementation Techniques"
![Page 8: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/8.jpg)
Why Visual Studio? Single IDE for all platforms
Platform-specific IntelliSense:
code completion
code navigation
Single debugger experience
Fast, full-featured Android emulator
Networked connection to Mac host for iOS debugging
![Page 9: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/9.jpg)
Android Development Features Supported Versions
4.4 "KitKat", API Level 19
5.0 "Lollipop", API Level 21
Emulator features include
OpenGL ES 2.0
Multi-touch gestures
Advanced camera simulation
WiFi network simulation
Debug directly from VS
Integrated LogCat viewer
Debugger visualizations
Externally built native activity apps
Can attach to running APKs
Stripped debugging to reduce deployment size
Deploy, Debug directly from VS to emulator or device
![Page 10: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/10.jpg)
iOS Development Features Supports versions 6, 7, and 8
Debug directly from Visual Studio
Need a connected Mac to deploy and debug on devices only (no emulator)
![Page 11: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/11.jpg)
Universal Windows Platform Can also do Universal Windows Platform applications
...but not the subject of this talk :)
![Page 12: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/12.jpg)
Installation
![Page 13: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/13.jpg)
Android Project Templates
![Page 14: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/14.jpg)
Android/iOSOpenGL ES App
![Page 15: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/15.jpg)
Android Emulator
![Page 16: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/16.jpg)
Launching the Emulator
![Page 17: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/17.jpg)
Selecting a Device
![Page 18: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/18.jpg)
![Page 19: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/19.jpg)
Android Debugger Demo
![Page 20: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/20.jpg)
iOS Project Templates
![Page 21: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/21.jpg)
iOS Import from XCode
![Page 22: Cross Platform Mobile Development with Visual Studio 2015 and C++](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ed3f8c1a28ab37058b45b5/html5/thumbnails/22.jpg)
iOS Building and Debugging Configure Mac pair machine in Tools / Options
Used for building iOS application
Xcode build output is shown in VS output pane
Debugging is done remotely via gdb
Displayed locally in VS as if you were debugging on Windows
Can issue commands directly to gdb if desired