Developing Software for Small Devices Bradley T Hughes Trolltech AS

Similar documents
INTRODUCING Qt The Cross-Platform C++ Development Framework. Presented by Cody Bittle

Embedded Linux system development training 5-day session

NEW CEIBO DEBUGGER. Menus and Commands

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

Design av brukergrensesnitt på mobile enheter

Custom Monitor Configuration Guide

Multi-NVR Manager. Quick Start Configuration Usage

New Visual Design for IRON HQ Release Notes

OX App Suite Product Highlights. New and updated features & functions May, 2017

SKP16C26 Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

DriveWizard Plus Instruction Manual

Palm Platform Hardware Intro to the Palm OS and application programming

[ Getting Started with Analyzer, Interactive Reports, and Dashboards ] ]

Low fidelity: omits details High fidelity: more like finished product. Breadth: % of features covered. Depth: degree of functionality

Getting Started - Installing and Running System options for a running viewer Command line options Full-screen mode Problems?

MindManager Server User Guide

IBM NetBAY Virtual Console Software. Installer and User Guide

Publisher Basics: Create Greeting Cards and More!

Android System Development Training 4-day session

Understanding the User Interface

Module 4: Working with MPI

WIND RIVER DIAB COMPILER

About the Presentations

Recent Operating System Class notes 10 Administrative Tools (Part three) April 21, 2004

IBM NetBAY Virtual Console Software. Installer and User Guide

PowerPoint X. 1. The Project Gallery window with the PowerPoint presentation icon already selected. 2. Click on OK.

SensorConnect Changelog. Updated:

Getting Started with ESX Server 3i Embedded ESX Server 3i version 3.5 Embedded and VirtualCenter 2.5

COS 318: Operating Systems. Overview. Andy Bavier Computer Science Department Princeton University

User s Guide. Creative Desktop Wireless 8000

Oracle APEX 18.1 New Features

10ZiG NOS User Guide

Coding Faster: Getting More Productive with Microsoft Visual

10 Steps to Virtualization

Quick Start Guide - Contents. Opening Word Locating Big Lottery Fund Templates The Word 2013 Screen... 3

COS 318: Operating Systems

Image Slider Module User Guide

GL500A Application Manual

Hardware. Hardware is the physical components that you knock on, that you can touch. (Monitor, processor chip, CD-ROM drive set.)

Cycle Approximate Simulation of RISC-V Processors

Hands-on with the Sitara Linux SDK

Table of Contents. Contents

Embedded Linux Architecture

ID Flow 6.x Getting Started Guide. An Introduction to ID Flow

Nios II Embedded Design Suite Release Notes

PowerPoint Launching PowerPointX

NSIGHT ECLIPSE EDITION

Placing Text in Columns

Salesforce Lightning Experience

Release Notes. S32 Design Studio for ARM v1.1

Salesforce Lightning Experience Analytics (Dashboard and Reports)

Keil TM MDK-ARM Quick Start for. Holtek s HT32 Series Microcontrollers

Salesforce Service Cloud Snap-Ins for Web

User Manual. Admin Report Kit for IIS 7 (ARKIIS)

Using memory cards (not supplied)

