Posts Tagged ‘Flex’

Back to SVG and a cup of Java ME

Over the past two weeks I’ve been plowing through tons of SVG code, rereading the good old SVG Essentials reference book and checking out Painting the Web, a more recent title on modern web design and graphics, in preparation for some potential mobile app work with SVG, Java ME, and hopefully some Flex here and there.

Turns out SVG Tiny is the only standard that is supported by most mobile phones to do any decent UI design work for mobile devices. By now all major browsers including WebKit and the clones with their mobile versions support SVG, which is a good choice for mobile devices due to the varying screen sizes, limited bandwidth and memory.

So, I’ve decided to get back to SVG and a cup of Java ME, even though I am still planning to do some Flex dev work.

To refresh my memory on how things work in SVG and speed up UI design I’ll be using Flex with some open source SVG frameworks for prototyping since I am very comfortable in this development environment. Besides, Java ME graphics api is not much different from the core Flash graphics api and should be easy to port to.

After a brief time of setting up my new mobile Java dev. environment, checking out all the emulators, and getting some code moving things, I can tell that I have not missed much in 5 years as far as Java and SVG goes.

A few years ago, I’ve built a full-blown data visualization library in SVG for a corporate portal dashboard solution. This was done back in the days when not many folks knew about SVG, Adobe just released and still supported their IE SVG Viewer browser plugin, and Java portals, XML and XSL were the hottest technologies to use for web apps.

Many things have changed in web application development over the years. Open-source software, virtualization, cloud computing, mobile web, REST, and component-based frameworks are the new norm now.

It’s good to finally see SVG gaining momentum and becoming a standard that is supported and used in web applications and on mobile devices. I think slowly but surely SVG will replace raster images for most web graphics and mobile app UI design needs, as well as enable true scalable GeoWeb that’s beyond raster image tiles backbone.

Expect more posts on Flex, SVG, GeoWeb and mobile Java from now on.

In the meantime, here is a quick Degrafa Tetris game (with source) I hacked last weekend for fun. I came across Mozilla SVG Tetris and just could not resist the temptation.  Tetris running in MS-DOS on UKNC was the first computer game I’ve played back in 1988. And yes, I know Turbo Pascal too, in case you wonder. It was the first programming language most Soviet Computer Science students mastered back then.

Look where we are now.

Flick Flip Book Light

Some folks complained that my default UI skin is too dark, it is hard to read photo descriptions in Flickr Flip Book, and the whole charcoal look and feel used in most Adobe Flex and AIR apps is wearing off.

So, I added new silvery Light UI skin to this app with an option to switch between the default and light skin:

flickrflipbooklighttoolbarsmall

And here is the screenshot of Flickr Flip Book Light:

flickrflipbooklightsmall

It’s a little plain, but easy on the eyes. Maybe I’ll add some album page background pattern options in v.2 to make it stand out and more colorful.

In the meantime, I am planning to do a short how-to with some sample code next, to show how easy it is to add support for multiple UI skins to Flex apps with a well-designed UI and cleanly separated view/layout code and styles.

Interactive BitmapData Perlin Noise Explorer

If you’d like to create your own Perlin Noise music vis or try to produce programmatic natural-looking textures, here is an interactive BitmapData Perlin Noise Explorer for you to play with:

I’ll post some sample configurations for the clouds, sea, smoke, wood grain and brushed steal textures later.

Noise Test

While attempting to build a sample video wall for my Flash video test drive, for loading all the video previews in a 9×9 grid I wanted to simulate that good old “no signal” image and noise you get from a tube.

Here is a sample:

Click on the image and mouse over the noise animation to hear that “no signal” sound effect. You can also View Source and download the tiny bit of code that generates this effect.

As I am sure you already know it’s generated with BitmapData.noise() function.

A while back I came across Keith Peters’s NoiseExplorer that was really handy to pick the color channel settings and other parameters of the bitmapData.noise() function to get that no signal image. The only part that nagged me was to click on the Render button every time I changed noise function parameters.

This sparked my interest in bitmapdata api and prompted me to explore Flex HSlider UI control capabilities, timers and sound effects. Before I knew it, I got too carried away and created an Interactive BitmapData Noise Explorer of my own to test those Flex features and find some use for Doug’s ResizableWrapper container at the time.

Read the rest of this entry »

My AIR Flair and some link drops

Finally, after months of working with Flex, researching, prototyping and developing some real world projects on this wonderful RIA development framework, I am doing an internal presentation on Flex and AIR to our developers and designers.

I had already done a more hyped up presentation on Flash and Flex capabilities that was well received. It was mostly a recount of the great works of Picnik, before they partnered with Flickr, PaperVision3d, Dote Design image gallery, Flip , FotoFlexer, MixBook, Graphita, Visual Complexity catalog, 10×10 by J.J. Harris, FineTune, TuneGlue, Musicovery, ToneMine, BurstLabs, Mindomo, blinkx Video Search, Oskope, experiments by Mr. Doob, Andre Michelle, Lee Felarca, the quietly scheming Ely Greenfield and the great works of Keith Peters who I should thank for getting me hooked on all things Flash.

This presentation is different. I have J2EE, .Net and Ruby developers, IAs and visual designers in anticipation to see what Flex and Air bring to the table and how they are different from AJAX, XUL, OpenLaszlo, and Silverlight.

Read the rest of this entry »