As the name of this blog implies, my passion is to put pixels on screen. I’ve been doing this for about 23 years now, and last 10 doing it professionally. This has started from the TV-connected consoles, and continued into such projects as Substance and Flamingo that are using the full flexibility of the Swing UI toolkit. Over the last few years i’ve been following the developments in competing offerings, such as Silverlight / WPF, Flash / Flex, Qt, SWT and many browsers-based libraries, with the particular eye on the mobile devices.
The mobile devices have enjoyed enormous capabilities growth over the last few years – mainly driven by the simple market laws. As long as the consumers are willing to pay for the new hardware (and the accompanying software), the companies are happy to divert ever growing resources to satisfy those needs. The desktop / laptop manufacturers, of course, have not stopped pushing their own research facilities, but one of the major attraction of mobile devices lies in the very definition of “mobile”. Features such as accelerometer and GPS are simply not relevant to the desktop machines, and i am still waiting to see a single video that highlights how an application running on the laptop switches between landscape and portrait mode when the user rotates the laptop.
Augmented reality is a particularly blooming field for modern mobile devices. As with any new tool, it is easily overused (something which i have been guilty of), but then you have such incredibly ingenious applications as Sun Seeker:
Most of the applications that overlay directions to the nearest underground station answer a question that can be easily answered by (hopefully friendly) passer-byes. However, if you are a professional photographer scouting a new site for the wedding pictures, or a young couple visiting an open house that wants to know that there is enough sun on the back patio in the summer for the kids to play – Sun Seeker is pretty much the only way that can give you a real answer – with an extra bonus of dynamic visual overlays over the current scenery.
Here is another small video that i happened across:
This lies much closer to my heart – how far can you push the user interaction by manipulating the pixels. Note that i’m not necessarily saying that it’s a good user experience. The reliance on thumb agility might be a little too much, and the animations are a little over the top, but i’m mostly seeing how far the hardware of mobile devices has progressed over the last couple of years.
And finally, today I am thrilled to officially become the member of Android team.
Every month this series is tracking the latest design trends and collecting the best examples of modern web designs. Here is the list for November 2009 with over 2100 links from 57 aggregator posts:
The main goal of Trident project is to provide a general purpose animation library for Java applications. Animations are a natural fit for modern client applications, and Trident has special built-in support for Java based UI toolkits such as Swing and SWT. The latest 1.2dev drop of Trident provides first support for Android, Google’s software stack for mobile devices.
First, a video that illustrates Trident looping timeline that animates the foreground color of an Android button running in an emulator:
And here is the code of the main activity behind this screen:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button button = new Button(this);
button.setText("Hello, Android");
setContentView(button);
button.setTextColor(Color.BLUE);
button.setTextSize(30);
Timeline timeline = new Timeline();
timeline.addPropertyToInterpolate(Timeline. property(
"textColor").from(Color.BLUE).to(Color.RED).interpolatedWith(
AndroidPropertyInterpolators.COLOR_INTERPOLATOR));
timeline.setDuration(500);
timeline.playLoop(RepeatBehavior.REVERSE);
}
Those of you who are familiar with the Trident APIs can see that it is the same exact approach as with Swing and SWT. The only difference for Android is the explicit usage of the color interpolator, since the Android APIs use integers for colors – and the built-in mechanism for auto-discovering the matching property interpolator cannot handle this case without explicit coding in either the app code or future Android code base.
Apart from the explicit usage of property interpolator, the application code does not need to handle the UI threading issues (making sure that the TextView.setTextColor is called on the matching UI thread).
If you’re interesting in using Trident in your Android apps, take the latest Trident 1.2dev (code named Cookie Jar) and add it to your Android project. The project documentation describes the basic terminology of Trident, and will provide more Android-specific examples in the next few weeks.
Some time has passed since Ken Orrhas announced that he has teamed up with Kathryn Huxtable to work on a new Sea Glass look-and-feel for Swing applications, and i thought that it would be interesting to put Substance and its Jitterbug editor to the test.
Since i don’t have the full artwork for Sea Glass, I based the current implementation on the following mockup:
And this is how a Substance sample Sea Glass skin looks like after about half an hour of work:
The skin itself is a 122-line color scheme definition (created in Jitterbug) and about a 100 lines of Java code that associates the color schemes with the relevant control states and control visual areas. Note that this is not supposed to be a perfect reproduction of the target design, but more of an exploration of Substance skinning layer capabilities.