Babilo
Babilo is an Android application widget that I implemented to try out the new
appwidget API in version 1.5. It's based on a design I
formulated prior to Android. The name is inspired by its adherence to the
Babylonian system that has continued to form the basis of our time keeping for
more than 3½ thousand years.
Concept
The concept behind Babilo is to create a practical clock that reports time in
hours, minutes and seconds without using numerals. I attempted to create a design
that was based on a small number of themes and that would be culturally resonant
even if not worth learning or adopting.
- The units that represent seconds are placed in a circle, consistent with
most people's experience of clocks and stop-watches. Being arranged around the
other time indicators means that the indication of seconds can be removed in
contexts where they are not useful while keeping the core display of hours and
minutes intact.
- 'Units of three' are used systematically. Contiguous groups are used to
create 5-second blocks around the outside of the design, three-to-a-side. The
same pattern at the same scale is used to create 5-minute blocks. These
themselves are grouped into four rows of 3 so that each of the bottom rows
represents 15 minutes. The top row of 3 rectangles in the inner square split the
day into three 8 hour spans for morning, midday and evening. The remaining space
is divided into 3 squares. All eight possible patterns over these 3 squares
are used to indicate the hour within the current time-span. The numerical
characteristics of the Babylonian system is reflected in this consistency.
- The design accomodates display in a binary form. Optionally (as in the
present implementation) a third 'tone' can be used to provide a visual hint for
the progress of time.
- The design is compact. Its square form makes it easy to accomodate in most
contexts without wasting space (the Android home screen being one such example).
- Even in the most limited rendering of design in which only the active units
are shown, the time displayed is unambiguous - it can always be inferred which
orientation the clock is in.
I have designs down for a Babilo calendar too, I may choose
to implement this at some later time.
Implementation
Very little effort has gone into the implementation of this. I've built up a
fair bit of experience with the graphics APIs that Android provides so the code
that renders the clock is already fairly tight even in this first iteration. I
will continue to use the widget to broaden my understanding of the relevant APIs
and whats practical for future projects.