Selasa, 1 April 2014

#95: RDA/RIA development with Apache Flex

Apache Flex
Aplikasi moden banyak mementingkan interface yang menarik. Walaupun untuk melakukan kerja-kerja yang mudah, seperti aplikasi kalkulator, tapi rupa dan rekabentuk aplikasi banyak memainkan peranan untuk pelanggan memilih untuk menggukanan aplikasi yang di develop. Aplikasi-aplikasi yang mempunyai User Interface yang menarik dan responsif sering dipanggil Rich Desktop Application atau Rich Internet Application (RDA/RIA).

Flex adalah projek yang ambe tunggu-tunggu untuk menjadi OpenSource dan akhirnya menjadi realiti setelah Adobe bersetuju untuk meletakkan Flex di Apache Foundation. Jadi sekarang Adobe Flex dikenali sebagai Apache Flex. Sebelum menjadi OpenSource, bayaran lebih $10k dikenakan untuk satu lesen Flex. Bayangkan tools yang sebelum ini bernilai $10k untuk 1 lesen dan direka dengan begitu sofistikated/lengkap diberikan percuma kepada pengaturcara yang begitu admire Adobe Flex yang sangat mahal itu, sudah tentu akan berasa sangat teruja kan?
Rich Internet Application example. Audiotool is a powerful online music production studio right in your browser
Ambe melihat Apache Flex mempunyai potensi yang tinggi dalam development aplikasi dengan User Interface yang responsif, menarik dan lebih lancar berbanding menggunakan pendekatan HTML5 (melalui TideSDK atau TitaniumSDK). Flex Framework menghasilkan output dalam bentuk Flash dan ia boleh diprogramkan menggunakan bahasa ActionScript serta MXML. MXML adalah XML yang menyertakan ActionScript didalamnya. Ia mudah seakan mengaturcara HTML bersama JavaScript. MXML memudahkan kerja-kerja untuk penghasilan User Interface. Berikut adalah contoh kod MXML:
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
        xmlns:flexlib="http://code.google.com/p/flexlib/"  
        layout="vertical"
        >

<mx:Script>
        <![CDATA[
        [Bindable]
        public var prefix: Array = [ {label:"Mr.", data:1}, 
            {label:"Mrs.", data:2}, {label:"Ms.", data:3} ];
           
        ]]>
</mx:Script>
    <flexlib:AdvancedForm id="myForm" undoHistorySize="5">
        <mx:FormItem>
                <mx:ComboBox id="titles" dataProvider="{ prefix }" selectedIndex="0" />                 
        </mx:FormItem>
        <mx:FormItem label="First and Last Names" required="true">
            <mx:TextInput id="firstName" />
            <mx:TextInput id="lastName" />
        </mx:FormItem>
        <mx:FormItem label="Department">
            <mx:TextInput id="dept" text="Biology" />  
        </mx:FormItem>
                <mx:FormItem label="Other">
            <mx:NumericStepper id="age" value="25" minimum="1" maximum="100" stepSize="1" />
            <mx:CheckBox id="like" label="Do you like this code?" selected="true" />
            <mx:RadioButtonGroup id="survey"/>
                <mx:RadioButton id="rd1" groupName="survey" label="It is Okay" selected="true" />
                <mx:RadioButton id="rd2" groupName="survey" label="Normal" />   
                <mx:RadioButton id="rd3" groupName="survey" label="It can use some work" />             
                </mx:FormItem>      
                  
    </flexlib:AdvancedForm>

        <!-- Validation -->
        <mx:Validator id="vldrFirstName" source="{ firstName }" property="text"
                required="true" />
        <mx:Validator id="vldrLastName" source="{ lastName }" property="text"
                required="true" />

        <mx:HBox>
                <mx:Button click="mx.controls.Alert.show( 'Submit Data', 'Alert' )" 
                        label="Submit Data" enabled="{ myForm.isValid }" />
                <mx:Button click="myForm.resetForm()" label="Reset Form" />
        </mx:HBox>
        <!-- <mx:TextArea id="debug" width="600" height="300" />  -->
                
</mx:Application>
Walaubagaimanapun, ambe agak kecewa kerana Adobe telah tidak lagi mengeluarkan update untuk Adobe AIR (Adobe Integrated Runtime) bagi platform Linux. Hanya Adobe AIR SDK versi 2.6 kebawah sahaja ada untuk pengguna Linux (versi terbaru Adobe AIR setakat hari ini adalah 4.0). Banyak fungsi-fungsi terbaru Adobe AIR tidak dapat digunakan di Linux kerana versi 2.6 sudah jauh ketinggalan. Dengan Adobe AIR, aplikasi yang dihasilkan dengan Flex akan dapat dipasangkan di desktop seperti aplikasi native yang lain. Adobe AIR boleh menghasilkan aplikasi native untuk desktop Windows, Mac OSX, Linux (setakat versi 2.6) serta mobile untuk platform BlackBerry, Android dan iOS, serta beberapa device lain seperti TV dan lain-lain.

Adobe Photoshop Express developed using Flex
Antara aplikasi yang notable dihasilkan menggunakan Flex adalah Adobe Photoshop Express. Bagi ambe, jika ia cukup bagus untuk menghasilkan aplikasi untuk Adobe, maka ia cukup bagus untuk menjadi development tools pilihan ambe.

Skinning dan styling melalui Flex juga mudah. Kebanyakan komponen Flex boleh di "skin"kan terus melalui MXML menggunakan CSS. Komponen visual baru juga boleh direkabentuk dan library ActionScript sudah berkembang dan matang, boleh dimasukkan kedalam projek dengan mudah. MXML sebenarnya di translate ke ActionScript sebelum dicompile kepada fail SWF. Penetration Adobe Flash Player kepada semua komputer di seluruh dunia adalah lebih 90%, meliputi operating system Windows, Mac OSX, Linux, Haiku dan lain-lain.

Tiada ulasan: