Multi-touch app development with modern web tools. David Reagan, Advanced Visualization Lab



Similar documents
MODERN WEB APPLICATION DEVELOPMENT WORKFLOW

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

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

Mobile apps development for Joomla

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

Introduction: The Xcode templates are not available in Cordova or above, so we'll use the previous version, for this recipe.

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Note: This documentation was written using the Samsung Galaxy S5 and Android version 5.0. Configuration may be slightly different.

White Paper On. Single Page Application. Presented by: Yatin Patel

SYST35300 Hybrid Mobile Application Development

ORACLE ADF MOBILE DATA SHEET

Article. One for All Apps in HTML5

slides at goo.gl/kifue

Developing and deploying mobile apps

Developing Microsoft SharePoint Server 2013 Core Solutions

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

TECHNOLOGIES MOBILE STRATEGY

Continuous Integration and Delivery. manage development build deploy / release

Advantage Cloud Access: Microsoft Remote Desktop for Android

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

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

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

Managing Existing Mobile Apps

IAB Full page flex Mobile Rising Star Ad Unit

AngularJS for the enterprise

Adobe Summit 2015 Lab 718: Managing Mobile Apps: A PhoneGap Enterprise Introduction for Marketers

Armedia. Drupal and PhoneGap Building Mobile Apps

Hybrid Mobile Application Development

Mobile App Design and Development

Essentials of Developing Windows Store Apps Using C# MOC 20484

ADF Mobile Overview and Frequently Asked Questions

Lucy Zhang UI Developer Contact:

Coding for Desktop and Mobile with HTML5 and Java EE 7

Position Title: Implementation Engineer- HI COP FLSA Status: Department Name: Operations Team Supervisor's Title: Director of Professional Services

Architecture Workshop

GeoInt 2015 Watson Workshop

Discovering Computers

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

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

MEAN/Full Stack Web Development - Training Course Package

Enterprise Mobile Application Development: Native or Hybrid?

How to start with 3DHOP

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Build a Mobile App in 60 Minutes with MAF

Zoom Video Conferencing

Ultimate Skills Checklist for Your First Front-End Developer Job

PARK UNIVERSITY. Information Technology Services. VDI In-A-Box Virtual Desktop. Version 1.1

Grunt, Gulp & fabs. Build-System and Development-Workflow for modern Web-Applications

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

Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz Java Developer

Multi-Touch Control Wheel Software Development Kit User s Guide

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

HTML5. Turn this page to see Quick Guide of CTTC

Lab: Developing Mobile Web Apps. Adage Technologies adagetechnologies.com

VISION BPM. Business Process Management.

Generate Android App

Skynax. Mobility Management System. System Manual

Sizmek Formats. IAB Mobile Pull. Build Guide

Quick Start Guide Mobile Entrée 4

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Preparing Your Business for Magento 2.0

CHOOSING CLIENT PLATFORMS IN THE PC+ ERA

Mike Laurel. Web Developer UI / UX Engineer.

unisys ClearPath eportal Developer 6.1 Unisys Multi-Device App Developer s Guide March

Making Mobile a Reality

Lee Barnes, CTO Utopia Solutions. Utopia Solutions

A Way Out of the Mobile App Development Conundrum

ICON UK 2015 node.js for Domino developers. Presenter: Matt White Company: LDC Via

HallPass Instructions for Connecting to your Campus PC Using the ipad

Learning Web App Development

WACOM GESTURE GUIDE: USING TOUCH WITH WACOM PRODUCTS

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

Managing customer entitlement with Adobe Digital Publishing Suite

A Guide to Mobile App Development Platforms

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

SYMETRIX SOLUTIONS: TECH TIP February 2015

MarkLogic 8: Samplestack

Arduino Training - Basics of Micro-controllers Programming Basics

Mobile Test Automation - Right Tools and Right Approach

Client Overview. Engagement Situation. Key Requirements. Xoriant Solutions

System Requirements for Microsoft Dynamics NAV 2016

System Requirements for Microsoft Dynamics NAV 2015

Andrew Kovalenko Full Stack Web Developer

Making the Most of Existing Public Web Development Frameworks WEB04

Armedia. Drupal and PhoneGap Building Mobile Apps

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

