Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

Similar documents
EFL at ELC 2016 A toolkit for developping efficient and attractive Uis on embedded devices

UI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL

Enlightenment A Toolkit for Embedded and Desktop World. Hermet Park Nov 17

Enlightenment Foundation Libraries 2.0 Time to rethink and make things easier!

Choosing free software graphical libraries for embedded devices

Building a Browser for Automotive: Alternatives, Challenges and Recommendations

Qt + Maemo development

An overview of mobile and embedded platforms

rich gui without pain

Connecting with Tizen : An Overview & Roadmap. Mohan Rao

The Art of Tizen UI Theme Technology in Various Profiles

Cedric BAIL. Samsung Research America

Meet Qt. The Leading Cross-Platform Application and UI Framework. The Qt Company. June

Moblin v2 SDK. Open Source Technology Center Presented by Bob Spencer

HTML version of slides:

HTML5 for mobile development.

Developing Cross-Platform Native Apps with AppStudio for ArcGIS. Jo Fraley Erwin Soekianto

Why you should be excited about Qt 5

Applications and Implementations

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Experiences Developing a Wayland-Based Tizen IVI HMI. Ossama Othman

Core object model EO / EFL++

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

KIVY - A Framework for Natural User Interfaces

Profiling and Debugging Games on Mobile Platforms

Khronos and the Mobile Ecosystem

Mobile & More: Preparing for the Latest Design Trends

Team Up: Contributing to the Tizen Platform. Narasimha Swamy Sanjay NM

Tizen Introduction. Minsoo Ryu. Real-Time Computing and Communications Lab. Hanyang University.

Qt for Device Creation

Applications and Implementations

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

<Insert Picture Here> JavaFX 2.0

What's new in GStreamer

Kick Start your Embedded Development with Qt

WPE WebKit. HTML5 user interfaces for embedded devices. Juan José Sánchez Penas Embedded Linux Conference Prague, October 2017

Linux desktop app guide Documentation. Thomas Kluyver & contributors

Introduction to creating 3D UI with BeagleBoard. ESC-341 Presented by Diego Dompe

Breathing life back into the terminal

ArcGIS Runtime: Maximizing Performance of Your Apps. Will Jarvis and Ralf Gottschalk

IGME-330. Rich Media Web Application Development I Week 1

CS 4300 Computer Graphics

EFL. Enlightenment Foundation Libraries Architecture & Usage

The Road to the Native Mobile Web. Kenneth Rohde Christiansen

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

Experiences Developing a Wayland Based IVI HMI. Ossama Othman 28 May 2013

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics

EFL on Wayland. Rafael Antognolli October, 22th

Chromium on Wayland - Status update. Automotive Grade Linux F2F meeting (04/2017) Antonio Gomes & Silvia Cho

ArcGIS for Developers: An Introduction. Moey Min Ken

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

Meet Crosswalk New HTML5 Runtime. Sakari Poussa Intel

Getting started with GitHub

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

IoT.js. Next generation web for connected things. Samsung Electronics Software Center Piotr Marcinkiewicz 2017

FlexJS. OmPrakash Apache Flex PMC Member Advisory Software Engineer, IBM

Web Development for Dinosaurs An Introduction to Modern Web Development

Nokia for developers. Alexey Kokin. Developer Relations

Tizen IVI Architecture New features. Dominig ar Foll, Intel Open Source

Exploring Cross-platform Tools For Mobile Development: Lessons Learned. mlearning: Tips and Techniques for Development and Implementation

HTML5 Mobile App Development

Mobile Performance Tools and GPU Performance Tuning. Lars M. Bishop, NVIDIA Handheld DevTech Jason Allen, NVIDIA Handheld DevTools

HTML5 HTML & Fut ure o Web M edi dia Streami a est Work h op, ov 2010 Michael Dale Zohar Babin eve oper o Dev R l e t a i tions & C

HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN

Tizen Architecture Overview

Copyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics

ArcGIS GeoEvent Server: Making 3D Scenes Come Alive with Real-Time Data

GStreamer in the living room and in outer space

A Big Little Hypervisor for IoT Development February 2018

How APEXBlogs was built

Lecture 4 Native libraries

