Flex Nedir?
Adobe ya da o zamanki adıyla Macromedia, Flash MX sürümünü duyururken RIA adı verilen bir kavramla da tanıştırdı bizleri. Bu, aslında Web 2.0′ın göz kırpmasıydı kullanıcılara. Artık internette sunulan içerik daha “zengin” olacak, kullanıcıyla etkileşim için standart HTML’in sunduğu formlar, butonlar dışında, daha çok masaüstü uygulamalarda görmeye alışkın olduğumuz menüler, efektler gibi gelişmiş, göze hitap eden ve üretkenliği artıran bileşenler kullanılabilecekti. Nitekim öyle de oldu. Beklentiler yükseldi. Artık bir Web sitesinin sadece işlevini görüyor olması yeterli değil, bunu estetik bir arayüzle kullanıcılara sunması ve etkileşimi artırması da önemli öncelikler arasında yerini aldı.
Arayüzü kötü bir uygulamanın, cevher niteliğinde olsa bile kullanıcılar için hiçbir anlam ifade etmediği anlaşıldıkça, arayüz tasarımı, uygulamaların diğer bölümlerinin geliştirilmesinden ayrı olarak ele alınıyor artık. Bu anlamda Model – View – Controller (MVC) adı verilen bir geliştirme yaklaşımıyla, veri katmanı (Model), bu verileri işleyip kullanıcının istediği şekle getiren kontrol katmanı (Control) ve bu katmanların kullanıcıyla etkileşmesini üstlenen sunum katmanı (View) şeklinde üç yapı ile birbirinden daha iyi soyutlanmış olarak, daha efektif yazılım geliştirme süreçleri planlanabilmekte.
Adobe bu gelişmeleri ve ihtiyaçları göz önünde bulundurarak 2004′ün mart ayında yeni bir yazılım geliştirme platformunu tanıttı: Flex. Böylece arayüzün (View) diğerlerinden ayrı olarak geliştirilip daha sonra diğerlerine kolaylıkla entegre edilebilmesi de basitleştirilmiş oldu.
Nedir ?
Bu kadar gevezelikten sonra isterseniz Adobe Flex’in ne olduğunu daha somut ifadelerle anlatalım. Adobe Flex aslında bir yazılım değildir. Birçok şeyi birleştiren bir platform olduğu söylenebilir. Kısaca göz atarsak;
- XML tabanlı MXML adı verilen, kendine has bir dili vardır. Bu dilde yazılan uygulamaların, derlenerek SWF haline getirilebilmesi için Flex Compiler adı verilen derleyici ücretsiz ve açık kaynak olarak sunulmaktadır.
- Anlaşılacağı gibi Flex, Flash tabanlı uygulamalar (SWF) üretir ve bu yüzden MXML’in yetersiz kaldığı durumlarda Action Script kullanımına da izin verir, hatta bunu destekler de diyebiliriz. Zaten biraz aşina olduğunuzda göreceksiniz ki, çok basit olmayan uygulamalar için MXML’in yanında mutlaka Action Script kullanmak gerekiyor.
- MXML ve Action Script ile uygulama geliştirmek için derleyicisi yeterli olsa da, daha verimli bir geliştirme ortamı olarak Flex Builder adı verilen IDE de kullanıcılara sunulmakta. Ancak ne yazık ki, bu yazılım ücretsiz değil. Yine de eğitim amaçlı kullanılmak istenirse, https://freeriatools.adobe.com/flex/ adresi aracılığıyla ücretsiz bir lisans alınabilmekte.
- Flex, Flash tabanlı uygulamaların Web ortamında kullanılmak üzere tasarlanmasını kolaylaştırarak (Flash’a göre), geliştiricinin gereksiz detaylarla uğraşmasını engeller. Bu amaca adanmıştır, bu yönüyle Flash’tan farklıdır.
Özellikleri, Yetenekleri
Flex ile uygulama geliştirmek için her ne kadar sadece derleyicisi yetse de, çoğu tasarımcı için bu yeterli değil çünkü Flex Builder’ın MXML ve ActionScript işleme yeteneği, kodları otomatik oluşturabilmesi, kod önerileri sunması, düzeltme yapması, kodları renklendirmesi, derleyicide otomatik derleyip çıkan hataları açıklayıcı olarak göstermesi gibi özellikleri kendisinin kullanılmasını neredeyse vazgeçilmez kılıyor.

