February 28, 2008

Mobile development: moving targets

Filed under: Development,Flash — Steve @ 12:26 PM

Based on an enquiry about video and audio streaming from a mobile phone recently, I was researching what’s available last night and came across www.qik.com. Qik’s platform allows ‘real-time’ streaming (it looks like there’s a transcode to Flash video happening somewhere – ‘near real-time’ might be more appropriate) from a phone to its web site. At the moment the Qik system is available on a few Nokia phones, with additional handset support being added as time goes on.

Whenever I’ve looked at mobile development in the past, it’s been focused on Flash, and I’ve always concluded that the support was either too patchy and that as phones become more capable, the mixture of Flash Lite and ‘full’ Flash 8/9 made it difficult to identify which one to target for maximum coverage and future-proofing. Sara’s recent work and research for Warwick’s mobile site also threw up some interesting issues; when I looked into support for the top ten phones on that list, Flash support was either non-existent or a fairly even mix of the two. Flash Lite or Flash are no good for this kind of application anyway; Flash now supports video on mobile, but only for playback. For capture you need access to the system APIs, and Flash doesn’t have those kind of privileges. For application and system-level access, Java/J2ME or C++ are generally the only option.

Nokia has a good developer site (Forum Nokia), so I thought I’d have a look at what’s needed to write a small application that grabs video from the device and streams it via RTSP. It’s at this point the platform variation problem became apparent again. Even for a single manufacturer (albeit a big one like Nokia) there are a number of platforms and entry points (Symbian, Maemo, Python, S60, S40, S80, Flash Lite, Carbide etc.) which means having to choose from a long list of SDKs and carefully identifying your target device/s, before getting started. Once you’ve done this however, it’s relatively easy to get your chosen SDK into Eclipse (including a nice emulator for testing) and start writing, and I had something basic written quite quickly.

I have no prior experience of mobile application development whatsoever, so I may be completely wide of the mark in saying this, but what strikes me from looking at the Nokia Developer information is that mobile development consists of a high number of constantly-shifting targets. I guess once you’ve written an application for a platform or target device it’s likely that porting it over isn’t difficult, but actually getting started seems to require that you narrow your choice down to a relatively small subset of devices and start there, then work your way across/through your list of target devices, hoping the next generation isn’t too far removed from the current one and doesn’t arrive before you’ve finished. Qik appears to be doing just that, adding devices as quickly as it can port its application, but for a (currently) limited use-case such as mine it seems like a lot of effort. Maybe Android fixes some of this, but then you’d only have to start learning the iPhone SDK as well. Sigh…

February 26, 2008

AIR Linux beta–testing

Filed under: AIR,Flex — Steve @ 8:20 PM

Writing about web page http://www.jamesward.org/wordpress/2008/02/20/adobe-air-on-linux-pre-beta-testers-needed/

There’s a post on James Ward’s blog asking for beta-testers for the forthcoming AIR client for the platform. Kevin Lynch recently demoed an alpha version of the client at Engage2008 and although its still early days (release is scheduled for sometime later this year) at least it demonstrates that Adobe is actively working on getting AIR to Linux as soon as possible.

February 25, 2008

Flex 3, Air 1.0 and Adobe Open Source

Filed under: Adobe,AIR,Flash,Flex — Steve @ 7:36 PM

Adobe announced a trio of important new products today; AIR is now 1.0 and ready for download, and the Flex 3 framework and Flex Builder 3 development suite were released at the same time. There’s also a new site showcasing the open-source frameworks (FlexSDK, BlazeDS and Tamarin). It looks like Flex Builder 3 will be free for education users, just like Flex Builder 2, but as yet the application form hasn’t been updated.

February 24, 2008

‘I hate Flash ads’

Filed under: Flash — Steve @ 9:31 PM

Writing about web page http://arstechnica.com/journals/apple.ars/2008/02/21/adobe-employees-say-they-know-nothing-of-flash-on-iphone

No Flash means fewer ads. This is a very good thing indeed.

Erm, no it doesn’t. I swear these people actually believe that Flash is solely responsible for the existence of advertising on the internet. Listen up: once Silverlight and HTML5 get here, all those animated ads you can currently (and easily) block with FlashBlock are about to get even more annoying. Wait until DHTML ads properly arrive and you have DIVS flinging about about all over the page, and then remember the days when annoying advertisements stayed in their little square boxes. Flash isn’t just web advertising, and web advertising doesn’t need Flash to be annoying.

Sheesh.

February 22, 2008

Logitech GT5 Wheel

