Place holder post.
As penguin enthusiasts, we’ve been following the rehabilitation and release of the wayward emperor penguin ‘Happy Feet’. Eel Pie Consulting developed a free, open source Android application which allowed users to track the bird’s progress from their handsets.
Before the penguin was released back into the Southern Ocean it was tagged with a Sirtrack satellite tracking tag. Data from the tracking tag was published as a KML feed on the www.nzemperor.com website. The Penguin Tracker application made use of this feed to provide alerts when a position update was published.
We recently gained access to an Android 2 handset with a 480×800 screen. Previously the application was been developed using a Samsung i7500 running v1.5 of the operating system. Playing with a more modern handset has lead to some visual adjustments:
- Gallery content can now be viewed using the application.
- Main images expand to fill the screen.
- The default colour scheme for new installs moves to black text on white background.
A note about Motorola handsets:
Motorola handsets seem to require a particularly large font size setting. By default, the application requests that article body text is drawn with a font size of 7pt (1 point = 1/72 inch). By way of comparison, the actual Guardian newspaper is printed with 8pt body text.
Motorola users have been reporting extremely small text; one user reported having to use a setting of 18pt to obtain readable text.
Specifying the text size in points rather than, say pixels, should make the application work consistently across devices with different screen sizes and resolutions. It is the responsibility of the handset, which knows the details of it’s own screen geometry, to convert this request into a pixel height.
It is suspected that Motorola handsets are performing this point size to pixel height conversion incorrectly; this is not something which can be corrected easily in application code.
White backgrounds have previously been a requested feature.
The date refinements developer option allows the application to recognise date refinements received from the Guardian Content API when operating in API mode. These refinements point to archived content which is no longer available in the RSS feeds.
The date refinements currently sent by the Content API aren’t quite what we need to be able to browse the entire archive, as the don’t allow us to drill down to specific months or days.
In theory, using the Guardian Lite proxy to alter the refinement values on the server side, should allow access to the entire Content API archive in the future.
Most of this week seems to have been spent hanging around in airports.
During this downtime, several behind the scenes and user visible cleanups have been made, including:
- The text size preference is now applied to the article summary screens.
- Refresh menu option is disabled if no network connection is available.
- Cleanup of excessive gaps in body text.
- Removing duplicated article separators under section headings.
1.54 adds an option to disable the downloading of trail images.
Minimising network traffic has always been a design priority for this application. Data roaming charges of 6 Pounds per megabyte remind why this is important. This feature was implemented in around 20 minutes while transiting through Hong Kong airport.
The new trail image preference can be used to prevent the download of images on the article summary screens. This should reduce data consumption to the absolute minimum.
The article view now has two new menu options.
The share option allows the article headline and short url to be past to email, facebook and twitter applications for sharing.
The open in browser option opens the orginal copy of the article from the Guardian’s website, in your phones browser.
Saved articles are interesting.
The Guardian’s terms and conditions state that content cannot be persisted without refresh, for more than 24 hours. This condition exists to ensure that amendments, corrections or take downs propagate out to all content consumers
This condition means that it is not sufficient to implement saved articles by simply persisting a local snapshot of a given article indefinitely. Guardian Lite takes the approach outlined below.
Every Guardian article has a unique identifier, which is consistent across RSS and the Guardian Content API. Guardian Lite persists a list of these content ids, rather than the full articles. The stored ids are used to build an article set which is fetched and cached for 24 hours (like every other article set in the application). Using the saved content ids, the saved articles can be reloaded from the original sources at any time.
There are some limitations, principally not all articles have redistribution rights allowing them to be persisted in full. These articles carry a redistribution notice in place of the full text.
The 1.31 update introduces support for large screens, a feature which was introduced in version 1.6 of the Android platform. This should enable full screen operation on devices such as the Galaxy Tab. It may also improve font size consistancy on Android 2.1 and 2.2 devices.
While screen size is a 1.6 feature, we have attempted to maintain 1.5 support (In the UK, the Samsung i7500 for example, has no upgrade path to 1.6 or higher). This was achieved by targeting 1.6 in the IDE but not using any of that version’s new features in the application. The relevant parts of the Android manifest files look like this:
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/><supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="false" anyDensity="true" />
This seems to enable correct scaling, while remaining runnable on a 1.5 device.
Additional changes in this release include:
-Widget click throughs now land on the article view, rather than the top stories on favourites view.
-Developer Content API mode.
In theory, the Guardian’s Content API could be used to feed content directly to the end user’s phone.
To this end, the application now has a developer option to access the Guardian Content API directly, rather than using the filtering proxy which the application normally accesses. This feature will require a Guardian API key. It is also incomplete, meaning your mileage will vary.
The most mentioned feedback item over the last month has been small font sizes.
This was something of a mystery as it appears to be correct in the Android emulator and on the real phone which the app is developed against (a Samsung i7500).
However, after adjourning to the pub and viewing the application on several colleagues phones, the font size on some devices is indeed far too small. On inspection the small fields did not have an explicit font size set:
Update 1.22 sets explicit font sizes for all fields. This should result in more consistency across different devices.
Update 1.23 is an interim fix which applies a new font size preference to the article screen. This preference will be progressively rolled out to the remaining screens in coming updates.
Articles can be optionally synced in the background, hourly or daily. Syncing settings are now preserved when the phone is powered off. Automatic article syncing requires background data to be enabled.