By Nathan Willis
August 28, 2013
K-9 Mail, a popular free software email client for Android, released
version 4.4 recently, marking the application's first stable update in
nearly a year. The new version adds several important new features,
although it also includes user interface changes that some users have
found disagreeable.
Version 4.400 was released on June 26, following several weeks of
beta testing. The application's interface was updated—in some
cases, to line up with Android's new UI guidelines, such as moving the
"..." menu button from the bottom of the screen to the top. There is
also support for a pull-down-to-reload gesture, which is a feature
common to a lot of contemporary Android applications, and the
notifications have been refreshed to take advantage of Android 4.1's
revamped notification style. That style incorporates more colorful
thumbnail images from the application, in concert with less intrusive
layout and text settings. But the new notifications can also be
expanded with a touch gesture, which in K-9's case means more
new-message summary text is visible without opening the app itself.
Also noteworthy is support for a split-screen message reading
interface, where the list of messages from the currently-selected
folder remains visible while the message being read is opened on the
other half of the screen. The folder view can also display an avatar
image of the message sender (if that sender is in the contacts
database), although this feature can be turned off in the app
settings.
The new version also sports K-9's first implementation of
conversation threading, although this implementation is not without
its quirks. A message thread is marked by a number-in-a-bubble
indicator on the right-hand side of the folder view. The number, as
you would expect, shows how many messages there are in the thread.
But what you might not expect is that tapping it does not open up the
thread. Instead, it opens up a folder-like "thread view" with each
individual message listed in summary form; you must still click
through each message one at a time to read them. Although it is hard
to draw general conclusions, in my own tests I found that K-9 only
recognized threads where the messages arrived in sequence,
uninterrupted by messages with other Subject headers. That does take
some of the usability out of the thread view, but perhaps mileage
varies.
The UI refresh includes plenty of nice, but small, touches, such as
using a different background color for read and unread messages in the
folder view, plus a more easily distinguished read/unread indicator
bubble. There are also improvements in message composition for
right-to-left languages, and the app widget can now display the total
number of unread messages from the "Unified Inbox" view that
encapsulates all accounts.
Under the hood, several IMAP improvements were rolled out, too,
such as server-side search (although at the moment, server-side search
is limited to searching on the Sender and Subject fields), and support
for the "forwarded" message flag. Previous releases also had bugs in
detection of the spam folder as an IMAP SPECIAL-USE folder,
which have now been fixed. This allows multiple email clients to
access the same spam folder even if it is named "Spam" in one client
and "Junk" in the other. There are also several improvements in area
of user notification: the user is now notified on SSL certification
validation failures, when a new K-9 will trigger an update to its database, and there is a "what's new in this update" screen
accompanying every app update (and one that, admirably, uses very
little technobabble in its explanations).
Feedback
Despite the improvements, K-9 4.4 has its share of quirks, and when
it was first released there was quite a bit of hostility among users
about some of the UI changes. For example, several users complained
that the new toolbar buttons are so small that they are hard to tap on
a phone, or (similarly) that the "checkbox" button for selecting a
message was so small that it is hard to tap without opening the
message.
Others complained that the "archive" and "mark as spam" buttons
were removed from the toolbar entirely, and relegated to the "..."
menu. Along the same lines, the "empty trash" function has been moved
to the "long press" pop-up menu in the message view, which at least
one user found difficult to discover. Along the way, the k-9-mail
mailing list accumulated the usual assortment of "can't you put it
back the way it was in previous releases" complaints, mixed in with
actual bug reports.
It is difficult to know how much weight to assign to many of these
UI criticisms. Many times, a user's vitriol about one particular UI
decision boils down to that particular button being the feature that
they make the most use of—which is not a design metric that
scales to large groups. On the other hand, small UI annoyances are
magnified every time they are re-encountered, and email remains one of
the most heavily-used applications for the majority of users. It is
hard to exaggerate how many UI nuances go into making a slick email
client "feel" better than a merely mediocre one.
But it is important to note, also, that a recurring trend among
many critics of the new version of K-9 Mail is that those critics have
their devices set to automatically download and install updates.
Whatever aggravation they feel when the UI changes is surely
compounded by not having advance warning of the change, but it is hard
to muster too much sympathy when automatic-updating can be so easily
switched off.
To be sure, there are still some UI issues to be ironed
out (for instance, button size is a very real concern, given the
screen real estate of the average phone). But on the whole, K-9 does
a remarkable job of presenting email in a lightweight and
easy-to-navigate package. There are several desktop clients that
could learn a thing or two about simplifying the interface and
judicious layout from K-9. It is an even more impressive accomplishment that
K-9 Mail is one of (if not the) best email clients for Android, while
remaining a volunteer-driven free software project.
Comments (5 posted)
Brief items
today I finally achieved an important milestone in my involvement with #gnome: I tricked somebody into taking over a module maintainership.
—
Emmanuele Bassi
Developers everywhere - PHP is not the same as it was even two
years ago. Stop acting like it. The language and the community
have both changed significantly. In many ways PHP is just now
starting to come into its own. In many ways, the PHP community has
gone back in time - back to relive the days that should have been
spent building the tools and libraries that were never
built. Another Magento is not going to appear. It will not
happen. Stop worrying about it.
—
Jarrod Nettles
Comments (2 posted)
Version 1.0 of the Calibre electronic book management system has been
released. "
Lots of
new features have been added to calibre in the last year — a grid view of
book covers, a new, faster database backend, the ability to convert
Microsoft Word files, tools to make changes to ebooks without needing to do
a full conversion, full support for font embedding and subsetting, and many
more."
Comments (6 posted)
Version 1.10 of the Upstart init replacement has been released. New in this edition are upstart-local-bridge (a bridge for jobs on local socket connections), a new "reload signal" stanza that will allow jobs to specify a custom signal (rather than SIGHUP) to send to the main process, shutdown and re-exec fixes, and a new Python 3 module.
Full Story (comments: none)
Git v1.8.4 has been released. This release updates the Cygwin port as well as the helpers for MediaWiki, OS X keychain, and remote transport, and adds numerous new options for various Git commands.
Full Story (comments: none)
Newsletters and articles
Comments (none posted)
On his blog, Björn Balazs
writes about the recent effort to "reboot" the KDE
human interface guidelines (HIG). There are three major sections in the HIG (structure, behavior, and presentation) and the team has a first draft of the behavior section. "
We explicitly ask about your opinion. Please read the guidelines and make sure that the text is informative and comply with developers' requirements. The content should be both generic and comprehensive, and help to make KDE awesome. But we are also interested in support. If you are able to create nice sample UIs with Qt please contact the usability team via the kde-guidelines mailinglist."
Comments (2 posted)
Larry Garfield
introduces
some recent changes to the PHP language. "
PHP 5.5 added a
feature called generators. Generators are in some sense a greatly
abbreviated syntax for iterators, but being so simple makes them
considerably more powerful. Essentially, a generator is just a function
that returns-and-pauses rather than returns-and-ends, and what is returned
is not a value but an iterator."
Comments (52 posted)
After
releasing GNOME 3.9.90, which is the first beta of the 3.9 development branch, Matthias Clasen
reflects on what is coming in GNOME 3.10. New features include a combined system status menu, some changes to control-center, the new Maps application, and more use of "header bars". "
Our previous approach of hiding titlebars on maximized windows had the problem that there was no obvious way to close maximized windows, and the titlebars were still using up vertical space on non-maximized windows. Header bars address both of these issues, and pave the way to the Wayland future by being rendered on the client side."
Comments (107 posted)
Over at the Lanedo blog, Michael Natterer explains
recent work the company has done in conjunction with Xamarin to better
integrate GTK+ with Mac OS X. The work involves embedding Quartz
widgets into GTK+, plus properly handling input events.
"Fortunately, event handling in GTK+ and Quartz are similar:
Mouse events are delivered directly to the GdkWindow / NSView they are
happening on. Key events get dispatched to the top-level GdkWindow /
NSWindow which is in charge of forwarding them to the focus widget /
first responder."
Comments (none posted)
Barney Desmond
talks
about an rsync performance problem and its solution; the result is an
interesting overview of how rsync works. "
Most of the activity in
this MySQL data file occurs at the end, where more zeroes had been written
on the sender’s side. rsync hits this section of the file and is
calculating the rolling checksums as normal. For each checksum, it’s
referring to the hash table, hitting the all-zeroes chain, then furiously
traversing the chain skipping over unusable chunks. Things are now possibly
hundreds of times slower than normal, and the backup job has been running
for over a week with no sign of finishing any time soon; not
sustainable."
Comments (18 posted)
Page editor: Nathan Willis
Next page: Announcements>>