Monday, 19 October 2009

News for Developers from AdobeMax'09

This year AdobeMax was really hot for developers. Even though most of the demos and news rely on beta products, they still offer a lot.
AdobeMax'09 dropped the bombs as with the keynote of the first day. Here are the highlights;

-Flash 10.1 includes mobile support. This is a long waited love story between the mobile world and the flash player. Seems like not much left for them to meet. How would their relation be? well time will tell.. The demonstrations of mobile Flash Player performed on Nokia, Android, Windows Mobile and Palm. Guess which one crashed... ok good guess, seems like Windows is still Windows even it is mobile.
-Flash 10.1 also includes lots of runtime enhanchments. Most of them target Air platform to run with less memory and better integration such as usb support, triggering external applications.

-Ok this one is also another love story, eventhough i didn't start with this one this is the highlight of the show... iPhone running flash applications or should i say flash building applications for iPhone. Since applications built on iPhone are not allowed to execute other codes building a flash player (or JVM) is not permitted. Adobe's approach is totally different but solves the problem. Since they are not allowed to run flash player on iPhone, they convert flash applications into native iPhone code which results installable native apps seperate from flash player. Flash CS5 is needed to achieve this, and it is not even relased as beta yet but it will definetly be a huge impact as it becomes available.

-Mobile movement in Flash also covers flex development. Even though this is not available in public beta of Flex4, Flex will also be available to build mobile apps which include iPhone. Suprisingly the outcome (transitions, layouts) suprisingly looks like native iPhone apps. Flex also lets customizations depending on the platform the application is running on. One important thing is mobile components are different than desktop ones, even though they are used in similar way still you need to design and develop from strach (which JavaFx lets the same components to be used both on mobile and desktop).

-Flex moves to version4, so should the developers.. Flex 4 offers a totaly new namespace "Spark" with still supporting "mx". Using states is much more simplified, new Flash Text Engine is impressive and PixelBender s are amazing. The whole effects and animations library is rewritten (which i plan to write a more deep in detail post). I must admit Chet (the former Java Swing Architect, also author of Filthy Rich Clients) did a great job with that. It is much simpler to take control of the effects with writing custom easing and interpolations using IInterpolator and IEaser. I must tell you Flex is becoming the dream way of a developer to built animations without touching design tools.

-Clouds are the popular topic of the year, so Adobe can not resist to built one and of course by using their server software; The ColdFusion. Coldfusion 9 looks promising, and they also offer an eclipse based CF IDE.
-Livecycle, well if there is a cloud, LC can not be excluded. So here it is LC also comes with cloud support.

All the sessions of AdobeMax is available on AdobeTv. I strongly recommend watching the keynotes, and Chet's Flex session.

Developers has never been so much supported and had available tools from Adobe. Seems like JavaFx, Silverlight and ObjectiveC has broaden the perspective and made Adobe more creative. Lets see when the real products hit the ground!

Saturday, 10 October 2009

Thinking in Flex, local files

Ok, this is not a post related to Bruce Eckel’s hihgly reputed books like C++ or Java, just the title is incluenced from them.

Working with Flex can be a little trickier for regular web developers, specially for the ones who never ever worked with Java Applets. So what flex is and what is flex not, first flex is not a traditional web application and its definitly not a desktop application. Actually flex is a more skilled web application which is pretending to be a desktop application. A widely asked question to me is local filesystem access in Flex, which is something you can't do and also you should not in normal conditions. Since you are developing a web project why would you need to write local files and if you really need this why are you developing a web project instead of a desktop one? I am sure anyone can give pages of reasons but still try to think in Flex, how will you be sure about the security of the file, if its modified externally or what if you rely on that and it just disappears..

However, Flex still offers writing limited local files which are called SharedObjects. First of all SharedObjects are simple, and they should be used for simple tasks in a simple way. Writing to a SharedObject is not like a regular file I/O operation for the developers perspective. You just ask one to be created for you;

var myPrefs:SharedObject = SharedObject.getLocal("MuratsPrefs");

and use it in a simple way by accessing its data object to read or store your values;

myPrefs.data.name="Murat";
myPrefs.data.lastLogin="3.10.2009";
myPrefs.data.browser="chrome";

simply commit your changes;

myPrefs.flush();

or clear whatever it has;

myPrefs.clear();

Actually the file is much or less like a cookie and also referred as a Flash Cookie on TechNote of Adobe. This file is limited to 100kb by default and would ask for permission of the file is exceeds. However this is a bit tricky since the user can modify the size, even to 0kb and can also disable the permission popup which would result blocking the whole access.

I couldn't manage to locate the file on Mac. I tried to load the written file from another application which is built as another swf, and could not get any data. Next i tried to load the same file from the same flex application running in a different browser which also failed.

SharedObjects seems a nice and easy to use tool but they can not guarantee the access, if you need the change your application to a new swf the file would be lost, and suprisingly worst if the client decides to change the browser, still your file would not be reachable. So use them at your own risk.

Friday, 9 October 2009

Adobe WorkflowLab

As a software developer if the necessities, project steps are well documented, I can design and develop the new projects in time, maybe in a shorter time. Else whole the workflow is done by the developer. He/she creates the cycle of the workflow of project in his/her mind and starts developing according to that thought or the workflow he/she hears from the manager.

Today I got a newsletter from Adobe Edge. Sometimes I am bored on these kind of periodic mails. But Adobe's mails interest me and I read them (I receive them monthly). At the ends of the mail there was a link to a new project which is a workflow engine project that excited me. It is named as "WorkflowLab". By this application you can design the steps of a project using a user friendly graphical user interface. And creating a task you can define your applications that you will use in this step. This is a good property of the program. But whole the defined programs are Adobe's tools. I could not see an "other" choice and could not define custom tool. But I saw that next year they will provide this capability.

I used several workflow tools and developed a workflow tool for a company during my internship. None of them was fast as this program and none of them uses low disk space. You can find an install the program from http://labs.adobe.com/technologies/workflowlab/ and you can find detailed information from http://www.adobe.com/newsletters/edge/october2009/articles/article5/index.html?trackingid=EXBIG . If you are looking for discussions and forum you can use http://forums.adobe.com/community/labs/workflowlab/.

By the way, the program is lightweighted and uses 2MB of disk space. The program is free of charge.