QML and JavaScript for Native App Development

Similar documents
Extending the Survey123 for ArcGIS Mobile App

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

ArcGIS Web Mapping. Sam Berg, esri

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

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

Whitepaper. Trans. for Mobile

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville

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

Mobile Solutions in ArcGIS. Justin Fan

Developing Cross-Platform.NET Apps with ArcGIS Runtime

Cross-Platform Software Considerations for Internet of Things

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Enterprise Mobile App Management Essentials. Presented by Ryan Hope and John Nielsen

01. Introduction of Android

Developing Apps with the ArcGIS Runtime SDK for Android. Ben Ramseth Esri Inc. Instructor Technical Lead

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

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

ArcGIS Viewer for Silverlight An Introduction

Petroleum Web Applications to Support your Business. David Jacob & Vanessa Ramirez Esri Natural Resources Team

SYST35300 Hybrid Mobile Application Development

Cross-Platform Mobile Apps Solution

Sybase Unwired Platform 2.0

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

Developing and deploying mobile apps

DEVELOPING NFC APPS for BLACKBERRY

ANDROID APP DEVELOPMENT: AN INTRODUCTION CSCI /19/14 HANNAH MILLER

The Most Popular UI/Apps Framework For IVI on Linux

Sybase Unwired Platform 2.1.x

A Way Out of the Mobile App Development Conundrum

Developing Cross-platform Mobile and Web Apps

Making Mobile a Reality

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

SAP Mobile Platform Intro

Evaluating Enterprise Mobile Platforms Go Big or Go Small?

Retool your HTML/JavaScript to go Mobile

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

research: technical implemenation

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

Implementing Mobile Thin client Architecture For Enterprise Application

ArcGIS Platform. An Integrated System. Portal

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

Interview with Cocomore, agency for marketing and IT services

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

Etanova Enterprise Solutions

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

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

Building and Deploying Web Applications

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

Native, Hybrid or Mobile Web Application Development

The Anatomy of a Native App

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

OpenEdge and Mobile Applications

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

Intro to Web App Builder. Mark Scott, Solutions Engineer, Esri County Government Team

POINT-TO-POINT vs. MEAP THE RIGHT APPROACH FOR AN INTEGRATED MOBILITY SOLUTION

ANDROID INTRODUCTION TO ANDROID

Beginning Nokia Apps. Development. Qt and HTIVIL5 for Symbian and MeeGo. Ray Rischpater. Apress. Daniel Zucker

Mobile Development with Qt

Programming Mobile Apps with Python

Building Applications with ArcGIS Runtime SDK for ios Part II. Eric Ito and Scott Sirowy

Scott Moore, Esri April 4, Intermountain, Great Falls, MT

Creating Enterprise Mobile Apps with Red Hat

An Esri White Paper October 2010 Developing with Esri Business Analyst Server

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

Cross-Platform Phone Apps & Sites with jquery Mobile

Enterprise Mobile Application Development: Native or Hybrid?

ECE 455/555 Embedded System Design. Android Programming. Wei Gao. Fall

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

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

How To Use Titanium Studio

Building native mobile apps for Digital Factory

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

JavaFX Session Agenda

How To Develop A Mobile Application On An Android Device

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

Not All Apps Are Created Equal. The key to a seamless app-building experience is to dig deep, ask questions and examine all variables at the onset.

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Choosing a Mobile Application Development Approach

HTML5, The Future of App Development

Building Apps for iphone and ipad. Presented by Ryan Hope, Sumeet Singh

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

PEGA MOBILITY A PEGA PLATFORM WHITEPAPER

Development of Hybrid Applications with HTML

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Mobile Cross Platform Development really? Jonathan Marshall, IBM Mobile Technical Specialist IBM Corporation

Web Development with the Eclipse Platform

HTML5 AUTOMOTIVE 2013 White Paper Series

Crosswalk: build world class hybrid mobile apps

sudo add-apt-repository ppa:ubuntu-sdk-team/ppa sudo apt update && sudo apt install ubuntu-sdk

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

Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework

Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions

Develop Hybrid Mobile Applications with Apache Cordova & PhoneGap Enterprise

Getting started with Android and App Engine

Essential Mapping Apps

Module Title: Software Development A: Mobile Application Development

Introduction to Mobile Development on BlackBerry 10

ADF Mobile Overview and Frequently Asked Questions

Cross-Platform Mobile Application Development

