Bringing Your C/C++ Game to the Web via Emscripten. Vladimir Vukićević
|
|
|
- Joleen Richard
- 9 years ago
- Views:
Transcription
1 Bringing Your C/C++ Game to the Web via Emscripten Vladimir Vukićević
2 Please Tweet This. And Facebook. And Tumblr. And Blog.
3 On Deck Brief Overview of Emscripten & asm.js Compiling to the Web: Getting Started is Easy! How Do I Deploy It?
4 Emscripten & asm.js A Brief Overview
5 Emscripten Emscripten is a tool for compiling C/C++ to JavaScript Built on top of LLVM/Clang All LLVM/Clang optimizations available Only the final link step generates JavaScript, from bitcode
6 Demo: Hello World #include <stdio.h> int main(int argc, char **argv) { printf( Hello World!\n ); } % emcc o hello.html hello.c
7 Emscripten Installation Installation instructions for all platforms: emscripten.org Windows installer coming very soon Will perform all prerequisite installation Python, LLVM/clang, node.js Git (for emscripten updates) Being developed with game developers in mind Entire versioned toolchain in a single zip file
8 asm.js JavaScript subset usable as a compilation target Formal syntax that can be specifically optimized Core asm.js: functions, numbers, a heap represented by an array
9 asm.js: Box2D Performance C (GCC 4.8) 1 ASM.JS (FIREFOX 22) 1.94 JAVA (1.8) 2.4 ASM.JS (CHROME 30) 2.86 ASM.JS (CHROME 27) 9.27 BOX2DWEB (CHROME) 10.9 BOX2DWEB (FIREFOX) 12 ASM.JS (IE10) (***) 13.6 BOX2DWEB (IE10) (***) Source:
10 asm.js: LuaVM Performance Firefox 100% STARTUP IE11 20% Chrome 87% Firefox 100% SCIMARK IE11 56% Chrome 19% Firefox 100% BINARYTREES IE11 31% Chrome 18%
11 Application or Library C++ App JavaScript App JavaScript Emscripten Core Emscripten Library
12 The Web as a Target Getting Started with Emscripten
13 The Web as a Target Compiler: LLVM/Clang Final Stage: Emscripten Libraries: SDL, GL ES 2.0, EGL, OpenAL
14 Target Libraries Emscripten provides emulation libraries SDL, GL ES 2.0, EGL, OpenAL (and others) Not a perfect implementation, but usually enough Easy to extend and add features Libraries are not magic: regular JavaScript var LibrarySDL = { SDL_Init: function(what) { document.addeventlistener( keydown, SDL.receiveEvent); return 0; } }
15 Development Cycle 1. Transition C++ code to use Emscriptensupported libraries (SDL, GLES, etc.) 2. Test and debug natively 3. Build with Emscripten target 4. Test and debug web port
16 Build Integration Built on clang & LLVM Compiler looks like and replaces gcc/clang: gcc emcc, g++ em++, etc. Compile output is LLVM bitcode Regular LLVM opt step runs Final step converts linked bitcode to JavaScript
17 Graphics OpenGL ES 2.0 is the preferred target WebGL provides (almost) full GLES 2.0 (no client-side arrays) Emscripten includes some GL emulation Working on supporting Regal project (more complete emulation support) OpenGL ES 3.0 support coming soon WebGL 2, work in Firefox in progress
18 Demo: Hello OpenGL #include <GL/glut.h> #include <stdio.h> int main(int argc, char **argv) { glutinit(&argc, argv); glutinitwindowsize(300, 300); glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH); glutcreatewindow("browser"); glclearcolor(0, 1, 0, 1); glclear(gl_color_buffer_bit); } glutswapbuffers();
19 The Main Loop int main() { while (true) { } } There is no magic to handle infinite loops. Typically one area that requires porting changes.
20 The Main Loop Solution: hand control back to Emscripten. void main_loop_iteration() { } int main() { emscripten_set_main_loop(main_loop_iteration, 0 /* use browser s framerate */, true /* simulate infinite loop */); } Loop will run once per frame.
21 Demo: Hello OpenGL, v2 #include <GL/glut.h> #include <stdio.h> #include <emscripten/emscripten.h> void draw_frame() { static float color = 0.0f; glclearcolor(0, color, 0, 1); glclear(gl_color_buffer_bit); color = color f; if (color > 1.0f) color = 0.0f; } glutswapbuffers(); int main(int argc, char **argv) { glutinit(&argc, argv); glutinitwindowsize(300, 300); glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH); glutcreatewindow("browser"); } emscripten_set_main_loop(draw_frame, 0, FALSE);
22 Graphics: What About 2D? Web has Canvas 2D API acceleration is spotty, especially on mobile SDL blitting API is supported on top of Canvas 2D Best practice: Build your own on top of GL for performance
23 Audio Simple playback through HTML5 Audio Works well for background music Web Audio API provides rich audio capabilities Closest mapping on native side is OpenAL Lots of requests for FMOD: let them know!
24 Networking Currently: UDP sendto and recvfrom Enough to support Enet library Enet implements connection streams on top of UDP Built on top of WebRTC Data Channels Other implementations are possible, as is low level WebRTC access
25 Data & Filesystem Web has rich APIs for fetching and storing data all asynchronous IndexedDB for local data storage no limits, prompt for >50MB in Firefox Regular web downloads are available emscripten_async_wget_data(url, arg, onsuccess, onfailure) Data can also be bundled via initial download
26 Data: Packaging Data Packager tool can create a virtual filesystem Upsides: Use regular POSIX API (open, read, etc.) Easy portability Downsides: Everything downloaded up front High memory usage
27 Demo: Packaging Data #include <iostream> #include <fstream> int main(int argc, char **argv) { std::ifstream hello_file("data/hello.txt"); std::string data; } getline(hello_file, data); std::cout << data << std::endl;
28 Data: Embrace Async IO Use custom or Emscripten APIs for asynchronously loading data from IndexedDB or the web Upsides: Better interactive performance Lower memory usage Easily extended to do asset streaming Downsides: Higher development complexity Existing code might make it difficult
29 Input Input is dependent on your library choice. SDL: SDL_PollEvent, SDL_PushEvent, SDL_PeepEvents, SDL_PumpEvents Events show up as regular SDL events Easy testing with native SDL library Ultimately, all events start off as web events (mousedown, mousemove, mouseup, etc.)
30 Input Web supports rich events and data gathering Mouse Keyboard Multitouch Gamepad Accelerometer Geolocation Microphone and Camera (via WebRTC) Third-party APIs (Facebook, Twitter, etc.) All accessible via Emscripten
31 Rolling Your Own Libraries You can create your own libraries for bridging the web and your native code For example: More optimized input handling Interaction with HTML widgets & content Connecting to other web packages, e.g. Facebook APIs, Persona login, Twitter integration, etc.
32 Emscripten Utility API JavaScript interaction emscripten_run_script emscripten_async_run_script URL fetching emscripten_async_wget_data Many others see emscripten/emscripten.h for more
33 Demo: Utility API #include <stdio.h> #include <emscripten/emscripten.h> int main(int argc, char **argv) { char *result; result = emscripten_run_script_string("(new Date()).toString()"); printf("date: %s\n", result); const char *script = "document.body.style.background = 'blue';" "alert('done');"; } emscripten_run_script(script);
34 Threading Worker-style threading is possible No shared data Message passing only Full generic threads missing currently (but we re working on it; code exists that we re experimenting with)
35 The Heap The Emscripten heap is a fixed-size typed array Maximum heap usage is currently chosen up front Large heaps can be difficult in 32-bit browsers Working on solutions in Firefox Future optimizations: Resizable Heap Non-commit heap
36 Visual Studio Integration vs-tool adds Emscripten as a target Visual Studio soon! Compile & Run in Browser support Windows installer for Emscripten and vs-tool coming soon
37 Debugging Debug as much as you can natively Browser developer tools work Code compiled with g is readable Working on a better native source debugging experience
38 Summary of Required Changes Convert to SDL, GLES, OpenAL Use existing mobile code Test and develop natively Convert main loop Make sure you can hand control back to browser Package required initial data Ease of initial development Implement async data access (if needed) For performance, memory usage
39 Getting to the User Putting your masterpiece on the web
40 Deployment HTML driver/loader Page that the user navigates to Doesn t need to load Emscripten JS right away Can do data preloads, logins, etc. Emscripten-compiled JS The.js and.js.mem file produced by Emscripten Any asset packages Assuming data loading isn t all async
41 Deployment: Code Size JavaScript code size is similar to x86 binaries. For a large project: Win32 binary: JavaScript: 29.9 MB 25.1 MB Compressed for delivery (gzip -9): Win32 binary: JavaScript: 10.1 MB 5.8 MB
42 Deployment: Data Delivery gzip Content-Encoding is essential Most web servers can pre-compress, or at least cache compressed content Using a CDN to deliver the data assets file is fine They re just files Local caching of content in IndexedDB possible Caching of code coming soon
43 Deployment: Installation Offline apps via manifests Supported on Firefox for Desktop, Firefox for Android, and Firefox OS Compatibility in other browsers varies Packaged Apps exist on Firefox OS Single.zip file with all assets Coming soon to Fx Desktop and Fx Android No unified packaging format (yet!) In talks with others to solve this
44 Making Money Cross-platform, no-(visible)-download Get users playing faster Use as gateway Lack of structure is powerful You control servers and updates You pick payment providers You choose analytics Lack of structure is annoying Web Marketplaces are here/coming Additional infrastructure for games is coming
45 What s Coming Next? I can see the (near) future
46 Compilation Caching Problem: Startup speed could be faster Solution: Cache compiled JS Much faster startup after first compile Compilation can be done automatically, or under app control
47 Apps in Workers Problem: Apps all run on the main browser thread Solution: Provide needed APIs on Workers No blocking of browser content (UI or your own page) Makes synchronous APIs possible Full CPU utilization Can also be solved by multiprocess browsing We re working on that too
48 JavaScript Improvements Problem: Never enough performance Solution: Expose more capabilities to JS asm.js SIMD instructions Likely through intrinsics Combined with JS value types Garbage Collection hooks in asm.js Integrate asm.js model with JS object model Data Parallelism in JavaScript
49 More Information emscripten.org asmjs.org developer.mozilla.org/games
Crosswalk: build world class hybrid mobile apps
Crosswalk: build world class hybrid mobile apps Ningxin Hu Intel Today s Hybrid Mobile Apps Application HTML CSS JS Extensions WebView of Operating System (Tizen, Android, etc.,) 2 State of Art HTML5 performance
Bridging the Gap: from a Web App to a Mobile Device App
Bridging the Gap: from a Web App to a Mobile Device App or, so how does this PhoneGap* stuff work? *Other names and brands may be claimed as the property of others. 1 Users Want Mobile Apps, Not Mobile
Lecture 4 Cross-Platform Development. <lecturer, date>
Lecture 4 Cross-Platform Development Outline Cross-Platform Development PhoneGap Appcelerator Titanium Xamarin References Native Development Represents the baseline for comparisons You
WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER
WEB, HYBRID, NATIVE EXPLAINED June 2013 CRAIG ISAKSON MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER 701.235.5525 888.sundog fax: 701.235.8941 2000 44th St. S Floor 6 Fargo, ND 58103 www.sundoginteractive.com
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!) ALON ZAKAI (MOZILLA) @kripken JavaScript..? At the LLVM developer's conference..? Everything compiles into LLVM bitcode The web is everywhere, and
Developing and deploying mobile apps
Developing and deploying mobile apps 1 Overview HTML5: write once, run anywhere for developing mobile applications 2 Native app alternative Android -- Java ios -- Objective-C Windows Mobile -- MS tools
HTML5 / NATIVE / HYBRID
HTML5 / NATIVE / HYBRID Ryan Paul Developer Evangelist @ Xamarin NATIVE VERSUS HTML5? REFRAMING THE DEBATE It s not a battle to the death. It s a choice: what solution will work best for your application?
Building native mobile apps for Digital Factory
DIGITAL FACTORY 7.0 Building native mobile apps for Digital Factory Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Drupal Performance Tuning
Drupal Performance Tuning By Jeremy Zerr Website: http://www.jeremyzerr.com @jrzerr http://www.linkedin.com/in/jrzerr Overview Basics of Web App Systems Architecture General Web
Take full advantage of IBM s IDEs for end- to- end mobile development
Take full advantage of IBM s IDEs for end- to- end mobile development ABSTRACT Mobile development with Rational Application Developer 8.5, Rational Software Architect 8.5, Rational Developer for zenterprise
QML and JavaScript for Native App Development
Esri Developer Summit March 8 11, 2016 Palm Springs, CA QML and JavaScript for Native App Development Michael Tims Lucas Danzinger Agenda Native apps. Why? Overview of Qt and QML How to use JavaScript
HTML5 the new. standard for Interactive Web
WHITE PAPER HTML the new standard for Interactive Web by Gokul Seenivasan, Aspire Systems HTML is everywhere these days. Whether desktop or mobile, windows or Mac, or just about any other modern form factor
New Features in XE8. Marco Cantù RAD Studio Product Manager
New Features in XE8 Marco Cantù RAD Studio Product Manager Marco Cantù RAD Studio Product Manager Email: [email protected] @marcocantu Book author and Delphi guru blog.marcocantu.com 2 Agenda
Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework
Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework pinboard.in tag http://pinboard.in/u:jasonclark/t:amigos-jquery-mobile/ Agenda Learn what a mobile framework is. Understand
Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz (@jkoder) Java Developer
Developing multidevice-apps using Apache Cordova and HTML5 Guadalajara Java User Group Guillermo Muñoz (@jkoder) Java Developer WTF is Apache Cordova? Set of device APIs that allow to access native device
A History of Tcl in the Browser
A History of Tcl in the Browser Oh no, not again! 1 The Motivation need a scripting language Anyway I know only one programming language worse than C and that is Javascript...the most horrible kluge in
Automated Performance Testing of Desktop Applications
By Ostap Elyashevskyy Automated Performance Testing of Desktop Applications Introduction For the most part, performance testing is associated with Web applications. This area is more or less covered by
SYST35300 Hybrid Mobile Application Development
SYST35300 Hybrid Mobile Application Development Native, Web and Hybrid applications Hybrid Applications: Frameworks Native, Web and Hybrid Applications Mobile application development is the process by
Cross-platform mobile development with Visual C++ 2015
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
Learning HTML5 Game Programming
Learning HTML5 Game Programming A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL James L. Williams AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York
Internet Explorer 10 Internet Explorer 11. Internet Explorer 10
2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 Internet Explorer 8 Internet Explorer 9 Internet Explorer 10 Internet Explorer 11 Internet Explorer 10 Internet Explorer 11 Internet Explorer
Parallel Web Programming
Parallel Web Programming Tobias Groß, Björn Meier Hardware/Software Co-Design, University of Erlangen-Nuremberg May 23, 2013 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development
Graduate presentation for CSCI 5448. By Janakiram Vantipalli ( [email protected] )
Graduate presentation for CSCI 5448 By Janakiram Vantipalli ( [email protected] ) Content What is Android?? Versions and statistics Android Architecture Application Components Inter Application
Mobile App Testing Process INFLECTICA TECHNOLOGIES (P) LTD
Mobile App Testing Process Mobile Application Testing Strategy EMULATOR QA team can perform most of the testing in a well-equipped test environment using device emulators with various options like ability
Developing Applications for ios
Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu [email protected] Faculty of Mathematics and Computer Science University of Bucharest Content Key concepts
CSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?
BogDan Vatra and Andy Gryc Qt on Android: Is it right for you? Coffee and Code sessions Free, three-hour, hands-on session that delves into the internals of Qt on Android. Learn how to: set up the Qt development
The Decaffeinated Robot
Developing on without Java Texas Linux Fest 2 April 2011 Overview for Why? architecture Decaffeinating for Why? architecture Decaffeinating for Why choose? Why? architecture Decaffeinating for Why choose?
Firefox for Android. Reviewer s Guide. Contact us: [email protected]
Reviewer s Guide Contact us: [email protected] Table of Contents About Mozilla Firefox 1 Move at the Speed of the Web 2 Get Started 3 Mobile Browsing Upgrade 4 Get Up and Go 6 Customize On the Go 7 Privacy
ios Application Development &
Introduction of ios Application Development & Swift Programming Language Presented by Chii Chang [email protected] Outlines Basic understanding about ios App Development Development environment: Xcode IDE Foundations
Cross-Platform Phone Apps & Sites with jquery Mobile
Cross-Platform Phone Apps & Sites with jquery Mobile Nick Landry, MVP Senior Product Manager Infragistics Nokia Developer Champion [email protected] @ActiveNick www.activenick.net Who is ActiveNick?
Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin
Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable
Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7
Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7 Jeff Linwood 1st Chapter, Early Release Introduction... 3 Prerequisites... 3 Introduction to Mobile Apps...
URI and UUID. Identifying things on the Web.
URI and UUID Identifying things on the Web. Overview > Uniform Resource Identifiers (URIs) > URIStreamOpener > Universally Unique Identifiers (UUIDs) Uniform Resource Identifiers > Uniform Resource Identifiers
OpenGL & Delphi. Max Kleiner. http://max.kleiner.com/download/openssl_opengl.pdf 1/22
OpenGL & Delphi Max Kleiner http://max.kleiner.com/download/openssl_opengl.pdf 1/22 OpenGL http://www.opengl.org Evolution of Graphics Assembler (demo pascalspeed.exe) 2D 3D Animation, Simulation (Terrain_delphi.exe)
A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved.
A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved. 1 The Mobile Web refers to access to the world wide web, i.e. the use of browser-based Internet services,
Retool your HTML/JavaScript to go Mobile
Retool your HTML/JavaScript to go Mobile @atdebonis 2008 Troy Web Consulting LLC All rights reserved 1 Overview What is PhoneGap? What is it good for? What can you use with it? Device Features Dev Tools
Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte
Enabling Cordova (aka PhoneGap) on Tizen René Pourtier / Luc Yriarte What is Cordova (aka PhoneGap)? An open-source standards-based development framework for building cross-platform mobile applications
Development Techniques for Native/Hybrid Tizen Apps. Presenter Matti Pakarinen
Development Techniques for Native/Hybrid Tizen Apps Presenter Matti Pakarinen 1 Content Symphony Teleca in Brief Introduction to Native/Hybrid Apps Key experiences Case Studies 2 Who we are Symphony Teleca
How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE
How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE Solutions Introduction: Enterprises around the globe are mobilizing mission-critical services. Businesses get streamlined due
HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang
HTML5 Applications Made Easy on Tizen IVI Brian Jones / Jimmy Huang IVI Systems Today Lots of hardware variety. Multiple operating systems Different input devices Software development requires access to
Native, web or hybrid mobile-app development
IBM Software Thought Leadership White Paper WebSphere Native, web or hybrid mobile-app development 2 Native, web or hybrid mobile-app development Contents 2 Introduction 2 Introducing the approaches 2
Trends in HTML5. Matt Spencer UI & Browser Marketing Manager
Trends in HTML5 Matt Spencer UI & Browser Marketing Manager 6 Where to focus? Chrome is the worlds leading browser - by a large margin 7 Chrome or Chromium, what s the difference Chromium is an open source
Programming IoT Gateways With macchina.io
Programming IoT Gateways With macchina.io Günter Obiltschnig Applied Informatics Software Engineering GmbH Maria Elend 143 9182 Maria Elend Austria [email protected] This article shows how
HTML5 & Digital Signage
HTML5 & Digital Signage An introduction to Content Development with the Modern Web standard. Presented by Jim Nista CEO / Creative Director at Insteo HTML5 - the Buzz HTML5 is an industry name for a collection
Web Based 3D Visualization for COMSOL Multiphysics
Web Based 3D Visualization for COMSOL Multiphysics M. Jüttner* 1, S. Grabmaier 1, W. M. Rucker 1 1 University of Stuttgart Institute for Theory of Electrical Engineering *Corresponding author: Pfaffenwaldring
Best practices building multi-platform apps. John Hasthorpe & Josh Venman
Best practices building multi-platform apps John Hasthorpe & Josh Venman It s good to have options Android 4.3 10 Tablet Windows 7 14 Laptop Windows 7 15 Laptop Mac OSX 15 Laptop ios 6 4.6 Phone Android
Intel XDK для разработки кросс-платформенных мобильных приложений
1 Intel XDK для разработки кросс-платформенных мобильных приложений Intel XDK HTML5 Cross-Platform Development Environment Olga Mineeva Product Validation Engineer, Intel Corporation 2 Topics to be Covered
White Paper INTRODUCTION. In mobile development, there are three different types of applications: PRE-SMARTPHONE MOBILITY NATIVE MOBILE APPLICATIONS
INTRODUCTION The mobile development arena is growing very quickly, especially in the business-to-consumer (B2C) space. We are also seeing significant growth in business-to-business (B2B) enterprise applications
Building A Self-Hosted WebRTC Project
Building A Self-Hosted WebRTC Project Rod Apeldoorn EasyRTC Server Lead Priologic Software Inc. [email protected] Slides will be available at: http://easyrtc.com/cloudexpo/ A Little About Priologic
Introduction to WebGL
Introduction to WebGL Alain Chesnais Chief Scientist, TrendSpottr ACM Past President [email protected] http://www.linkedin.com/in/alainchesnais http://facebook.com/alain.chesnais Housekeeping If you are
Debugging with TotalView
Tim Cramer 17.03.2015 IT Center der RWTH Aachen University Why to use a Debugger? If your program goes haywire, you may... ( wand (... buy a magic... read the source code again and again and...... enrich
Overview. The Android operating system is like a cake consisting of various layers.
The Android Stack Overview The Android operating system is like a cake consisting of various layers. Each layer has its own characteristics and purpose but the layers are not always cleanly separated and
Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.
Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce
Telerik: Develop Experiences
Telerik: Develop Experiences Laurent KIEFFER Ateliers Progress Octobre 2015 1 Telerik Customers Across Key Verticals FINANCIAL SERVICES GOVERNMENT RETAIL HEALTHCARE MANUFACTURING ENERGY and UTILITIES 2
The Most Popular UI/Apps Framework For IVI on Linux
The Most Popular UI/Apps Framework For IVI on Linux About me Tasuku Suzuki Qt Engineer Qt, Developer Experience and Marketing, Nokia Have been using Qt since 2002 Joined Trolltech in 2006 Nokia since 2008
WebRTC.... GWT & in-browser computation. Alberto Mancini, Francesca Tosi JooinK.com
WebRTC... GWT & in-browser computation Alberto Mancini, Francesca Tosi JooinK.com WebRTC Plug-in free realtime communication WebRTC is a free, open project that enables web browsers with Real-Time Communications
How To Use Titanium Studio
Crossplatform Programming Lecture 3 Introduction to Titanium http://dsg.ce.unipr.it/ http://dsg.ce.unipr.it/?q=node/37 [email protected] 2015 Parma Outline Introduction Installation and Configuration
Research on HTML5 in Web Development
Research on HTML5 in Web Development 1 Ch Rajesh, 2 K S V Krishna Srikanth 1 Department of IT, ANITS, Visakhapatnam 2 Department of IT, ANITS, Visakhapatnam Abstract HTML5 is everywhere these days. HTML5
Mobile App Proposal 0-000-000-000. - Magazine company- [email protected]. January 12, y. Direct Contact. Email
Mobile App Proposal - Magazine company- January 12, y Direct Contact 0-000-000-000 Email [email protected] TABLE OF CONTENTS 1. Introduction 2. Project Overview & Objectives 3. About Newsboard 4. Analytics
From Faust to Web Audio: Compiling Faust to JavaScript using Emscripten
From Faust to Web Audio: Compiling Faust to JavaScript using Emscripten Myles Borins Center For Computer Research in Music and Acoustics Stanford University Stanford, California United States, [email protected]
Introduction to TIZEN SDK
Introduction to TIZEN SDK Hyungoo Kang, Kangho Kim S-Core, Samsung April, 2012 2012 SAMSUNG Electronics Co. Contents Overview Tizen SDK (selected features) Demo (10 minutes) Conclusion 2/20 2012 SAMSUNG
OpenEdge and Mobile Applications
PUG-Norway OpenEdge and Mobile Applications Gus Björklund. Wizard. Progress. PUG-Norway, Oslo, Norge, tirsdag 05.mars 2013 FinPUG, S/S Borea, Turku, Finland, 7-8.3.2013 Reminder: Turn your cell phones
Kentico Site Delivery Checklist v1.1
Kentico Site Delivery Checklist v1.1 Project Name: Date: Checklist Owner: UI Admin Checks Customize dashboard and applications list Roles and permissions set up correctly Page Types child items configured
Step into the Future: HTML5 and its Impact on SSL VPNs
Step into the Future: HTML5 and its Impact on SSL VPNs Aidan Gogarty HOB, Inc. Session ID: SPO - 302 Session Classification: General Interest What this is all about. All about HTML5 3 useful components
CS 40 Computing for the Web
CS 40 Computing for the Web Art Lee January 20, 2015 Announcements Course web on Sakai Homework assignments submit them on Sakai Email me the survey: See the Announcements page on the course web for instructions
Graphics Input Primitives. 5. Input Devices Introduction to OpenGL. String Choice/Selection Valuator
4ICT10 Computer Graphics and Virtual Reality 5. Input Devices Introduction to OpenGL Dr Ann McNamara String Choice/Selection Valuator Graphics Input Primitives Locator coordinate pair x,y Pick required
Code Estimation Tools Directions for a Services Engagement
Code Estimation Tools Directions for a Services Engagement Summary Black Duck software provides two tools to calculate size, number, and category of files in a code base. This information is necessary
ANDROID APP DEVELOPMENT: AN INTRODUCTION CSCI 5115-9/19/14 HANNAH MILLER
ANDROID APP DEVELOPMENT: AN INTRODUCTION CSCI 5115-9/19/14 HANNAH MILLER DISCLAIMER: Main focus should be on USER INTERFACE DESIGN Development and implementation: Weeks 8-11 Begin thinking about targeted
ios SDK possibilities & limitations
ios SDK possibilities & limitations Licensing Licensing Registered as an Apple Developer (free) Access to XCode3 and ios SDK ios, Mac and Safari Dev Center Resources No possibility of distribution of developed
Assignment # 1 (Cloud Computing Security)
Assignment # 1 (Cloud Computing Security) Group Members: Abdullah Abid Zeeshan Qaiser M. Umar Hayat Table of Contents Windows Azure Introduction... 4 Windows Azure Services... 4 1. Compute... 4 a) Virtual
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013
Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone
CORBA Programming with TAOX11. The C++11 CORBA Implementation
CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy
Mobile Game and App Development the Easy Way
Mobile Game and App Development the Easy Way Developed and maintained by Pocketeers Limited (http://www.pocketeers.co.uk). For support please visit http://www.appeasymobile.com This document is protected
Livestream Studio. Release Notes & New Features!!! For use with Livestream Studio version 3.0.0. Published on April 13, 2015
Livestream Studio! Release Notes & New Features!!! For use with Livestream Studio version 3.0.0! Published on April 13, 2015 Table of Contents 1. Release notes 2. 4K/UHD and low definition project formats
JavaFX Session Agenda
JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user
Performance Optimization and Debug Tools for mobile games with PlayCanvas
Performance Optimization and Debug Tools for mobile games with PlayCanvas Jonathan Kirkham, Senior Software Engineer, ARM Will Eastcott, CEO, PlayCanvas 1 Introduction Jonathan Kirkham, ARM Worked with
HTML5: Separating Fact and Fiction. www.wipconnector.com @caaarlo #wipjam
HTML5: Separating Fact and Fiction www.wipconnector.com @caaarlo #wipjam Announcements What is HTML5? Agenda What can HTML5 do? What can t it do? Pure HTML5/Native vs. Hybrid approaches Guest Developer
Node.JS Appliances on Embedded Linux Devices. Mehmet Fatih Karagöz & Cevahir Turgut
Node.JS Appliances on Embedded Linux Devices Mehmet Fatih Karagöz & Cevahir Turgut 1 Outline Introduction to Node.js Cross-compiling Node.js and Node Package Manager(NPM) Development environment Scripting
Assignment 5: Visualization
Assignment 5: Visualization Arash Vahdat March 17, 2015 Readings Depending on how familiar you are with web programming, you are recommended to study concepts related to CSS, HTML, and JavaScript. The
Developing Android Apps for BlackBerry 10. JAM854 Mike Zhou- Developer Evangelist, APAC Nov 30, 2012
Developing Android Apps for BlackBerry 10 JAM854 Mike Zhou- Developer Evangelist, APAC Nov 30, 2012 Overview What is the BlackBerry Runtime for Android Apps? Releases and Features New Features Demo Development
HTML5 An Introduction
HTML5 An Introduction Yogomaya Yogo Maharana Contributions: Jatin Desai Dervin D Cunha Jim Elayan 678.527.8500 www.itaas.com This article provides a general introduction to the capabilities and reach of
MOBILIZING ORACLE APPLICATIONS ERP. An Approach for Building Scalable Mobility Solutions. A RapidValue Solutions Whitepaper
MOBILIZING ORACLE APPLICATIONS ERP An Approach for Building Scalable Mobility Solutions A RapidValue Solutions Whitepaper TABLE OF CONTENTS Executive Overview Typical Architecture for Mobilizing Oracle
Development for Mobile Devices Tools from Intel, Platform of Your Choice!
Development for Mobile Devices Tools from Intel, Platform of Your Choice! Sergey Lunev, Intel Corporation HTML5 Tools Development Manager Optional: Download App Preview Android bit.ly/1i8vegl ios bit.ly/1a3w7bk
PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)
PARALLEL JAVASCRIPT Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) JAVASCRIPT Not connected with Java Scheme and self (dressed in c clothing) Lots of design errors (like automatic semicolon
Choosing a Mobile Application Development Approach
ASEAN Journal of Management & Innovation Vol. 1 No. 1, 69 74 by Stamford International University DOI: 10.14456/ajmi..4 ajmi.stamford.edu Choosing a Mobile Application Development Approach Phyo Min Tun
[PACKTl. Flash Development for Android Cookbook. Flash, Flex, and AIR. Joseph Labrecque. Over 90 recipes to build exciting Android applications with
Flash Development for Android Cookbook Over 90 recipes to build exciting Android applications with Flash, Flex, and AIR Joseph Labrecque [PACKTl III IV I V I J PUBLISHING BIRMINGHAM - MUMBAI Preface 1
