QuicklyWidgets

Summary

The goal of Quickly Widgets is to easy and fun to add blocks of functionality to your app, without all the overhead and booking. Generally, PyGtk and other Python libraries have developed very rich functionality. However, this is often at the expense of getting usage and up and running. This can be quite a dismay to a new application developer, as it hard takes a lot of work to get the sense of accomplishment and the feeling that rapid progress will be possible.

Make programming easy and fun. Quickly Widgets have the following qualities: 1. Only one line, or maybe 2 are needed to make them work 2. They can be configured without requiring subclasses or similar hard work 3. They can be extended through subclassing, etc..

Quickly Widgets focuses on 1, accommodates 2, and documents 3 when appropriate.

The quickly-widgets projects lives at: https://launchpad.net/quidgets

Rationale

Ubuntu is focused on opportunistic developer to create quick and fun apps for its platform.

Notes from UDS

= Background behind Quickly Widgets =

Written after working with "TreeView", which takes 100 lines to get info to
show content. Built "couchgrid" that could bind to a couch source, and display
the information in a grid view.

Extended with a filter, then extended with ability to do the work against a
simple python dict.

= Existing classes =

== Widgets ==
 * DictionaryGrid
 * GridFilter
 * CouchGrid
 * PressAndHoldButton
 * AsynchTaskProgressbox

== Dialogs ==
 * Prompts
  * String
  * Integer
  * Decimal
  * Price
  * Yes/No
 * FileDialogs
  * SaveImage
  * OpenImage
  * DirectoryChooser
 * Alerts
  * warning
  * info
  * error

= New Stuff =
 * Glade integration for all
 * tests

== New Widgets ==
 * google maps
 * WebCam
 * MediaPlayer
 * SQLLiteGrid
 * Empathy Buddies
 * Others?

== Fix existing widgets ==
 * Bugs in GridFilter
 * Bugs in DictionaryGrid
 * AsynchTaskProgressbox - keep, axe, change? Replace with a timer?

== Other Namespaces? ==
 * storage: Make it easy to save off data, for example
  * quickly.storage.save_document({})
  * quickly.storage.get_documents()
 * hardware
  * attached_cams = quickly.hardware["cameras"], quickly.hardware.cameras

= Should we port to Vala? =
Would help adoption.  Would be a lot of effort.  The intent of a wider adoption, rather than just a library to aid development with quickly would likely require a more mature approach, less API changes, etc.

It's a bit of a chicken-and-egg issue whether it's worth getting wider adoption but less potential contributors.

Not worth it this cycle.  We'll continue with Python.

As developers of other, non-python apps want to use widgets, we can develop a parallel version of the library that uses vala for those widgets we want.

= Plan moving forward =
Just continue in same vein, adding widgets as they are useful, fixing bugs with existing widgets.


CategorySpec

DesktopTeam/Specs/Natty/QuicklyWidgets (last edited 2010-11-01 13:17:33 by eth3)