Mobile Applications Developer. MAIN PURPOSE OF JOB To lead the design, development and maintenance of Android, iphone and ipad applications.

Transcription:

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 skills to build native apps

Web vs Native vs Hybrid

Why build native apps?

Why build native apps? Work online & offline Access hardware and sensors GPS, camera, Bluetooth, NFC, etc Great performance Publish apps to stores

The challenge Swift Lots of platforms Lots of devices Unique development patterns Languages Frameworks IDEs Workflows iphone ios Mac OS X XCode Windows Desktop ipad.net Surface C# Android Nexus 10 Eclipse Windows Universal Cocoa Java Windows Visual Studio Objective C MacBook Embedded Galaxy S 5 Android Studio Linux Gradle

You can build native apps with your JavaScript skills and Qt!

What is Qt and QML? And how is it related to JavaScript?

Qt and QML Cross platform framework Build native apps Same source code compiled for each platform Powered by C++ on the backend (very fast) Exposed through QML (based on JavaScript) ArcGIS Runtime SDK for Qt Mapping API provided by Esri Brings the power of ArcGIS to your devices

QML Highly readable JSON/CSSlike syntax ArcGIS Runtime Declarative UI elements Imperative JavaScript Code to handle events Dynamic property binding

JavaScript & QML If you understand JSON and JavaScript, this will come naturally Call JavaScript functions from QML Bind properties to JavaScript expressions Implements 5th edition of ECMA262 Access to the language standard types and functions Object, Array, Math, and Date. JS is integrated in Qt Creator IDE Intellisense in IDE qmllint syntax tool Major Differences from the browser? No DOM or window object No Dojo, jquery, or other frameworks

JavaScript Expressions

JavaScript expressions Bind properties to JS expressions Update UI automatically Any JS expression (no matter how complex) may be used in a property binding definition ex: Change UI depending on ambient light

Updating the UI Automatically with Ambient Light Sensor

JavaScript Functions

JavaScript functions QML is declarative, but You can (and will need to) call JavaScript functions from QML Declare a visual component in QML (e.g. Button) Write imperative JavaScript code to respond to an event var basic type used in functions (same as JavaScript var) Can store numbers, strings, objects, arrays and functions Syntax based off ECMAScript 5th edition Object, Array, Math, and Date Syntax for if statements, switch statements, ternary operators, for loops, while loops, and more are no different than using JavaScript in the browser

JavaScript functions function declaration for loop Conditionals and comparisons JavaScript Array JavaScript Date console.log JavaScript Math function invocation Callback function

Asynchronous Programming with QML

Async programming with QML Signal and Handler Event System The event is a signal (ex: mouseclicked) The signal is responded to through a signal handler Signal handler is the name of the signal with the on prefix (ex: onmouseclicked) Write JavaScript to perform some procedure when a signal is emitted

Using async JS functions for offline geocoding

Leveraging external JavaScript resources

Importing standalone JavaScript Separate nontrivial logic into external JavaScript files Make your code reusable How? Place your functions inside a.js file Import to QML files with import statement: Execute your external functions from QML Include external JavaScript files from other JavaScript files with Qt.include()

Downloading items from ArcGIS Online for offline use

QML Canvas

QML Canvas 2D and a 3D canvas item Enables drawing via JavaScript Allows drawing of: straight and curved lines simple and complex shapes graphs referenced graphic images Convert HTML5 Canvas to QML ex: charts.js See Canvas QML Type doc

charts.js in QML using QML Canvas

How is Esri using QML?

Esri & QML AppStudio for ArcGIS Survey 123 ArcGIS Runtime SDK for Qt Runtime Core (for testing)

How to get started? Visit the Developer s page http://developers.arcgis.com/qt Download the sample viewer Install Qt and ArcGIS Runtime, and start building apps! Talk to us on GeoNet, Slack, Twitter, etc Come visit us at the showcase!

Recap Native apps. Why? Overview of Qt and QML How to use JS skills to build native apps Property binding with JavaScript expressions JavaScript functions External JavaScript resources Canvas

Related sessions Developing CrossPlatform Native Apps with AppStudio for ArcGIS (Advanced) Crossplatform Native App Development with Qt/QML Wednesday 4:00 5:00 pm in Primrose A Thursday 2:30 3:30 pm in Demo Theater 3 Extending the Survey123 for ArcGIS Mobile App Thursday 5:30 6:30 pm in San Jacinto Renaissance Hotel

Questions?