
Cross-Platform Mobile App Development Insights
"Explore the world of cross-platform mobile app development with Visual C++ and learn about the benefits and challenges of using a silo approach versus a cross-platform approach. Discover the different platforms developers target, advantages of multi-platform strategies, and trivia on C++ usage in top Android apps."
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Cross Cross- -Platform Mobile App Platform Mobile App Development with Visual C++ Development with Visual C++ 2015 2015 Marc Gr goire marc.gregoire@nuonsoft.com marc.gregoire@nuonsoft.com March 15th2016 Develop for Windows, Android, and iOS
More Platforms = More Opportunities Mobile users want to use same application across devices Developers want to target many platforms
More Platforms = More Opportunities Currently 37% of all mobile developers target Both iOS and Android Windows 46% 36% 4% 50% 23% 6% 8% Primary platform for Android and WP developers Primary platform for iOS and WP developers 2% 6% 11% Game developers on Average build for 2.6 platforms iOS Android 26% 28% Non-Game developers on average build for 2.2 platforms. 12% 1% 37% 55% 46% 30% 10% Primary platform for Android and iOS developers Primary platform for developers using all 3 platforms Survey source: Vision Mobile Cross-platform tools 2015
Multi-Platform Approach?
The Silo Approach Benefits Full native experience Total access to the device as provided by the SDK New SDK features are immediately useable Windows Android iOS Negatives Minimal code reuse Higher development cost One platform becomes the dominant platform C#, C++/CX ObjC, Swift Java
The cross-platform approach Benefits Support a wide range of platforms Use existing development skills INCREASE IN CROSS-PLATFORM TOOLS PhoneGap / Cordova Xamarin Negatives No fast iteration Lack native look and feel Run-time Performance Unity Qt Adobe Air Appcelerator Marmalade 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% Survey source: Vision Mobile Cross-platform tools 2015
Common Denominator?
Trivia! How many of the top 100 applications on the Android U.S. Playstore leverage C++ code? None 15% 40% 75% Android Java
Trivia! How many of the top 100 applications on the Android U.S. Playstore leverage C++ code? None 15% 40% 75% Android Java -------------- C++
Top 100 Android U.S. Playstore applications Tinder Hulu Extreme Car driving simulator Need for Speed Most Wanted Angry Birds Shazam MyRadar Weather Radar Vine Line: Free calls and messages Waze Social GPS Maps Google Translate Don't tap the white tile Panda Pop EA Sports UFC Flipagram Hill Climb Racing Tasty Tale - The Cooking Game Yelp Offer Up - Buy, sell CM Launcher - Boost, Secure Temple Run Empire and Allies Google Docs Tetris Battery Doctor Beats Music Walmart Surgery Doctor EA FrostBite 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 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 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 Android Java -------------- C++
C++ the common denominator Benefits Full native experience Total access to the device as provided by the SDK Code Reuse (own + 3rd party) Performance Battery life Security Windows Android iOS C#, CX ---------- C++ Java ---------- C++ ObjC, Swift ---------- C++
C++ the common denominator .ipa Shared C++ backend is compiled as: .appx .apk .appx .apk .ipa XAML XML Java Cocoa Touch C#, C++/Cx Java Dex / ART ObjC Swift C# C++/Cx Dynamic Link Library (.dll) Static Library (.lib) Dynamic shared library (.so) Static library (.a) Static library (.a) Pinvoke C++ Wrapper Java/C++ JNI Wrappers ObjC Wrapper Shared C++ Backend DropBox Moments
Development tools for C++ cross-platform Development tools for C++ cross-platform GCC Compilers Visual C++ Compiler Clang/LLVM Clang/LLVM NDK Build, Make files, Gradle, Ant Build Engine MSBuild, Nmake Xcode Build IDE(s) Visual Studio Eclipse CDT Xcode MacOS X, Linux, Windows Host Platform Windows 8/8.1/10 Mac OS X
Challenges with C++ cross-platform mobile Multiple installation experiences Multiple C++ IDE(s) Maintaining multiple build tools and automated build systems Debugging experience is not ideal
Visual Studio 2015 Wish list for C++ cross-platform mobile Easy to install Single installer Solution One C++ IDE for your cross-platform needs Share and reuse cross-platform code Emulation support
Visual Studio 2015 Visual Studio 2015 Easy installation One C++ IDE for your cross-platform needs Share and reuse cross-platform code Visual C++ State of the Art code-editing features like IntelliSense refactoring, static code analysis, Powerful debugging experience Fast emulation
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++
Visual Studio 2015 Update 2 Xcode project importer Visual C++
Whats coming! Cmake support (Project Generators) New Android NDK, iOS SDK targeting Visual C++
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)