Flex 3 Pre-release Tour

Tizen IVI Architecture New features

Porting Tizen-IVI 3.0 to an ARM based SoC Platform

Adopting HTML5 for Television: Next Steps

TileQt and TileGtk: current status

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

ECE 598 Advanced Operating Systems Lecture 18

Introduction to Xamarin Cross Platform Mobile App Development

Qt in MeeGo. Zhang Chi Manager of Qt & MeeGo ecosystem, Greater China

Intel INDE Integrated Native Developer Experience

Build Tizen HTML5 Apps w/ Sencha Architect & Sencha Touch

Installing VS Code. Instructions for the Window OS.

In the Driver s Seat

SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2)

What is new? Page 1. Peter Korsgaard, Maintainer ELCE 2013

Working with Metal Overview

Trolltech's success with dual licensing 12 Years Of Symbiosis

Tizen Overview (Tizen Ver. 2.3)

Introducing the Haiku Operating System

An imperative approach to video user experiences using LUNA

The friendly operating system for the IoT!

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Improving the Magento 2 Developer Experience

Mastering Mobile Web with 8 Key Rules. Mastering Mobile Web with 8 Key Rules

Wayland Support in Open Source Browsers

& Free.

Open Source Software in mobile devices. Timofey Turenko Nokia Research Center, Office of CTO

Transcription:

Embedded Linux UI Comparison Tim Bird Senior Staff Software Engineer Sony Electronics 1 yyyy-mm-dd <the title of the document>

Agenda Embedded Linux UI options Comparison points Presence at ELC Evaluations Resources 2 yyyy-mm-dd

Embedded Linux UI options 3 yyyy-mm-dd

Embedded Linux UI options Qt Enlightenment Foundation Libraries GTK Kinoma Crosswalk FLTK DirectFB Nano-X 4 yyyy-mm-dd

Narrowing the field Qt Enlightenment Foundation Libraries GTK Kinoma Crosswalk FLTK DirectFB Nano-X 5 yyyy-mm-dd

Low-level, older UI systems FLTK Fast Light Toolkit Still in development, but a very small community Popular in 2003/2004, but hasn t grown a lot since then DirectFB Was popular for a while, got CE Linux Forum funding Work appears to have stopped about 2 years ago Community never hit critical mass Nano-X (Microwindows) Very low level really an X replacement for low end No widgets, themes, IDE, designer, etc. Last active development in 2010 6 yyyy-mm-dd

The contenders Qt Enlightenment Foundation Libraries (EFL) GTK Kinoma Crosswalk 7 yyyy-mm-dd

Comparison Points 8 yyyy-mm-dd

Comparison Points Language Features/functionality Performance License Community size GPU driver support Platform support Ease of development Resource requirements 9 yyyy-mm-dd

Language What is the native language? C, C++, Javascript What additional bindings are supported? Python, Perl, Javascript, other scripting languages? 10 yyyy-mm-dd

Features/functionality All will have drawing primitives, events, widgets What higher-level elements are available? What other features: Data type primitives Theming Scripting Video integration Web/HTML support Internationalization Threading IPC 11 yyyy-mm-dd

Performance How fast does it run? Frames per second Number of objects UI responsiveness Does it utilize the GPU? How efficient is it? Can it be used on low-end processors? Does it utilize multi-core CPUs 12 yyyy-mm-dd

License Broad categories: Proprietary Permissive Copyleft BSD, Apache, MIT, LGPL 2, LGPL 3, GPL 2, GPL 3 License is important! Some projects may not be possible with LGPL/GPL 3 Stability of license Can it change? Are there contributor agreements? 13 yyyy-mm-dd

Community size How big is contributor base? How active is the community? How big is the user base? Likelihood of long-term maintenance and improvement Don t want to get stranded on a dead project 14 yyyy-mm-dd

GPU driver support What underlying graphic systems are supported Frame buffer DRM X11, Wayland OpenGL ES Who does the GPU driver work? CPU/GPU vendor? Sony? 15 yyyy-mm-dd

Platform support What operating systems does it run on? Linux, Windows, Mac BSD? (could SCE use it?) Android, IOS What operating systems can you develop on for it? Is it also used for non-embedded (ie desktop Linux)? These factors affect the size of the community 16 yyyy-mm-dd

