18 Mart 2011 Cuma

JavaFx


Bu yazı daha önce saltokunur.org e-derginin Temmuz 2009 sayısında yayınlanmıştır. 

Bilgisayar teknolojileri ilerledikçe ve bilgisayar destekli, hayatımızı kolaylaştıran teknolojiler geliştirildikçe, hepimiz bilgisayarla daha fazla vakit geçirir olduk. Kullanıcıların gündelik ihtiyaçlarına yönelik çözümler üreten yazılım firmaları, rakip ürünler arasından kendi ürünlerini ön plana çıkarıp, kullanıcıların kendi ürünlerini kullanmalarını sağlama yarışı içindeler. Bu amaçla bazı firmalar var olan teknolojilerle hep daha kullanışlı ve daha görsel ürünler üreterek pazarda yer tutmaya çalışıyorlar. Olaya internet kullanımı tarafından bakarsak, bunlara şu aralar etrafta mantar gibi biten sosyal ağ sitelerini örnek verebiliriz (Facebook, Flickr, FriendFeed). Hepsi kullanıcı sayısıyla birlikte reklam gelirlerini de artırma peşinde.

Zengin İnternet Uygulamaları (RIA)
Sektöre yön veren büyük yazılım firmaları ise, diğerlerinin kullandığı bu teknolojileri ya da platformları üreterek kullanıcılara ve geliştiricilere yeni dünyalar açıyorlar. Gene internet teknolojileri açışından olaya bakarsak, bu teknolojilerin ilk büyük örneğini Macromedia (daha sonra Adobe tarafından satın alındı) tarafından Flash'la gördük. Bu gün neredeyse flash kullanmayan internet sitesi yok gibi (bakınız bizim derginin sitesi :). Bunlara verilebilecek diğer güzel örnekler Sun'un Applet teknolojisi, AJAX, Adobe'nin Flex'i, son dönemde büyük ses getiren Microsoft'un Silverlight'ı... Hepsi geliştiricilere daha kolay, çabuk ve görselliği yüksek ürünler geliştirmesi imkanını sağlamak üzere üretildiler ve günümüzde Facebook, Google Maps, Google Doc, v.b. Zengin İnternet Uygulamaları (RIA - Rich Internet Applications) geliştirmede kullanılıyorlar.
Sun Microsystems bugüne Java ile sunduğu Applet teknolojisi dışında görsel uygulamalar geliştirmeler dışında geliştiricilere hiçbir teknoloji sunmuyordu. Zaten o da AWT (Abstract Window Toolkit) ve Swing (Java'nın Arayüz geliştirme kütüphanesi) tabanlı olduğu için geliştiriciler "deveye hendek atlatmaktansa" başka teknolojilere yönelmeyi tercih ediyorlarlardı. Gerçektende Java'da Swing'le program yazmak çok uğraş gerektici bir işlemdir. Geliştiriciler programın işi yapacak kodundan çok onu arayüze taşıyacak olan koduna daha fazla zaman ayırırlar (kendimden biliyorum :). Sanırım Sun bu konuda gerilere düşmekte olduğunu farketti ve Mayıs 2007'de San Francisco'da RIA ve multimedia uygulama geliştirme amaçlı yeni teknolojisi JAvaFx'in 1.0 sürümünü tanıttı. Şimdilerde 1.2 sürümüyle karşımızda olan JavaFx bu ayki yazımızın konusu.

JavaFx
JavaFx, Zengin İçerikli İnternet Uygulamaları (RIA) geliştirmek ve Java'nın fakir arayüz ve multimedia özeeliklerini zenlinleştirmek için geliştirdiği açık kaynak bir teknolojidir. Gelişmiş güncel ses, video ve grafik desteği sunar. Yazılım geliştiricilerin zengin içerikli, etkileşimli ve etkileyici uygulamalara Web tabanlı vektör grafiği, animasyon, ses ve video gibi öğeler yerleştirmelerine olanak verir.
Java teknolojisi halen masaüstü ve dizüstü bilgisayarların yüzde 90’ından fazlasında (yaklaşık 800 milyon), mobil araçların ise yüzde 85’inden fazlasında, TV, taşınabilir oyun platformları ve diğer taşınabilir cihazlarda kullanılıyor. Sun JavaFx'de Java ile getirdiği "Bir kere yaz heryerde çalıştır" felsefesini devam ettiriyor. Yani JavaFx, JVM (Java Sanal Makinesi) kurulu olan herhangi bir cihazda değişikliğe uğratılmadan çalışabiliyor. Bu da JavaFx'in kullanım alanlarının çok geniş olacağını vaat ediyor.
JavaFX uygulamalarında her tür Java kitaplığının kullanılmasına olanak sağlayarak Java'nın gücünü artırır. JavaFx, 2D, AWT ve Swing gibi Java API'lerini kullanabiliyor. Bu da demek oluyorki Java ile oluşturduğumuz bir programa, JavaFx kullanarak, program ile ilgili hesap yapan kodları değiştirmeden daha iyi görünüm ve kolay kullanım özellikleri katabiliriz.

Dil Yapısı
JavaFx dil yapısı olarak iki kısma ayrılıyor. Daha çok RIA geliştirmek için web tarafında kullanılan JavaFx Script ve mobil cihazlara yönelik JavaFx Mobile.
JavaFX Mobile bir platform olarak düşünülmüş. JavaFx Mobile ile geliştirilen uygulamalar mesajlaşma, grafik yönetimi, GPRS/EDGE/UMTS, WiFi, yüksek tanımlı video (HD) gibi özellikleri barındırır.
JavaFx Script, ise deklaratif bir dil. Yani geliştiriciler programa işlerin nasıl yapılacağını değil de, ne yapacağını, ekranda ne göstereceğini söylüyor. Bunu HTML gibi düşünebilirsiniz, bildiğiniz gibi HTML'de  neyi göstereceğini tarayıcıya söylememiz yeterli. Böylece JavaFx çok daha hızlı GUI geliştirmeye olanak sağlıyor. Hali hazırda bulunan Swing ve Java kütüphanelerini kullanımına imkan sağlıyor. Kodlama yapısı da benzer script dilleri gibi. Ana penceremizde bir sahne var ve bu sahneye görsellerimizi ekliyoruz. Eklenen her görsele bir düğüm deniliyor. Sonra bu düğümlere en, boy, renk gibi özellikler atanıyor.

Örnek:
Stage sahne{
    Cirle cember{
    height:100
    weight:100
    color:blue
    }
}

Ayrıca JavaFX Script ile gelen olay oluşturma ve yürütme konusundaki iyileştirmelerden Swing uygulamaları da faydalanacak ve yakın zamanda daha performanslı Swing uygulamaları göreceğiz.


Özellikleri
JavaFx diğer RIA geliştirme ortamlarına göre sistem kaynaklarını daha az kullanır.
Browser içinde çalışan JavaFX uygulaması sürükle-bırak yöntemi ile masaüstüne taşınarak sanki bir masaüstü uygulamasıymış gibi çalıştırılabilir.

JavaFx ile neler yapılabilir?
JavaFx ile yapabilecekleriniz hayal gücünüzle sınırlı olsa da (çok klişe oldu), işte size fikir verebilecek bazı örnekler.
Mash-Up uygulamaları. Çeşitli servislerin sağladığı özellikleri bir uygulamada birleştirmek. Örn, Google Map ten istenilen yerin haritasını alıp, Flickr'dan oraya ait fotoğrafları bulmak.
Yol Animasyonları. Ekran üzerinde bir yolu takip eden araba animasyonu gibi.
Video Oynatımı. JavaFx 'in kendi kütüphaneleri sayesinde (kendi video oynatıcı bile var) uygulamanızda online videolar gösterebilirsiniz.

JavaFx uygulamaları geliştirebilmek için javafx.com 'dan ücretsiz ve açık kaynak JavaFx SDK 'sını (yaklaşık 50 MB) indirmeniz yeterli. Ayrıca Sun'ın açık kaynaklı IDE'si Netbeans de (netbeans.org) JavaFx geliştirmek isteyenlere güzel bir çalışma ortamı sunuyor. JavaFx’i daha geniş incelemek için resmi sitesinde (javafx.com)  yayınlanan kaynaklara başvurabilirsiniz.

Hiç yorum yok:

Yorum Gönder