THE SOFTWARE EXPERTS Cross-Platform app development with PhoneGap, TypeScript and SVG



Similar documents
Outline. 1.! Development Platforms for Multimedia Programming!

Visualizing Data: Scalable Interactivity

BASIC COMPONENTS. There are 3 basic components in every Apache Cordova project:

Research on HTML5 in Web Development

How To Develop A Mobile App With Phonegap

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

Learning HTML5 Game Programming

QML and JavaScript for Native App Development

SYST35300 Hybrid Mobile Application Development

Building native mobile apps for Digital Factory

Vector Web Mapping Past, Present and Future. Jing Wang MRF Geosystems Corporation

Using HTML5 Pack for ADOBE ILLUSTRATOR CS5

Making the Most of Existing Public Web Development Frameworks WEB04

Cross-Platform Tools

Developing and deploying mobile apps

A Guide to Mobile App Development Platforms

design coding monitoring deployment Java Web Framework for the Efficient Development of Enterprise Web Applications

WHITE PAPER on Flex to HTML5 The Migration Challenge. April 2014

Rich Internet Applications

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

HTML5, The Future of App Development

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

PERFORMANCE OF BÉZIER CURVES RENDERING IN WEB BROWSERS

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Mobile Performance: for excellent User Experience

Creative Cloud for Web Design

Cross-Platform Phone Apps & Sites with jquery Mobile

Progressive Enhancement With GQuery and GWT. Ray Cromwell

Simply type the id# in the search mechanism of ACS Skills Online to access the learning assets outlined below.

ipad, a revolutionary device - Apple

Enterprise Mobile Application Development: Native or Hybrid?

HTML5: Separating Fact and Fiction. #wipjam

RIA Technologies Comparison

A Way Out of the Mobile App Development Conundrum

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

Coding for Desktop and Mobile with HTML5 and Java EE 7

Adobe Creative Suite: Introduction for Web Design

Retool your HTML/JavaScript to go Mobile

HybriDroid: Analysis Framework for Android Hybrid Applications

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

HTML5 the new. standard for Interactive Web

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

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

JavaFX Session Agenda

Web Pages. Static Web Pages SHTML

Visualizing a Neo4j Graph Database with KeyLines

Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte

Business & Computing Examinations (BCE) LONDON (UK)

Cross-Platform Development: Target More Platforms and Devices with a Minimal Amount of Source Code

CIS 467/602-01: Data Visualization

Performance Optimization and Debug Tools for mobile games with PlayCanvas

HTML5 & Digital Signage

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

Web-based Hybrid Mobile Apps: State of the Practice and Research Opportunities

How To Use Mugeda Content

CROSS PLATFORM DEVELOPMENT The HTML5 Way

AngularJS for the enterprise

HTML5. Turn this page to see Quick Guide of CTTC

Continuous Integration and Delivery. manage development build deploy / release

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

Lecture 1 Introduction to Android

WE BUILD ONLINE SYSTEMS USEFUL WEB & MOBILE APPLICATIONS

4/25/2016 C. M. Boyd, Practical Data Visualization with JavaScript Talk Handout

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

Cross-Platform Mobile Apps Solution

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Modern Web Development:

Unlocking the Java EE Platform with HTML 5

Developer Tutorial Version 1. 0 February 2015

Oracle Application Express MS Access on Steroids

Armedia. Drupal and PhoneGap Building Mobile Apps

HTML5 as the Core Technology of the Mobile Enterprise

research: technical implemenation

How To Write An Ria Application

An Overview of HTML5 and Deciding When to Use It. Robby Robson, Ph.D. & Heather L. Jones, MCT Eduworks

Rich Internet Applications

Legal notices. Legal notices. For legal notices, see

Web Design Specialist

ANDROID TRAINING COURSE MODULES. Module-I: Introduction to Android. Introducing Android. Installing Development Tools. Using the Emulator.

An evaluation of JavaFX as 2D game creation tool

Interactive Data Visualization for the Web Scott Murray

WHITE PAPER. Cross Platform Mobile Development

