Cross-platform mobile development with Visual C++ 2015



Similar documents
Best practices building multi-platform apps. John Hasthorpe & Josh Venman

ios Application Development &

Developing Applications for ios

Making Mobile a Reality

Lecture 4 Cross-Platform Development. <lecturer, date>

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Building cross-platform Modern Apps: the Design perspective. Amit Bahree, Senior Director,

The Anatomy of a Native App

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Mobile Phones Operating Systems

QML and JavaScript for Native App Development

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Enterprise Mobile Application Development: Native or Hybrid?

Retool your HTML/JavaScript to go Mobile

research: technical implemenation

Introduction to Android

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Making Sense of Mobile Development Options. Luis Sala Director, Technology

How to pick the right development model for your next mobile project

Mobile and Social Computing

Arduino Training - Basics of Micro-controllers Programming Basics

Introduction to Android Development. Ed Burnette

imaginea white paper

Introduction to cross-platform mobile development with Appcelerator Titanium

Following statistics will show you the importance of mobile applications in this smart era,

Programming Mobile Apps with Python

Android v ios Mobile Operating Systems

ITG Software Engineering

Android Development: Part One

Cross-Platform Mobile Apps Solution

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

Mobile App Design and Development

JC Now. Case Study in Building an App on the Cheap. Nick O Day GIS Manager. be the exception

The Decaffeinated Robot

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

Building native mobile apps for Digital Factory

Lecture 1 Introduction to Android

ipad, a revolutionary device - Apple

Xamarin a Cross Platform App Development Technology. A white paper on Fundamentals and Implementations of Xamarin Cross platform Mobile Technology

Continuous Integration with Xcode 6

Android Architecture. Alexandra Harrison & Jake Saxton

Mobile Engineers: BUY BUILD

Your guide to building great apps. Upgrade your skills and update your tools to create the next great app

Cross-Platform Phone Apps & Sites with jquery Mobile

Example of Standard API

Building cross-platform mobile apps with Xamarin

Choosing a Mobile Application Development Approach

Developing and deploying mobile apps

Praktikum Entwicklung von Mediensystemen mit

Mobile Enterprise Application Development - a Cross-Platform Framework

Executive Summary. Three Key Takeaways

Developing multi-platform mobile applications: doing it right. Mihail Ivanchev

The power of root on Android emulators

MOBILE APPLICATION DEVELOPMENT

Developing Cross-platform Mobile and Web Apps

How To Use Ios 5

Workshop on Android and Applications Development

Extending Tizen Native Framework with Node.js

Android (Basic + Advance) Application Development

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

ios Dev Fest Research Network Operations Center Thursday, February 7, 13

Quality assurance for mobile applications Case studies for GUI test automation. Alexandra Schladebeck

Development for Mobile Devices Tools from Intel, Platform of Your Choice!

Take full advantage of IBM s IDEs for end- to- end mobile development

/// CHOOSING THE BEST MOBILE TECHNOLOGY. Overview

An Introduction to Android. Huang Xuguang Database Lab. Inha University

This documentation is made available before final release and is subject to change without notice and comes with no warranty express or implied.

27th Embarcadero Developer Camp General Session

How Simple Is It To Develop a Mobile App? Uma Sudhan OpenEdge Developer 7 th Oct 2013

Microsoft Visual Studio: Developing Cross-Platform Apps With C# Using Xamarin

A Way Out of the Mobile App Development Conundrum

Develop a Native App (ios and Android) for a Drupal Website without Learning Objective-C or Java. Drupaldelphia 2014 By Joe Roberts

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Take Your Team Mobile with Xamarin

Bridging the Gap: from a Web App to a Mobile Device App

SYST35300 Hybrid Mobile Application Development

Introduce Configurable Mobile App Development. Moxie Zhang Esri R&D Center Beijing

ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011

Cross-Platform Game Development Best practices learned from Marmalade, Unreal, Unity, etc.

The story so far: Teaching Mobile App Development at PG level at Londonmet

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

Article. One for All Apps in HTML5

ICAPRG601A Develop advanced mobile multi-touch applications

To Study and Design a Cross-Platform Mobile Application for Student Information System using PhoneGap Framework

Android Programming and Security

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

Introducing. automated functional testing of mobile apps. Karl Krukow, CTO, LessPainful GotoAMS, May, 2012

