qooxdoo 3.5

47
qooxdoo 3.5 22. January 2014 | Martin Wittemann | Christopher Zündorf | Richard Sternagel

Upload: martin-wittemann

Post on 24-May-2015

2.802 views

Category:

Technology


6 download

DESCRIPTION

qooxdoo 3.5

TRANSCRIPT

Page 1: qooxdoo 3.5

qooxdoo

3.522. January 2014 | Martin Wittemann | Christopher Zündorf | Richard Sternagel

Page 2: qooxdoo 3.5

Martin Wittemann

• Head of Frameworks & Tooling

• TechLead of the qooxdoo project

• with 1&1 since 2009

Introduction

Christopher Zündorf

• Responsible Mobile Developer

• with 1&1 since 2012

Richard Sternagel

• Responsible Tooling Developer

• with 1&1 since 2004

Page 3: qooxdoo 3.5

Core

Desktop

Server Mobile

Website

Core

qooxdoo

Page 4: qooxdoo 3.5

Website

qx.Website

Page 5: qooxdoo 3.5

Widgets

qx.Desktop

Page 6: qooxdoo 3.5

Widgets

qx.Desktop HTML

???

Not Cross-Browser

Missing Features

Missing Features

Page 7: qooxdoo 3.5

WidgetsButton

Slider

Rating

Tabs

Calendar

Accordion

Page 8: qooxdoo 3.5

Slider API

ButtonAPI

WidgetAPI

Basics

q("button") // returns collection!!.button() // returns button collection

.setStyle("width", "100px"); // collection API

Initialization

qxWeb API

.setLabel("My Button") // button API

q("button").setLabel("New Text");2nd query

Page 9: qooxdoo 3.5

How to use?

<div id="slider"></div>HTMLSlider

q("#slider").slider();!

JavaScript

q("#slider").setValue(46);q("#slider").on("changeValue", function() {});

Page 10: qooxdoo 3.5

How to use?

q.create("<div>") .rating() .appendTo(document.body) .setValue(2);

JavaScript

Rating

Page 11: qooxdoo 3.5

Config & TemplateGeneric way to change config and templates!

Config Template

lengthsymbol -

stepminimummaximumoffset

knobContent

Page 12: qooxdoo 3.5

Config

q("#rating")!!

JavaScript

Rating

.setConfig("length", 10) .setConfig("symbol", "☃").render();

Page 13: qooxdoo 3.5

Template

q("#slider").setTemplate("knobContent", "{{value}}%").render();

JavaScript

Slider

Page 14: qooxdoo 3.5

Theming

Page 15: qooxdoo 3.5

API-Documentation

Page 16: qooxdoo 3.5

API-Documentation

Page 17: qooxdoo 3.5

Feedback

?

Page 18: qooxdoo 3.5

qx.Mobile

Mobile

Page 19: qooxdoo 3.5

Device Support

iOS

Windows Phone 8

Blackberry OS 10

Android 2.x Android 4.x

Page 20: qooxdoo 3.5

Improved Platform Support

✓ Improved UI performance ✓ Many bug fixes ✓ Better multi-touch behaviour

Enhanced support for Windows Phone 8 and Internet Explorer 11

Page 21: qooxdoo 3.5

Application Scaling• qx.Mobile‘s UI got scalable • Replaced CSS units from px to rem • Enhanced qx.Mobile widgets to be scalable

increase app scale

decrease app scale

Page 22: qooxdoo 3.5

High-Resolution Images + App Scale

Images are scaled in relation to app scale factor and device screen resolution

Dev

ice

Pixe

l Rat

ioApp Scale Factor

1.0

1.0

2.0

2.0

1.5

1.5

Page 23: qooxdoo 3.5

App Scale BenefitsImprove usability and user experience • Use extra space on big touch devices • Increase font size for target audiences • Increase UI element size for outdoor usage

!

Page 24: qooxdoo 3.5

Adjust Look & Feel

• No complex CSS adjustments required • One small SCSS file for changing the appearance

Page 25: qooxdoo 3.5

Adjust Look & Feel// Theme$foreground-color: #222;$background-color: white;$highlight-color: #3D72C9;

Page 26: qooxdoo 3.5

// Theme$foreground-color: #263248;$background-color: white;$highlight-color: #FF9800;

Adjust Look & Feel

Page 27: qooxdoo 3.5

Enhanced ThemingNew syntax for enabling single-colored and gradient backgrounds

Page 28: qooxdoo 3.5

Enhanced ThemingAdded many new theming variables, for additional customization possibilities

Checkbox

Radio Button

Toggle Button

Slider

Page 29: qooxdoo 3.5

Enhanced ThemingPicker Dialog

Page 30: qooxdoo 3.5

New Mobile Theme: Flat

Page 31: qooxdoo 3.5

Noteworthy• Carousel page transition adapts to

swipe velocity

• Added Carousel page overflow

management

• Improved Picker rendering

performance

• Slider displays its value

Page 32: qooxdoo 3.5

Feedback

?

Page 33: qooxdoo 3.5

Tooling

DesktopWebsite Mobile

Page 34: qooxdoo 3.5

Grunt

The JavaScript Task Runner

Experimental

Page 35: qooxdoo 3.5

What is Grunt?

• task runner (a.k.a. build tool)

• configure tasks for automation

• within Gruntfile.js

• runs under Node.js

building, linting, testing, …

Page 36: qooxdoo 3.5

Recap: Generator

• api

• build

• build-min

• build-module-all

• build-module-all-min

• clean

• dependencies

• distclean

• fix

• info

• inspector

generate.py {jobName}

• lint

• migration

• pretty

• source-*

• test

• test-source

• translation

• validate-config

• validate-manifest

• watch

• watch-scss

Page 37: qooxdoo 3.5

Why Grunt?

GruntGenerator

monolithic

PythonJavaScript

developer

plugins

know-how

reuse

extend

internalexternal

modularstable

proven

reinvent

maintenance

planflux

Page 38: qooxdoo 3.5

Already?

• newly created apps now contain Gruntfile.js

• all Generator jobs are available via Grunt

• Grunt as additional (optional) frontend

!

• Grunt Plugins

• every existing Plugin can be used

• extend Grunt with own Plugins

Page 39: qooxdoo 3.5

Feedback

?

Page 40: qooxdoo 3.5

-----Bugs------ Core 73 Server 1 Website 11 Mobile 50 Desktop 38 ---- Bugs 173 !-Enhancements-- Core 44 Server 0 Website 19 Mobile 14 Desktop 7 ---- Enh. 84 !Total 257 !

Thanks for using qooxdoo!

qooxdoo

Page 41: qooxdoo 3.5

next...

Page 42: qooxdoo 3.5

Define a Roadmap

Page 43: qooxdoo 3.5

Ideas

Core• Use Grunt for all demo

apps

• Migration of certain tool parts e.g. Lint

• Build-step using only JavaScript code

Page 44: qooxdoo 3.5

Ideas

• Universal input device support

• Code reuse across application domains

• Resolution Independence

• Responsive Layouts

UI Toolkits

Core

Page 45: qooxdoo 3.5

• New widgets e.g. Table

• Migration of existing widgets

• Data-Binding

Website

Ideas

UI Toolkits

Core

Page 46: qooxdoo 3.5

Website

Ideas

UI Toolkits

Core

Mobile• Support for Firefox OS

• Icon Sets

Page 47: qooxdoo 3.5

Feedback

?