Mobile Application Development

Making Mobile a Reality

How to Monitor and Identify Website Issues. 2013, SolarWinds Worldwide, LLC. All rights reserved. Share:

Transcription:

Cross-Platform app development with PhoneGap, TypeScript and SVG Jan Zarnikov Irian Solutions

About me MSc in Software Engineering (TU Wien) Since 2010 @ Irian Solutions (mostly) Java-developer https://github.com/jzarnikov

Let s try something new... It s not always the right choice (or even an option).

The Challenge Mobile app to teach kids math Images: store.apple.com, play.google.com, versus.com

2 major issues Mobile app to teach kids math Images: store.apple.com, play.google.com, versus.com

2 major issues Mobile app to teach kids math 1 cross-platform Images: store.apple.com, play.google.com, versus.com

2 major issues Mobile app to teach kids math 2 1 graphics cross-platform Images: store.apple.com, play.google.com, versus.com

Our platform choice (the basis of PhoneGap) Images: www.w3c.org, cordova.apache.org

(Type) safety first (optional) static typing class-based OOP compiles to human-readable JS easy integration with JS libraries & tools Check out the TypeScript Playground!

TypeScript - compile-time checks Prevent type errors in your IDE: and your command-line tools:

TypeScript - classes & interfaces optional class-based single inheritance Is FrequentCustomer a Person? Matching by structure (duck typing)

TypeScript - closures & generics Generics - similar to Java Closures are everywhere! (async. nature of many JS libraries)

TypeScript - JS-Libs Type definitions: Type-safe usage:

Java Developers are spoiled Good, matured tools that work together (IDE, frameworks/libs, build, CI) Image: http://social4business.com/wp-content/uploads/2012/10/tools.jpg

TypeScript - tools Good support in or Type definitions for common JS-libs: http://git.io/0fdx-q and that s about it.

JavaScript - the Wild West 1.000s of libraries frameworks build tools and everything is v0.1.2 Image: http://www.gunstands.com/22-1186b.jpg http://www.fortwestern.com/charlie-1-horse-deuces-wild-felt-hat/p/429144/

Building it right 1. Compile TypeScript 2. Compile tests 3. Run Tests a. in browser b. head-less 4. Package 5. Deploy + Continuous integration Image: Chuck Norris Jenkins plugin

First attempt Currently not compatible with TypeScript-modules and Jasmine Images: www.gruntjs.com

Second attempt + custom plugin (compile, run tests ) + + Chrome Apps (based on Cordova)

gradle-typescript-plugin compile main/test run tests (in browser or headless) combine JS, uglify + full-featured sample project http://git.io/gradle-ts Image: www.github.com

Everybody hates pixels Vector graphics is the solution. Image: www.theverge.com

First attempt Render to SVG with RaphaelJS: var paper = Raphael(0, 0, 800, 600); var circle = paper.circle(200, 100, 50); circle.attr("fill", "black"); <html> <body> <svg width="800" height="600"> <circle cx="200" cy="100" r="50" fill="black" /> </svg> </body> </html>

Our workflow export em be d Static content Static images w dra implement Interaction mockups Designer Dynamic UI components Developer

First attempt - Results + Direct embedding of SVGs possible - SVG-rasterization too slow for animations (not even simple movement/scaling of objects) Image: en.wikipedia.org

Second attempt 1. <canvas> 2. Pre-rasterize SVGs with canvg (+ cache) 3. Render everything with EaselJS & TweenJS

Our workflow revised export em Static content be d Static images draw implement Interaction mockups re nd er Dynamic UI components export Animations Designer CreateJS MoveClip Generated JS code Developer <canvas>

Second attempt - Results Fast rendering Embedding of SVGs still possible Direct export of animations from Adobe Flash (generates CreateJS code!)

Summary

Summary TypeScript is great! But the tools not so much unless you write your own.

Summary TypeScript is great! But the tools not so much unless you write your own. Using vector graphics is hard, but doable. SVG rendering is slow, canvas is better.

Thank you for your attention! Questions?