HybriDroid: Analysis Framework for Android Hybrid Applications

Mobile Platform Architecture Review: Android, iphone, Qt

Cross-Compiling Android Applications to the iphone

Introduction to Android

Cross-Platform Development

Hello World! Some code

Cross Platform Applications with IBM Worklight

Jordan Jozwiak November 13, 2011

Debugging Mobile Apps

ios Development: Getting Started Min Tsai March 1, 2011 terntek.com v1.0

Develop Hybrid Mobile Applications with Apache Cordova & PhoneGap Enterprise

Transcription:

Cross-platform mobile development with Visual C++ 2015 Sasha Goldshtein @goldshtn CTO, Sela Group blog.sashag.net

App Targeting Spectrum Developer pain exponential jump in complexity, but not in user experience Hosted web app (Cordova et al.) App for each platform Shared native code (Xamarin/C++) Adaptive mobile website Redirect to m.example.com User experience

The JavaScript Struggle Second-class platform support (need plugins) Subpar performance Subpar development tools (debugging, profiling) Subpar 3 rd party library support (need plugins) Are we ready to sacrifice all of the above for code sharing? there must be a better way

The GC Effect, Part 1 We feel so strongly about ARC being the right approach to memory management that we have decided to deprecate Garbage Collection in OSX. Apple, WWDC, 2012 Hmm. Apple, what do they know about GC, right?

The GC Effect, Part 2 [ ] when garbage collection has five times as much memory as required, its runtime performance matches or slightly exceeds that of explicit memory management. However, [ ] performance degrades substantially when it must use smaller heaps. With three times as much memory, it runs 17% slower on average, and with twice as much memory, it runs 70% slower. Garbage collection also is more susceptible to paging when physical memory is scarce. Quantifying the performance of garbage collection vs. explicit memory management, Hertz & Berger

Trivia (/by Ankit Ashtana) Is the Android Facebook app using C++? How about Spotify? Twitter? Angry Birds? How many of the top 50 apps on Google Play (US) leverage C++ code?

Silos Swift/Objective-C Xcode Mac Cocoa Touch Objective-C runtime Darwin Java Android Studio Mac/Linux/Windows Android Framework Dalvik Linux kernel C#/C++/JavaScript Visual Studio Windows UWP Windows Runtime NT kernel

Shared C++ Core Swift/Objective-C Xcode Mac Java Android Studio Mac/Linux/Windows shared C++ core C#/C++/JavaScript Visual Studio Windows.a.a or.so.lib or.dll Cocoa Touch Objective-C runtime Darwin Android Framework Dalvik Linux kernel UWP Windows Runtime NT kernel

Not Your Father s C++ Modern C++ is safer, more productive, and more maintainable There s a library for everything, and many of them are cross-platform (std, boost, cpprest, soci, ) auto http = http_client{ "http://example.com" }; auto resp = await http.request(methods::get); auto body = await resp.extract_json(); auto name = body.at("name").as_string(); session db(sqlite3, "mydb.sqlite"); db << "insert into table ", use(name);

Visual C++ Support Obj-C and C++ VC++ Windows* clang ios Simulator Java and C++ VC++ Windows clang VS Android Emulator C# and C++ VC++ Windows C2 VS Emulator *Mac build agent required

App Architecture UIView UIViewController Swift > Obj-C bridge View Activity JNI bridge Control Page P/Invoke or C++/CX shared C++ core

App Structure in Visual Studio ios packaging project ios static library project Android app project Android library project shared project C++ core

Visual Studio Android Emulator Hyper-V based x86/x64 emulator with first-class performance, accelerometer support, multitouch emulation, and more

Demo Hello World apps for Android and ios in Visual Studio

Demo Shared C++ core

Demo OpenGL ES template

Limitations and Future Directions No code completion, IntelliSense, syntax highlighting for Java and Objective-C (yet) No Swift support for ios No built-in UI designer (Xamarin Business) Partial debugging and profiling support It s Beta-quality, really but a very promising start

Summary You don t have to compromise on performance, productivity, and code sharing, or sell your soul to a garbage collector Visual C++ brings together the worlds of ios, Android, and Windows app development Free with Visual Studio 2015 Community edition

Thank you! Sasha Goldshtein @goldshtn CTO, Sela Group blog.sashag.net