IntelliJ IDEA 9 M1: soporte Flex en Linux

ScreenshotAhora que parece claro que Adobe no seguirá desarrollando Flex Builder (actualmente Flash Builder) para Linux, hay que buscarse otras alternativas. IntelliJ IDEA 9 es una de ellas. Existe versión para Linux, pero eso sí, es software privativo y de pago. Dispone de soporte de autocompletamiento, coloreado de sintaxis y debug. Como aporte al Adobe Flex Builder 3, disponemos de una opción de formateo de código. También tiene soporte de Flex SDK 4 (Gumbo) y un interfaz gráfico para pruebas unitarias Flex Unit 4.  Al igual que a Adobe Flex Builder, le falta una vista de diseño (un editor visual de interfaces gráficos .mxml), es decir, hay que teclear el código, no hay drag&drop de componentes.

Hoy he estado probando la aplicación de prueba de FlexStore con el framework Cairngorm de la web de MadeInFlex. Y la he podido echar a andar … no sin antes haberme tirado de los pelos hasta encontrar que para poder usar Remoting, es necesario indicar como opción del compilador:

-services src/services-config.xml

¿Dónde? En las propiedades del proyecto, pestaña «Flex Compiler Settings».

Screenshot-Project Structure Otro detallito más: para poder insertar la dependencia Cairngorm.swc, es necesario pulsar en la misma opción que antes (menú contextual del proyecto, Module Settings, pestaña «Dependencies», Add, Single-entry module library… y especificar la ruta al fichero Cairngorm.swc).

Aún le queda camino para ser igual de rápido e intuitivo que Adobe Flex Builder, pero al menos, los usuarios de Linux ya tenemos un IDE alternativo actualizado. Y si eres desarrollador de un proyecto OpenSource, o bien trabajas en una institución educativa, puedes solicitar una licencia especial gratuita.

How to install Flash Builder on Linux

Lately, I’ve been wondering how to use Flash Builder on Linux. You know, Adobe is apparently putting Flash Builder (formerly also known as Flex Builder) for Linux on hold. So, if you are a Linux user, you’d better look for alternatives to FB (and certainly, there are a few...) However, I think that FB is the most feature-packed IDE for Flex development. So, how could we use that tool in our beloved system? Well, I managed to install it using Wine 1.1.23 on Ubuntu 9.04. This is the process that I’ve followed.

Download Flash Builder for Windows from Adobe Labs. Before the installation, you will have to configure Wine and install some needed DLL files. To do that, first and foremost, you’ll need to download the winetricks application and make it executable:

$ wget http://www.kegel.com/wine/winetricks
$ chmod a+x ./winetricks
$ ./winetricks

Now, you must select vcrun2005 and vcrun2005sp1 to install the needed dependencies : MS Visual C++ 2005 libraries and the related service pack.

Ok, time to install Flash Builder under wine:

$ wine flashbuilder4_b1_win_060109.exe

After finishing the installation, if you try to execute the application, you’ll get the following error:

«Licensing for this product has stopped working . This product has encountered a problem which requires that you restart your computer before it can be launched»

Restart the computer? on Linux? No way! 🙂 Now comes the tricky part, because you have to copy from a Windows installment some needed files:

a) On Windows, open the regedit tool and export the following branches:
HKEY_LOCAL_MACHINESOFTWAREAdobe –> adobe.reg
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesFLEXnet Licensing Service –> flexnet.reg

b) Back on Linux, import the previously saved registry branches

$ wine regedit
(now import adobe.reg and flexnet.reg files)

Now, mount the windows partition and copy this folders to the related wine folder:

$ cp -R /mnt/windows/Program Files/Common Files/Adobe ~/.wine/drive_c/Program Files/Common Files/

$ copy -R «/mnt/windows/Program Files/Common Files/Macrovision Shared» ~/.wine/drive_c/Program Files/Common Files/

Voilá! After entering the Serial Number or choosing the trial version, you’ll be able to work with Flash Builder on Linux 🙂 Enjoy!

Note: don’t forget to visit the WineHQ AppDB page about Flash Builder, for learning some hacks&tweaks that will allow you to address some annoying issues with code completion and the use of spaces as tabs.

Trucos para Flex Builder 3 en Linux (II)

Ni Eclipse ni Flex Builder (Eclipse+plugin Flex) son capaces de formatea código ActionScript de serie. La característica de «code beautifier» de otros lenguajes, como Java, se echan de verdad en falta. El Ctrl-Shift-f es una de las combinaciones de teclas que más se usan cuando la conoces. Por otro lado, el código ActionScript tiende a tener largas cadenas de texto a modo de instrucciones, que ocupan más de 2 y 3 líneas. Si a esto le añades la definición de estructuras de datos en las que los componentes se declaran de forma anidada al padre, un pequeño descuido o pereza a la hora de picar código hacen que éste sea bastante ilegible para todo aquel que no sea el programador original.

¿Existe alguna solución? Sí, Flex Formatter, un plugin opensource para Eclipse que permite formatear el código ActionScript como si de código Java se tratara (¡Ctrl-shift-f vuelve a funcionar!) Imprescindible para los desarrolladores Flex.