A CLOUD-BASED FRAMEWORK FOR ONLINE MANAGEMENT OF MASSIVE BIMS USING HADOOP AND WEBGL

Trainer Preparation Guide for Course 20488B: Developing Microsoft SharePoint Server 2013 Core Solutions Design of the Course

DreamFactory & Modus Create Case Study

Software Development Kit

Transcription:

Multi-touch app development with modern web tools David Reagan, Advanced Visualization Lab

Advanced Visualization Lab A unit of the Research Technologies division of UITS Research Technologies is a PTI Cyberinfrastructure and Service Center " to promote the innovative application of visual technologies to advance Indiana University s missions in research, education, creative activity, and community outreach"

Touch hardware IQ-Table IQ-Tilt Touch monitors Tablets

IQ-Table v2 55 monitor in table orientation Quad-HD resolution 3840 pixels by 2160 pixels l Capable of 32-point multi-touch Built-in Windows PC Custom frame, legs, skirt

Early touch projects Brownsburg Challenger Center Places & Spaces: Illuminated Diagrams Conference kiosks Stereoscopic video kiosk Digital signage Digital Golden Book Digital On the Road manuscript

Collection Viewer Developed for the 2012 Smithsonian Folklife Festival, reused many times since Simple, multi-user interface to digital media collections Flash application using the Open Exhibits framework Expanded to serve as interface to 2nd display

So why are we talking about web technology?

Why not Open Exhibits? Limited lifespan for Flash, especially on the web Philosophical choice: configuration over code Build app once, let community customize through configs Complex configs AVL still configured apps Feature creep as clients request apps that were similar to, but not exactly, the existing software Ultimately, we didn't save much time l l

Why web tech for touch applications? Recent maturation of HTML/CSS/JavaScript Including tools for entire workflow (more on this later) Accessible to most developers Deployable to most platforms Design and content freedom

HAMMER.JS You can touch this

Hammer.js https://hammerjs.github.io/ open-source library that can recognize gestures made by touch, mouse and pointerevents Provides recognizers for Tap, Press, Swipe, Pan, Pinch, Rotate Options to create custom recognizers like 2-finger pan or quadruple-tap Also available as jquery plugin or Angular directive Emulator for non-touch devices

AVL development workflow

Development tools: Git + GitHub Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. GitHub: Powerful collaboration, code review, and code management 3 Git(Hub) talks at SWIT 2015

Development tools: Node.js a JavaScript runtime built on Chrome's V8 JavaScript engine JavaScript as a server-side language Developer-side for us npm: largest ecosystem of open source libraries in the world Package manager for our development tools

Development tools: gulp Automate development tasks, similar to make gulp serve : launch Browsersync server on source files gulp test : run unit tests with Karma gulp protractor : run e2e tests with Protractor gulp build : build optimized application for deployment

Front-end tools: Bower A package manager for the web Specify frameworks, libraries, etc in config file bower install : download local copies gulp task to automatically inject includes into index.html

Front-end tools: AngularJS Framework for creating dynamic single-page web applications Maintained by Google and others Model-View-Controller architecture Declarative programming for UI, imperative for logic

Development tools: Yeoman The web's scaffolding tool for modern webapps Generators to help you assemble new projects Automatically configure your build system, package manager, and more We use generator-gulp-angular

Example step 1: AngularJS ng-repeat

Example step 2: Angular Hammer Hammer gesture recognizers as Angular directives

Example step 3: Angular Material Implementation of Google's Material Design in Angular We primarily use it for the touch ripple, but also useful for layout, UI components, etc

Example step 4: Angulartics Use familiar web analytics for user tracking Plug-ins available for >20 analytics vendors Automatic page view tracking Declarative event tracking within a page

Deployment

Deploy to desktop: browser Best results with Chrome Set chrome://flags options Overscroll history navigation = Disabled Enable viewport meta tag = Enable Kiosk extension Lockdown application Disable right-click, charms, etc in Windows Run simple webserver for local file access

Deploy to desktop: standalone executable NW.js or Electron Bundle your webapp with node.js and Chromium Yeoman generators available for both Swap sample app with your own

Deploy to mobile Deploy to mobile browsers over the web Bundle your webapp into a mobile app for Android, ios, etc with Apache Cordova

Example app GitHub repo: http://go.iu.edu/lua dmreagan@iu.edu vishelp@iu.edu