File Cover. Arrange your Gallery into different folder names. (Move your Camera or

Quick Start Guide. v1.1. Copyright 2011 AVID Technologies, Inc. Twinsburg, Ohio USA All Rights Reserved

CodeWarrior Development Studio for StarCore DSP SC3900FP Architectures Quick Start for the Windows Edition

ADS MultiTrace Tutorial v2.0

Model-view-controller View hierarchy Observer

Adobe RoboHelp 9 Voluntary Product Accessibility Template

PowerMAN New Features Guide v5.4 Release December Revised May 2016

Salesforce1 - ios App (Phone)

Qt for Device Creation

Application Development in ios 7

Application Note. Startup DevKit16. History 19 th June 00 TKa V1.0 started 20 th June 00 TKa V1.1 Some minor text corrections

Introduction: -The Beat Kangz

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Getting Started with CppDepend

NETWORK THE HOME 10 FOLDERS APPS

Introduction to computing, architecture and the UNIX OS. HORT Lecture 1 Instructor: Kranthi Varala

Excel 2010 Level 1: The Excel Environment

INFRAGISTICS WINDOWS FORMS 17.2 Volume Release Notes 2017

P&E Microcomputer Systems, Inc. PKGPPCNEXUS

Tutorial Introduction

Datasheet for MiniGUI V2.0.4/V1.6.10

Embedded Linux kernel and driver development training 5-day session

Service Cloud Lightning

Introduction to Microsoft Word 2008

Computer Essentials Session 1 Lesson Plan

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI

Online Accessibility Guidelines

Using colinux to develop under Windows XP

NSIGHT ECLIPSE EDITION

Downloaded From :

Dear I-Life customer, Every I-Life product goes through a rigorous process of sample evaluation and approval before commercial launch.

Lesson 7 Programming Embedded Galileo, Raspberry Pi, BeagleBone and mbed Platforms

Agilix Buzz Accessibility Statement ( )

Empty the Recycle Bin Right Click the Recycle Bin Select Empty Recycle Bin

Revision 1.0.0, 5/30/14

NightStar LX Installation Guide. Version 4.1

CREATING ACCESSIBLE SPREADSHEETS IN MICROSOFT EXCEL 2010/13 (WINDOWS) & 2011 (MAC)

Getting Started with TurningPoint

TI mmwave Labs. Vital Signs Measurement

Microsoft Office PowerPoint 2016: Part 1 (Foundations)

NS115 System Emulation Based on Cadence Palladium XP

This guide will show you how to create a basic multi-media PowerPoint presentation containing text, graphics, charts, and audio/video elements.

User s Manual CAP 531*1.5 Configuration and Programming tool

Chapter 2: Operating-System Structures

Microsoft Word 2007 on Windows

Transcription:

Developing Software for Small Devices Bradley T Hughes Trolltech AS

About Me American - from Amarillo, Texas Software Engineer for the Qt library Came to Norway and Trolltech in May 2000

About Trolltech Founded in 1994 by Haavard Nord (CEO) and Eirik Chambe-Eng (President) Two product lines: Qt and Qtopia Dual licensing strategy Headquarters in Oslo, offices in Brisbane, Australia, Palo Alto, California and Bejing, China Over 130 employees from 19 countries

Challenges Limited resources Screen Processor and memory Input capabilities Use model Different tasks Different mindset Different environment

Typical Usage Used in short bursts For a specific purpose Used in uncontrolled environments Industrial use Safety critical, non-distracting, vital information Consumer use Fashion accessory, expressing personality

Adapting to Usage Requirements User interface must be fast and easy to use Omit non-essential features Highlight most important information Streamline common operations Minimize text input Make it predictable (who has a phone manual?) Theming Personalization, customization

Device Limitations Small screen Little memory (RAM/ROM) Slow processor No floating point unit No keyboard Inaccurate mouse

Common Display Types Small physical size Low resolution PDA 320x240 Phone 176x220 High-end devices have higher resolutions, but same physical size

Adapting to Limited Screen Size Use Qt's layout classes Simplify the user interface Omit features Less text Use widgets that take less space Split into sub-dialogs; wizards Scrollbars and tabbed widgets

Input Limitations Text input is hard and/or slow Touch panels Unstable/jittery No mouse-over events No enter/leave notification No tooltip No auto-raise/highlight Cannot use cursor shape to convey information

Internationalization and Localization Decide early if i18n is needed Design user interface accordingly Use Qt's tr() mechanism Translation is part of the development process Changes to the UI are often necessary Be careful not to postpone translation until just before product launch Icons - a picture is worth a thousand words

Internationalization and Localization (2) Be prepared for l10n issues English: Info Norsk: Opplysninger Apart from Asian languages, English is one of the shortest languages And the list goes on... Symbols, currency, time, culture, reading direction etc.

Memory (RAM) Conserve memory Avoid memory leaks Long time between reboots/restarts Measuring memory use is difficult On Linux, top/ps include shared resources Inaccurate (buffers, cached) Use a memory profiler

Memory (ROM) Tailor the library size Optimize application for size Be careful with inline functions and templates Experiment with compiler options for fine tuning Select fonts True-type takes time to render, needs more code Pre-rendered takes space

Processor Limitations Optimize for speed Loop unrolling, cache coherency, etc. Cache data Lazy initialization Take advantage of idle time Don't trust your instincts use a profiler Perceived speed vs. actual speed Give feedback, preliminary results

Power Management Device can sleep at any time Application may experience sudden time jumps May need to ask device to wake up at a later time Help conserve power Keep application idle (never busy wait) Avoid unnecessary, rapid timer events (animation)

ARM Platform Notes ARM processors have no FPU Kernel traps are extremely slow Best solution: soft-floats Software emulation built into toolchain Not available in older toolchains Alternative: use custom fixed/floating point class Enable framebuffer write-combining in kernel Patch developed by Intel for XScale

Development Tools Cross-compiling toolchain Compiler, linker, loader, utilities Libraries and header files May be available from hardware vendor May need to build your own Emulators Commercially and freely available May not always emulate limited resources

More Development Tools Valgrind Memory checker, memory profiler, cpu profiler Virtual framebuffer (QVfb) Simulated framebuffer on X11 Can emulate a touch screen, different depths, resolutions Not an emulator, applications run natively

Development Hardware Reference boards Useful for development phase Easy to get software running Not well-suited for usability testing Form-factor boards Off-the-shelf hardware USB memory sticks, CompactFlash, BlueTooth Ethernet for PC and/or device

Running on the Device Cross-compile, run from USB key, CompactFlash, etc. Cross-compile, run from NFS or SMB exported file system Flash new ROM via serial console (when developing an entire suite of applications) Use Qt's VNC graphics driver (run on the device, test from workstation)

Debugging Your Software Things will break Many emulators are also debuggers Debuggers for various devices exist You actually debug on the device (a plus) Tedious (constantly moving between workstation and device) Recommendation: remote debugging Debug on device, control from workstation

What to Take Home Writing software for small devices is very different when considering the development process, user interface design, hardware, end-user, and more.