Ease of development UI design tools IDEs Documentation Samples 17 yyyy-mm-dd

Resource requirements Size Disk space for system Disk space per app Memory for running app CPU/GPU What processor and speed are required to perform adequately? 18 yyyy-mm-dd

Presence at ELC 19 yyyy-mm-dd

Presence at ELC EFL Kinoma 20 yyyy-mm-dd

EFL notes (highlights) EFL does a scene graph Is not a dumb canvas EFL is full-featured, but can scale down, if needed Tizen supports both HTML5 and native apps (EFL) However, mobile SDK has a weird license (Flora) Enlightenment was designed for embedded More optimized for battery and memory than others 21 yyyy-mm-dd

EFL notes (2) Project switched to binary releases When they switched, about 90% of people stopped building from git. Community Is centered in Europe 80% of commits are from Samsung 2 companies do commercial support for EFL and enlightenment In Brazil and France 22 yyyy-mm-dd

EFL notes (3) Refining their rendering pipeline Take into account modern hardware with multiple CPUs Claim that EFL is highly optimized Can optimize rendering due to scenegraph For example, EFL does partial updates for OpenGL Have theming optimized for load time Time to first frame is short Widgets take into account scale factor and finger size For multiple device form factors (DPI is not good enough) From watches to TVs 23 yyyy-mm-dd

EFL notes (4) New Eo project Fresh API that is cleaner Automatic binding generation Some documentation automation EFL 2.0 24 yyyy-mm-dd

Kinoma notes Kinoma JS = Javascript-based UI system Has nice-looking graphics Has a simple system to deploy to target from host Have their own Javascript engine (XS6) They claim performance is good Interpreter doesn t do blitting or rendering, just logic and layout Not much community Kinoma JS is basically supported by one company (Marvel) 2 developers, 95 commits, 30 github forks 25 yyyy-mm-dd

Evaluations 26 yyyy-mm-dd

Qt Basics Language = C++ Bindings for Python, Javascript, and many more Features/functionality Support for native code and scripted Has rich support for just about everything Themes, Data types, Video, Web/HTML, Internationalization, Threading, etc. Has look of native OS (for desktop apps) Performance Good haven t done my own measurements 27 yyyy-mm-dd

Qt License Older versions = LGPL 2.1/GPL 3, and proprietary Until Qt v.5.3 Qt v.5.4/5.5/5.6 : Newly added features LGPL v.3 Latest version= LGPL 3/ GPL 2, and proprietary From Qt v.5.7 (May 2016) License is not stable Qt Company can change it (for new releases) Requires code to be submitted under a contribution agreement New license creates a problem for companies that wish to avoid GPL 3 28 yyyy-mm-dd

Qt Proprietary license pricing Proprietary license is very expensive Minimum of $250,000 + $11 per unit But they won t tell you that up front No pricing transparency Each price is determined in negotiation with Qt Company on a per-project basis Developer seats can t be transferred from one project to another There is no corporate buyout option That is, there s no option for a one-time buyout 29 yyyy-mm-dd

Qt Community size Very large Developers hundreds Users thousands Mail list traffic 200-500 messages monthly on qt-dev Used by many companies Used as basis for KDE (desktop Linux) 30 yyyy-mm-dd

Qt GPU driver support X11 Framebuffer Wayland (in progress) OpenGL ES 31 yyyy-mm-dd

Qt Platform support Linux, Windows, Mac BSD Android IOS 32 yyyy-mm-dd

Qt Ease of development Very mature tools UI design Qt Quick Designer IDE Qt Creator Lots of documentation Coding style and API design guidelines Lots of examples 33 yyyy-mm-dd

Qt Resource requirements Unknown Suspect it requires more resources than the others I need to measure this 34 yyyy-mm-dd

EFL Basics Language = C Bindings: Python, Javascript (in progress) Features/functionality Themes = Edje Data Types = Eina Scripting = Embryo Video = Emotion IPC = EET And more 35 yyyy-mm-dd

EFL Performance Claims to be good haven t been able to measure yet 36 yyyy-mm-dd