Filed under: Uncategorized — Steve @ 1:11 PM

Writing about web page http://www.logitech.com/index.cfm/172/4312&&cl=us,en

I want one…

February 13, 2008

AS3 Yahoo Maps API

Filed under: Apis,Flash,Flex — Steve @ 10:25 PM

Yahoo has just released an Actionscript 3 API for Yahoo Maps:

The all-new Yahoo! Maps component for Flex 3 enables you to add a map to a wide-range of web and desktop applications. Included in the API is support for other Yahoo! APIs including the geocoder, local search and traffic APIs along with an advanced marker and overlay manager to allow you to easily represent data on the map. Using the YahooMap component in your Flash, Flex, Ajax or AIR projects gives you the ability to develop anything from a simple map mash-up to full application utilizing Yahoo! Maps.

Adding maps to your project is as easy as importing the SWC to your Flex project, then adding the YahooMap class:


import com.yahoo.maps.api.YahooMap;
var yahooMap:YahooMap = new YahooMap("myMap", stage.stageWidth, stage.stageHeight);
this.addChild(yahooMap);

YahooMaps SWC
API Documentation

Flash debug player reinstallation

Filed under: Adobe,Flash,Flex — Steve @ 8:59 AM

Writing about Flash player issues from Blogbuilder news

We’re having one or two issues with the 9,0,115,0 version of the Flash Player at the moment, and it reminded me that I was going to post something about re-installing the Flash debug Player. If you are using Flex, updating the Player via the normal mechanism will overwrite your debug player and prompt the compiler to warn you that it can’t connect to the debugger.

There are a couple of ways to fix this – the Flex install has a copy of the player under its /configuration/player directory – just reinstall this version over the existing one. A better solution is to grab the latest debug player from the Adobe Developer site, that way you’ll have the most up to date version.

February 8, 2008

Blog stats

Filed under: Uncategorized — Steve @ 12:34 PM

Analytics

Only one iPhone user?? And that was probably Greg. Uncool…

Flex/Cairngorm custom event problem

Filed under: Flash,Flex — Steve @ 11:59 AM

I came across a problem yesterday where I was using CairngormEventDispatcher to dispatch an event each time a button was clicked. I defined a Cairngorm event instance then triggered it on the click event:


import uk.ac.warwick.recorder.control.StopEvent;
private var myEvent:StopEvent = new StopEvent();
<mx:Button id="stopBtn" label="Stop"
height="25" width="55" click="CairngormEventDispatcher.getInstance().dispatchEvent(myEvent);"/>

Which seemed to work fine, until I pressed the button again, at which point the debugger threw this exception:

TypeError: Error #1034: Type Coercion failed: cannot convert flash.events::Event@91ce331 to com.adobe.cairngorm.control.CairngormEvent.

The reason for this is that Flash creates an internal clone for an event that has already been dispatched, and importantly the redispatched event is no longer a Cairngorm Event, it’s now just a Plain Old Event. This is true for any custom event in Flex/Flash. One workaround is to generate a new instance of the event type each time it needs to be dispatched, like this:

import uk.ac.warwick.recorder.control.StopEvent;
<mx:Button id="stopBtn" label="Stop" height="25" width="55" click="CairngormEventDispatcher.getInstance().dispatchEvent(new StopEvent());"/>

There are other ways to do this, including overriding the event clone method, but the above solution worked for me.

February 6, 2008

Aviary – integrated creative tools

Filed under: Uncategorized — Steve @ 1:20 PM

Writing about web page http://a.viary.com/

Via Ryan Stewart’s blog, I’m quite taken with Aviary, a new set of integrated Flex/AIR applications that provide a range of creative tools. Integrated is the keyword here, because what they’ve done is to take a modular approach to the applications (there are separate applications for image-editing, vector drawing, 3D modelling, audio editing, video editing, layout and publishing, a word-processor and many more) while allowing them to work closely together, kind of like the Adobe Creative Suite tools work:

You can import a swatch from Toucan into Phoenix, while doing complex bitmap processing of a 3D object developed in Hummingbird. Finally, you can take your finished artwork and lay it out in Owl as the DVD artwork for a music CD you and your friends put together in Roc and Myna and offer it for sale in our marketplace, Hawk.

The other useful aspect to this is that the suite also allows collaborative working and sharing, so documents created in each application can be worked on by a team. Using these tools as an AIR application on the desktop, then seamlessly sharing it with others so they can work on it sounds like a great real-world application of the AIR concept.

Older Posts »