Archive

Posts Tagged ‘UI’

Free Keynote Mockup Templates for Prototyping Mobile, Web and Desktop Apps

July 16th, 2012 Comments off

With Keynotopia Mockup Bundle, you can sketch user interfaces using Apple Keynote.

When your mockups look like simple hand-drawn screens, it’s easier to get feedback on layout and structure, without getting distracted by the detail.

Keynote mockups are better than hand-drawn sketches because you can iterate on them and modify them without having to redraw them.

Tags: , , , , , ,

User Experience Guidelines

February 7th, 2010 No comments

Qt::WA_StaticContents

December 1st, 2009 No comments

Qt Assistant: Indicates that the widget contents are north-west aligned and static. On resize, such a widget will receive paint events only for parts of itself that are newly visible. This flag is set or cleared by the widget’s author. (Link)

But also it prevents to avoid flicking during resizing.

The demo demonstrates the effect of setting the Qt::WA_StaticContents attribute on any widget in Qt 4.5

Tags: , ,

мысли о программировании (тезисно)

October 2nd, 2009 No comments
  • ООП (и его реализация на С++) хорошо подходит для неоднородной команды, когда надо создавать ограничения на использование данных (объектов), чтобы более слабые программисты не натворили больших бед.
  • бездумное использование выделения памяти (операторы new/delete) и умных указателей – показатель не очень хорошей архитектуры. Если в API функции сказано, что надо за собой удалять объект (структуру), так будь любезен не ленись, а то напридумали всякие «помойки памяти» (garbage collection) для ленивых.
    • использование «умных указателей» может быть накладным: Smart Pointer Timings.  При этом класс «умный указатель» должен переопределить многие операторы (например, operator*(), operator=() и так далее) и тогда простая операция на самом деле будет не такой простой:
      smart1->setValue(smart2->getValue());
      При этом всё-таки надо проверять на наличие объекта (if(true == smart1.healthy())), так как возможна ситуация, когда кто-нибудь напишет так: smart1= NULL;
    • уж лучше использовать идею заложенную в IUnknown интерфейсе, когда для подсчёта ссылок используются явно вызываемые методы AddRef() и Release() (конструктор и деструктор у такого класса объявлены защищёнными, что предотвращает неправильный вызов операторов new/delete для этого класса)
    • бездумное объявление виртуальных функций тоже добавляет дополнительные расходы на доступ к методам класса. Смотри презентацию “Virtual Functions“. Для уменьшения накладных расходов, Microsoft даже добавила специальный атрибут при объявлении интерфейсов: __declspec(novtable).
  • При декларации класса на языке C++ необходимо помнить о правиле «большая тройка».
    • При этом не очень подготовленные программисты забывают, что хоть класс состоит из методов и данных, но всё-таки это отдельные сущности и при создании класса память выделяется только для данных.
  • как минимум «простые» приложения можно описать используя парадигму конечного автомата (state machine) – есть состояние программы, которое можно узнать проверяя значения переменных через функции и есть переходы от одного состояния в другое, при этом тип состояния можно легко узнать.
  • Графический интерфейс пользователя вообще неправильно разрабатывать используя объекты. Есть примитивы (могут быть и свои контролы). Есть состояния этих примитивов и переходы. Но в навороченных приложениях создают такую объектную модель, что два соседних контрола не могут взаимодействовать друг с другом напрямую и всё взаимодействие идёт через уровень логики.
  • Даже временные данные можно хранить в SQLite (надо проверить быстродействие) и тогда доступ к данным может быть осуществлён глобально, нет проблем с многопоточностью так как SQLite потокобезопасен и при этом сериализация может быть достигнута довольно простой операцией сохранения таблицы в файл.
  • Исключения ещё хуже чем бездумное выделение памяти – стэк забивают (так как нужно обрабатывать раскрутку исключения), а так же нарушают логику работы.
  • Про мультипоточное программирование вообще молчу. Для многих это сложно.

Rapid Prototyping Tools

September 17th, 2009 No comments

by Dan Harrelson