Trucos para Flex Builder 3 en Linux (I)

Últimamente paso muchas horas delante de Flex Builder 3, desarrollando junto con otros programadores una aplicación que espero dé mucho de lo que hablar (para bien 🙂 Algunos de mis compañeros desarrollan sobre Windows y ahí FB va fino. Pero en Linux, al ser una versión Alpha, tenemos algunos problemas. Poco a poco los vamos solucionando. Veamos hoy uno de ellos.

Al lanzar una aplicación .mxml, nos encontramos con el siguiente pop-up:

Y el error: «Flash Player not found / Flex Builder cannot locate the required version of Flash Player. You might need to install Flash Player 9 or reinstall Flex Builder. Do you want to try to run your application with the current version?» Si pulsamos en «Yes» todo funciona correctamente. Pero ese popup es un verdadero tostón. ¿Cómo evitarlo? Bien, tras muchas vueltas, la solución es sencilla (como todo, cuando lo conoces 😉 :

Basta con lanzar FlexBuilder usando el script Adobe_Flex_builder.sh que se genera en la carpeta de instalación de FB. Ese script inicializa la variable MOZ_PLUGIN_PATH que apunta al directorio de plugins de Firefox (donde deberías de tener tu plugin Flash bajo el nombre de fichero libflashplayer.so )

El problema añadido es que ese script no suele funcionar :-O Así que lo mejor en esos casos es ejecutar a mano lo que el script se supone que automatizaría:

$ export MOZ_PLUGIN_PATH=$HOME/.mozilla/plugins
$ eclipse -Xmx 512M

La primera línea define la variable de entorno MOZ_PLUGIN_PATH y la segunda incrementa el tamaño máximo del heap de la JVM a 512MB (útil para que FB no se atragante con errores de memoria insuficiente). Ya puedes decir adiós al dichoso popup.

Flex Builder 3 para Linux: el gran olvidado de Adobe

El 14 de Agosto de 2008, Adobe publicó la versión alpha 4 de Flex Builer 3 para Linux. A pesar de ser una versión alpha, funciona bastante bien. Tiene al menos, cuatro grandes pegas: la primera que hay que hacer malabares para hacerlo funcionar con el «nuevo» SDK de Adobe AIR (1.5.1).  La segunda es que no dispone de «Design Mode». Es decir, no podremos hacer ningún diseño de pantalla en modo gráfico al igual que se puede hacer con Flex Builder en Windows. El tercer inconveniente es que no funciona en Eclipse 3.4 Ganymede.  Esto es especiamente grave, porque fuerza a tener instalada una versión anticuada de Eclipse sólo para que Flex Builder funcione.  O bien seguir una ristra de pasos a modo de parche que la propia comunidad de usuarios ha publicado (y que en Linux sólo parece funcionar a algunas personas).

El cuarto inconveniente es que algunos componentes Flex sólo están disponible en Linux como modo trial (es decir, para probar, y si te gusta, comprarlos…) Por ejemplo, el componente «Flex Data Visualization» de la figura tiene una marca de agua al ser compilado en Linux que indica que estamos usando una versión trial.

Esas son las pegas principales. Que no serían tales si los desarrolladores de Adobe para Linux se dignaran a indicar si tendremos versión de FB final para este sistema operativo o no. Me imagino que algo tendrán que hacer dentro de 234 días. ¿Por qué ese número? Muy sencillo, porque el FB 3 muestra en la ventana inferior de Eclipse este bonito mensaje contínuamente:

No es cuestión de que los linuxeros lo queramos todo gratis. Es más, los propios usuarios de Flex Builder para Linux han escrito una carta abierta a Adobe para que, por favor, les permitan comprar una licencia con el producto actualizado para Linux.

No todo son críticas. Hay que alabar que Adobe haya liberado bajo MPL el Flex SDK, lo que en otras palabras, viene a decirnos que «si no os gusta el Flex Builder para Linux que os hemos preparado, ¿por qué no os construís vosotros mismos uno?». No es un buen trato a los usuarios pero… alguno se lo ha tomado en serio y ya ha desarrollado una primera versión de  un plugin para desarrollo Flex en NetBeans (recordemos que FB corre sobre Eclipse).  Por el momento no tiene resaltado de sintaxis – sí en la versión SVN – ni Desing Mode, pero todo se andará. Además, es software open source, por lo que evolucionará.. y si FB no se pone las pilas, lo hará muy rápido.

No es la primera vez que Adobe llega a desarrollar para Linux un producto hasta etapas muy avanzadas del proyecto para luego abandonarlo. Los más viejos del lugar recordarán el fiasco de Adobe FrameMaker para Linux, que Adobe desarrolló hasta una versión beta (muy usable, la probé personalmente) y que en Noviembre de 2000 decidió abandonar.

¿Qué opinión os merece todo esto? ¿alguien de Adobe en la sala ;-)? ¿algún desarrollador de Flex en Linux que haga uso de FB u otro entorno?