Flex Builder, önceleri kendi başına bir programken (aynı Dreamweaver gibi) daha sonra Java, PHP ya da C++ geliştirmede kullanılan Eclipse üzerine bir eklenti (plug-in) olarak kurulup bu şekilde kullanılmak üzere indirmeye sunulmuş. Şu anda Eclipse’e bütünleşik olan sürümünü indirebileceğiniz gibi, “benim Eclipse’im var” derseniz eklenti olarak da indirip kullanabiliyorsunuz.
Windows sürümü oldukça başarılı olmasına rağmen, Linux sürümü henüz deneme aşamasında. Ama yine de, ben, Linux üzerinde gerekli ayarlamaları yaptıktan sonra gayet güzel sonuçlar elde ettim.
Flex çok kapsamlı bir geliştirme ortamı sunuyor bizlere. Yazdığımız uygulamayı neredeyse her türlü teknolojiyle beraber kullanabiliyoruz. Her çiçekten bal alabiliyoruz diyelim.
- Flex, dış dünyayla etkileşim için çok farklı seçenekler sunmakta. XML olarak girdilerin, Web servislerinin, FMS, Red5 gibi multimedya sunucularının, CSS ile sistematik biçimlendirmenin, PHP, ASP.NET, ColdFusion gibi dinamik Web programlama dillerinin, istemciler arasında mesajlaşmanın, uygulama sunucusu (application server) tarafından paylaşılan bilgilerin (örneğin Java’daki bir nesne) RemoteObject yapısıyla ortak kullanımının bir arada bulunduğu bir geliştirme platformu düşünün. İşte Flex’in bal aldığı çiçekler!
- Bileşen (component) tabanlı yapısıyla, katmanlara ayrılabilmesi ve her katmanın diğerlerine minimum bağımlılıkla geliştirilebilmesi önemli bir özellik. Flex’in kendi içerisindeki her türden bileşenin (yazdırmadan tutun, drag&drop desteğine, charting bileşenlerine kadar) haricinde, kendi özel bileşenlerinizi yazarak birçok projede ortak kullanmak da mümkün.
- Action Script desteğiyle, belli olaylar gerçekleştiğinde, belli fonksiyonların tetiklenmesini sağlamak mümkün.
- Durumlar ve geçişler (states, transitions) ile Web uygulamalarına yakışacak şekilde durumlar belirleyebiliyor, bu durumlar arasındaki geçişlerde özel efektler kullanabiliyoruz. Bu özelliklere sahip uygulamalar Flash ile yapılmaya çalışıldığında çok zahmetliyken, burada birkaç satır MXML koduyla göze hitap eden uygulamalar yazabiliyoruz.
- Web dışında Adobe AIR ile çalışabilen uygulamalar yazabiliyoruz. Böylece Flex ile yazdığımız uygulamalar masaüstü uygulama olarak da çalıştırılabiliyor. Adobe AIR’in kurulu olduğu bir sistemde çalışan Flex uygulamaları kolaylıkla yazılabiliyor. Hem de bunun Web uygulaması yazmaktan neredeyse farkı yok!
Kullanım Alanları
Kısaca Flash uygulamalarının kullanıcıyla etkileşim amaçlı yani arayüz olarak kullanıldığı tüm alanlar, Flex’in de kullanım alanları içerisinde. Bunların başlıcaları; e-ticaret uygulamaları, masaüstü uygulamaların online sürümleri, multimedya uygulamaları, eklenti ve widget’lar (örneğin Facebook için), gerçek dünyadaki varlıklar için kontrol uygulamaları (örneğin bir deniz aracının internetten takip edilmesi), masaüstü uygulamaları (Adobe AIR ile).
Bunlar sadece örnek. Flex’in kullanım alanlarının sınırı yok. http://www.flex.org sitesindeki Showcase’den farklı örnekler görebilirsiniz.
Örnek Bir Uygulama
Yazımızı, gözümüzde canlanması açısından örnek bir uygulamanın MXML ile nasıl yazılabileceğini göstererek bitirelim. MXML’in bileşen tabanlı yapısıyla estetik ve fonksiyonel uygulamaların nasıl birkaç satır kodla halledilebildiğini kendi gözlerinizle görün.
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”> <mx:HBox top=”10” left=”10″> <mx:HSlider minimum=”−30” maximum=”30” value=”−10” toolTip=”Rotation” change=”myimg.rotation=event.currentTarget.value” liveDragging=”true” /> <mx:HSlider minimum=”100” maximum=”300” value=”100” toolTip=”Size” change=”myimg.height=event.currentTarget.value” liveDragging=”true” /> <mx:CheckBox label=”Visible” change=”myimg.visible= event.currentTarget.selected” selected=”true”/> </mx:HBox> <mx:Image id=”myimg” source=”@Embed(‘mypicture.jpg’)” height=”100″ top=”60″ left=”30″ rotation=”−10″> <mx:filters> <mx:DropShadowFilter /> </mx:filters> </mx:Image> </mx:Application> |
Görüldüğü gibi kolay anlaşılır XML kodlarından ibaret. Her komut için mx adlı bir namespace kullanılıyor. Gerisi component’ler ve bunların özellikler (property) ile kontrol edilmesi üzerine kurulu. Bu örnekte HBox, HSlider, CheckBox, Image, DropShadowFilter kullanıldı. Bunların hepsi birer component ve görüldüğü gibi iç içe de kullanılabiliyorlar. Yukarıdaki kodların çıktısı olan uygulama:

Kaynaklar:
- The Essential Guide to Flex 3, Charles E. Brown, Friends of Ed Publishing
- Getting Started with Flex 3, Jack D. Herrington & Emily Kim, O’Reilly Media
- Adobe Flex Resmi Web Sitesi, http://www.adobe.com/products/flex/
- RIA – Wikipedia, http://en.wikipedia.org/wiki/Rich_Internet_application
- Adobe Flex – Wikipedia, http://en.wikipedia.org/wiki/Adobe_Flex
- http://www.bilisimdergi.com/Zengin-internet-Uygulamalarinin-Gucunu-Kesfedin-11-2.html
122 defa okunmuş.