Prototypes as a design deliverable are on the rise, and for good reason. I am strong believer that prototyping helps us to design better experiences. We are working in a world of rich, dynamic interfaces, both on the web and on our devices. The experiences we design are interactive, responsive, and have emotion. Prototypes allow us to articulate the feeling and function of a design in a way that a wireframe does not. But how do you select the best prototyping tool for the job?

40 tools

Tags: ,

ForeUI

September 17th, 2009 No comments

ForeUI is a handy UI prototyping tool. It can rapidly create static or interactive, skinnable UI prototypes of your website or software. You can use ForeUI to:

  • Create mockup for the GUI in your mind and make others understand quickly.
  • Make working prototype of website or software to collect feedback from potential users.
  • Perform usability testing before releasing the beta version.
  • Generate the schematics that can be inserted in the design documents.

This article give a detailed description on how ForeUI can help you.

Tags: , , ,

SVGMin

September 16th, 2009 No comments

SVGMin a small command-line utility to reduce SVG size by removing redundant information.

Many illustration programs can export the drawing to the SVG format. However, the SVG output is often sprinkled with a lot of extra stuff, mostly so that the file can be read back without a loss of information. This is however not good if the SVG output is the final file targeted for deployment, e.g. for a web site or as a scalable theme in a mobile platforms. The extra baggage in the contents which has no effect on the rendering should be removed to reduce both the download size and the (run-time) parsing time.

Tags: , , ,

Desktop Window Manager

September 15th, 2009 No comments

The desktop composition feature, introduced in Windows Vista, fundamentally changes the way applications display pixels on the screen. When desktop composition is enabled, individual windows no longer draw directly to the screen or primary display device as they did in previous versions of Microsoft Windows. Instead, their drawing is redirected to off-screen surfaces in video memory, which are then rendered into a desktop image and presented on the display.

Desktop composition is performed by the Desktop Window Manager (DWM). Through desktop composition, DWM enables visual effects on the desktop as well as various features such as glass window frames, 3-D window transition animations, Windows Flip and Windows Flip3D , and high resolution support. For more information about the user experience features enabled by the DWM visit the Windows Vista: Features user experience page.

Many of the DWM features can be controlled or accessed by an application through the DWM APIs . The following documentation describes some of the features and requirements of the DWM APIs.

Windows Animation

September 15th, 2009 No comments

The Windows Animation Manager (Windows Animation) is a programmatic interface that supports the animation of visual elements of Windows applications. Windows Animation is designed to simplify the development and maintenance of animation sequences and to enable developers to implement animations that are consistent and intuitive. Windows Animation can be used with any graphics platform including Direct2D, Direct3D, or GDI+.

Basic Concepts

The two fundamental units of an animation are (1) the characteristic of a visual element to animate and (2) the description of how that characteristic changes over time. An application can animate a wide variety of characteristics such as position, color, size, rotation, contrast, and opacity.

In Windows Animation, an animation variable represents the characteristic to animate. A transition describes how the value of that animation variable changes as animation occurs. For example, a visual element might have an animation variable that specifies its opacity, and a user action might generate a transition that takes that opacity from a value of 50 to 100, representing an animation from semi-transparent to fully opaque. A storyboard is a set of transitions applied to one or more animation variables over time.

An application displays animations by constructing and playing storyboards and then drawing sequences of discrete frames as the values of animation variables change over time.

Introducing the Windows Ribbon Framework

September 15th, 2009 No comments

The Windows Ribbon (Ribbon) framework is a rich command presentation system that provides a modern alternative to the layered menus, toolbars, and task panes of traditional Microsoft Windows applications.

The Ribbon framework is a collection of Microsoft Win32 APIs that provides a host of new user interface capabilities for Windows developers and includes both the ribbon command bar and a context menu system. This rich, new command framework offers:

  • Easy implementation for brand new Ribbon applications and straightforward migration of existing Win32 applications.
  • Consistent appearance and behavior across Ribbon applications.
  • Adherence to Windows user interface (UI) guidelines for a first-class Windows experience through accessibility standards, visual style (theming) support, automatic high contrast adjustments, and high dots per inch (dpi) awareness.

Additional: Ribbons are the modern way to help users find, understand, and use commands efficiently and directly—with a minimum number of clicks, with less need to resort to trial-and-error, and without having to refer to Help.