EFL License BSD + LGPL v2 Cannot change No contributor agreement (These are all good) 37 yyyy-mm-dd

EFL Community size Medium Developers tens Users hundreds Mail list traffic: Have about 250 messages per month now on Enlightenment-devel Mail traffic peaked in 2012 with over 1000 messages per month Used by some companies Used by Samsung for many, many products From watches to TVs Is native UI API for Tizen 38 yyyy-mm-dd

EFL Community notes 80% of commit traffic is Samsung Is part of Tizen Samsung has used it in millions of devices Samsung looking for other companies to join in development and use 39 yyyy-mm-dd

EFL GPU driver support Framebuffer X11 Wayland (in progress) OpenGL ES 40 yyyy-mm-dd

EFL Platform support Linux, Windows, Mac Android (in progress) Port to RTOS (in progress) 41 yyyy-mm-dd

EFL Ease of development Hard to assess UI designer is new (not 1.0 yet) IDE is new (not 1.0 yet) Progress developing these has been slow There are some examples Documentation is a bit spotty Some reports of type safety issues and poor error messages that make development hard 42 yyyy-mm-dd

EFL Resource requirements Claims to be light-weight Was developed with embedded in mind Need to measure 43 yyyy-mm-dd

Kinoma Basics Language = Javascript (no other bindings) Features/functionality Has own OS abstraction layer (types, methods, etc.) Performance Unknown Claimed to be good, but low-level graphics layer only has 3 primitives: Fill rectangle, blit bitmap, draw text 44 yyyy-mm-dd

Kinoma License Apache 2.0 45 yyyy-mm-dd

Kinoma Community size Quite small 2 developers Mainly driven by a single company (Marvell) 46 yyyy-mm-dd

Kinoma (cont.) GPU driver support Whatever is supported by browser OpenGL work is in progress Not sure what acceleration is supported Platform support Whatever is supported by browser Linux, Windows, Mac, Android, IOS (assume BSD, but don t know) 47 yyyy-mm-dd

Kinoma Ease of development Appears to be good Has IDE (Xcode?), with deploy to target Can use graphical language building block language Like Scratch 48 yyyy-mm-dd

Kinoma Resource requirements Not sure about UI requirements Assume to be high because of browser For IOT (headless) use XS6 JavaScript Engine on device 200 MHz ARM Cortex M4 Saves RAM by using XIP to run native ARM code directly from flash memory, and byte code from flash memory 49 yyyy-mm-dd

GTK Basics Language = C Bindings: C++, Python, Javascript and many more Features/functionality = Rich? Performance = Good? License = LGPL 2 Unlikely to change 50 yyyy-mm-dd

GTK more Community size Desktop community is large Hundreds of developers Thousands of users Embedded community is unknown size GPU driver support X11, framebuffer, OpenGL (recently) Platform support Linux, Windows, Mac Ease of development -??? Resource requirements Need to measure 51 yyyy-mm-dd

Crosswalk Basics Language = HTML5 + CSS + Javascript no other bindings Features/functionality Performance -??? 52 yyyy-mm-dd

Crosswalk More License LGPL 2 Community size Unknown, used in Tizen for non-native apps Supported primarily by Intel GPU driver support whatever the browser supports Platform support Linux, Windows, Android (more?) Ease of development -??? Resource requirements -??? Assume to be high, because of browser 53 yyyy-mm-dd

Planned investigations Port test app to all platforms, to measure resource requirements and performance Bouncing ball 54 yyyy-mm-dd

Resources 55 yyyy-mm-dd

Resources Thomas Petazzoni presentation (2008) http://elinux.org/images/6/64/choosing-embeddedgraphical-libraries.pdf https://en.wikipedia.org/wiki/list_of_widget_toolkits#comparis on_of_widget_toolkits http://wiki.lxde.org/en/gui_toolkit_comparison (from 2013) https://en.wikipedia.org/wiki/comparison_of_x_window_syste m_desktop_environments http://bird.org/sony/ui_comparison_table Cedric Bail presentation on EFL (2016) Slides: http://elinux.org/images/8/84/elc2016-bail.pdf Video: https://www.youtube.com/watch?v=s062ft-bysg 56 yyyy-mm-dd

Done. 57 yyyy-mm-dd