Adobe AIR Kitabı Tamamlandı!

Uzun bir süredir makale yazamamamın sebebi AIR kitabı üzerinde çalışmamdır. Ama kitabın tamamlandığını söylemekte benim için açıkçası büyük mutluluk. Umarım sorunsuz olarak kitabın basımını yakın zamanda bitirip, raflarda yerini almasını sağlayabilirim.

Kitabın yapısına gelirsek; Kitap tamamen Adobe AIR platformunu öğretmeye yönelik olarak hazırlandı. Kitap hem Flex hem de Flash için hazırlandı. Kitap içerisindeki yapı sınıflarla kuruldu, bu sayede hem Flex hem de Flash içerisinde sorunsuz kullanılabilecek. Tabii burada bazı bölümlerde farklılıklar yaşanıyor, mesela Flex bazı konularda daha esnek ve kendi içerisindeki yapı daha iyi çalışıyor, bu gibi durumlarda bu yapının detayları da ortaya konuldu tabi ki.

Tabi AIR ile çalışanların ilk başta yaşadığı problemler ve bu problemlerin çözümlerine dair yöntemlere de kitap içerisinde sıklıkla yer verildi.

Kitabın iki farklı programa hitap etmesi ilk başta bir karmaşa gibi görünüyor, ama burada program tabanından yola çıkmak yerine kullanılacak yapıdan yola çıkılarak konular anlatıldı. Böylece üzerinde çalıştığınız program Flex Builder, Flash CS3 veya Dreamweaver olabilir ama mantığın kodlarlar örneklendirilip çalışma durumu gösterildiği için sorun çekmeden aynı yapıyı üç farklı platformda da kullanabileceksiniz.


Bu makalenin devamını okuyun »

Nesne Tabanlı Programlamaya Giriş - 1

Nesne Tabanlı Programlama kelimelerinin birleşimi her ne kadar yeni başlayan programcıları korkutsa da aslında sanıldığı kadar zor bir süreç değildir. Sürecin zorlu olması ilk baştaki adaptasyonun zor olmasıdır. Bu adaptasyonu kolaylaştırmak için ise nesne tabanlı programlamaya basit bir giriş yapacağım. Bu ve bundan sonraki birkaç bölümde nesne tabanlı programlama içerisindeki ifadelerin neler olduğuna ve ne iş yaptıklarına değineceğim.

Sınıflar ve Nesneler/Objeler (Class/Object)

Sınıflar(Class) basit işlemleri yapmamıza yarayan kod parçacıklarıdır. Belirlenen bir işin yapılması için bazen bir bazen birkaç farklı sınıf aynı anda kullanılır. Kullanım aşamasında ise Nesneler(Object) devreye girer. Bunu bir örnekle açıklamam daha iyi olur diye düşünüyorum;

Mesela üzerinde çalıştığınız her projede kullandığınız bir resim animasyonu var, bu animasyon 40 satır kod ile çalışıyor. Normal şekilde(timeline da kod yazarken) bu 40 satır kodu her zaman kopyalayıp yapıştırmanız gerekiyor. Bunun yerine bu 40 satır kodu biraz daha geliştirip tek bir dosya haline getirebilirisiniz ki bu durumda bir Sınıf geliştirmiş oluyorsunuz. Bu sınıf dosyasının gerçekleştirdiği animasyonu timeline içerisinde veya başka bir sınıf dosyası içerisinde kullanmanız ise o sınıfa ait bir Nesneyi (Objeyi) kullanmış oluyorsunuz.


Bu makalenin devamını okuyun »

Prosedürel Programlamadan Nesne Tabanlı Programlamaya Geçiş

Nesne Tabanlı Programlamaya geçmeden önce öğrenmeniz gereken birkaç konsept ve özellik var. Konuya başlamadan önce Flash CS3 ile yeniden yapılandırılan bir özelliğe değinmek istiyorum. Bu özellik Buton ve MovieClip nesnelerinin üzerine kod yazamamak. Bu bir çok programcıya göre olumlu bir gelişme olmuşken bir çok programcıya göre de olumsuz bir gelişme olarak değerlendirildi. Ben olumlu bakanlardanım. Olumlu yaklaşmamın sebebi bir programcı olarak kodların flash içerisinde onlarca parçaya bölünmesini yanlış bulmamdı. Bütün kodları aynı yerde toplamak gibi bir zorunluluk söz konusu değil ama her bir butona ayrı ayrı tıklayıp kod yazmakta açıkçası pekiyi bir çalışma stili/düzeni değildir.

Bu makalede Document Class, Kütüphane Objeleri ve Classpath konularına değineceğim.

Document Class

Flash CS3 ile gelen diğer bir özellik ise “Doküman Sınıfı”. Bu özellik ile Flash dokümanının içerisine timeline aracılığı olmadan yani Flash dokümanı içerisine kod yazmadan sınıf yapısı entegre edilebiliyor. Tabi ki istenildiği taktirde hala Timeline kullanılabilir ama gerekli olup olmadığını sizin karar vermeniz gerekecek. Doküman Sınıfını nasıl kullanacağımıza gelirsek, aslında basit bir mantığı var ilk olarak sınıf yapınızı hazırlıyorsunuz. Daha sonra ise bu sınıf yapısının ismini Properties panelinde yer alan Document Class adlı bölüme yazmanız yeterli oluyor. Örnek bir sınıf yapısı hazırlayıp test edelim;


Bu makalenin devamını okuyun »

Nesne Tabanlı Programlama(OOP) Nedir?

Konuya başlamadan önce bilmeniz gereken bunun bir yazı serisi olacağıdır. Nesne Tabanlı Programlamanın tamamını birkaç makalede verilemeyeceği için bu konuları bölerek yazmaya devam edeceğim. İlk olarak Nesne Tabanlı Programlamanın temellerini anlattıktan sonra daha sonra Design Patterns(Tasarım Desenleri) konusuna değineceğim.

Nesne Tabanlı Programlama(OOP)

Temelde OOP belirli bir problemin çözüm adımlarını parçalara bölerek bunları objeler haline dönüştürmektir. Buradaki temel amaç ileriki zamanlarda aynı problem ile karşılaşıldığında bu objelerin kullanılması. Tabii çözümü bir bütün olarak değil de bir parçalar olarak ele alındığından dolayı müdahalesi ve değişimi de daha hızlı olmaktadır. Örnek vermemiz gerekirse günümüz fabrikasyon üretimleri örnek olabilir.

Mesela bir araba üreticisinin yeni bir araba serisi üretmek istediğini düşünün. Bu araba serisinin belirli özellikleri olduğu gibi birbirinden farklı özellikleri de olacaktır. Yapılacak araba serisi: A10, A11, A12 diye adlandırıldığını farz edelim. Her üç araba serisi içinde klima, merkezi kilit, müzik sistemi olacaktır. A11 serisinde ekstra olarak yol bilgisayarı, yağmur sensörü olacaktır. A12 serisinde ise yol bilgisayarı, yağmur sensörü, hava yastığı, sesli kontrol sistemi yer alıyor.


Bu makalenin devamını okuyun »

Programcılık ve Eğitimi Üzerine

Bu makaledeki asıl amaç programcılık ve öğrenim süreci üzerine aldığım farklı soruları yanıtlandırmaktır. Bana gelen maillerde; farklı platform üzerinde çalışan kişilerin yeni bir dili öğrenme süreci, programcılık üzerine sorular, eğitim kuruluşları hakkında bilgi, yazılım dillerinin zorluğu gibi sorular yer almakta. Bu yüzden bu makalenin yeni başlayanlara ya da başlamak isteyenlere bir noktada yardımcı olacağını düşünüyor.

Programcılık ve Yazılım Dilinde Profesyonelleşme

Programcılık temelde kolay olmayan ama zevkli bir iştir. Tabii kullanılan yazılım dili yapılan işlem ve uygulamalar da birbirinden farklı olduğu için buradaki ölçü göreceli oluyor. Diğer taraftan bana göre programcılık bir yazılım dilini öğrenmek değil programlamayı öğrenmektir. Kullanılan yazılım dilinin bir hedef değil de araç olarak görülmesi gerektiğini düşünüyorum. Genele baktığınızda zaten bir programcı yazılım diline bağımlı kalmadan farklı platformlarda çalışabilir. Yani eğer Actionscript 3.0 kullanıyorsanız Java veya JavaScript kullanmamanız için hiçbir neden yok. Tabii bu diller yapı olarak birbirine benzeyen diller, ama benim varmak istediğim nokta eğer bir dilde programlama yapabiliyorsanız, bu dilden bağımsız tamamen alakasız olan bir dili de kullanabilirsiniz. Farklı dil kullanımlarında önemli olan nokta dilin yapısını öğrenmektir, diğer bir deyişle dilin sözdizimini öğrenmektir. Geriye kalan parçalar ise ihtiyacınız oldukça yerine oturacaktır.
Bu makalenin devamını okuyun »

Taşınıyorum! Ama enginyoyen.com kalıyor.

Bir süredir planladığım bir değişikliğin ilk ve büyük kısmını bugün yapıyorum. İki buçuk yıla yakın bir süredir Ankara’daydım. Bu süre benim için her ne kadar zorlayıcı olsa da bir o kadar da eğitici oldu. Hem eğitim olsun hem çalışma alanı olsun iki yıl büyük bir artıydı. Tabii değişikliğin zamanı geldi. Şu anda İstanbul Ankara havalimanındayım ve birazdan Berlin’e doğru yola çıkacağım. Tam kesin bir süre olmamakla birlikte minimum 8 ay boyunca Berlin’de kalacağım, bu sürenin uzama ihtimalide var tabiî ki ama hala kesin bir süre söz konusu değil.Diğer taraftan yine boş vakitlerimde bloguma yazmaya devam edeceğim. Hatta tahminime göre daha fazla yazmaya başlayacağım.

Ayrıca değinmek istediğim bir konu daha var o da AIR kitabı. Şu anda bir AIR kitabı üzerinde çalışıyorum. Kitabın büyük çoğunluğu tamamlandı. Yakın zamanda yayın evine teslim edeceğim. Kitap için birçok uygulama yapıldı. Ayrıca bu uygulamaların bazılarını yakında blogumda da paylaşacağım.

Tahmin edersiniz ki taşınma süreci beni biraz zorlayacak o yüzden ilk birkaç gün boyunca e-posta yorum ve forumdaki sorulara cevap veremeyebilirim. Tabii bu sizi yazmaktan alıkoymasın.

Kolay Gelsin
Engin!

Flash CS4 Offline Dil Dokümantasyonu Kullanımı

Bir yazılım dilini bilmek o yazılım dillerinin tüm kodlarlını bilmek değildir. Önemli olan sadece neyi nasıl kullanacağınızı bilmenizdir. Bir dilin dokümantasyonu ne kadar açıklayıcı ve sade ise programcı aradığını veya ihtiyacı olan işlevselliği o kadar rahat bulabilir. Actionscript 3.0′ın dil dokümantasyonu Flash CS3 içerisinde F1 ile tuşu ile çağırılabiliyor, ayrıca bu dokümantasyonu internet üzerinden de ulaşabiliyorsunuz;

http://help.adobe.com/en_US/Flash/10.0_UsingFlash/

Sorun ise Flash CS4 içerisinde F1 bastığınızda artık yardım paneli açılmıyor bunun yerine, online dokümantasyona bağlanıyor. Artık hemen hemen her yerde internet var ama dokümantasyonun lokalde çalışmamasını tercih ederim. Bir sınıf yapısı hakkında bilgi almak için dokümantasyona başlanıp bunun içerisinde araştırma yapması geriye dönmesi benim için çok uzun bir süre. Bu dokümantasyon aslında lokal bilgisayarınızda yüklü yani istediğinizde bu bilgiye internete bağlanmadan ulaşabilirsiniz. Bunun için iki yöntem var birincisi bu yardım dosyasını lokal bilgisayarınızda bulup ihtiyacınız olduğunuzda kullanmanız.


Bu makalenin devamını okuyun »

AIR ile Dijital Sözlük

Adobe AIR’in beta sürümlerinden itibaren kullanıp test ediyorum. AIR benim için masaüstü programcılıkla web programcılığın ortak noktası ki AIR tasarlanırken zaten bu amaçla tasarlandı. Adobe AIR 1.0 sürümünün yayınlanmasından itibaren önüme çıkan ilk fırsatta kullanmaya istedim ve geçen hafta ilk resmi AIR uygulamasını çalıştığım yazılım firmasına teslim ettim.

Dijital Sözlük

Mart ayında planlaması yapılan uygulama dijital bir sözlük. Metalbilim Teknik Terimler sözlüğü. Sözlük İngilizce-Türkçe iki dil içerisinde çeviri için hazırlandı. Sözlük içerisinde 98.000 adet terim ve bu terimlerin 125.000 den fazla açıklaması yer alıyor. Her bir açıklamanın kendine ait kısaltması, ait olduğu alan, terime ait varsa formül, simge ve buna benzer ekstra bilgiler taşıyor. Tabii buradaki terim sayısı her iki dilin toplam terim sayısı. Buradaki SQLLite dosyasının boyutu ise 6.34 MB.

Sözlük içerisinde anlık arama sonuçları görüntüleniyor. Yani kullanıcı yazmaya başladığı andan itibaren otomatik olarak sonuçlar listelenmeye başlıyor(Live Searching). Buda kullanıcının aradığı kelimeyi tam olarak yazmadan sonuca ulaşmasını sağlıyor.


Bu makalenin devamını okuyun »

Yansıma Efekti

Yansıma efekti yeni bir efekt olmadığını hepimiz biliyoruz ama etkili ve güzel bir efekt olduğunu kabul ediyorum. Çalıştığım projelerin birinde bu tarz bir efekt istendi, u efekti veren iki sınıf yapısı buldum, ama her ikisinde de farklı sorunlarla karşılaştım. Biri dinamik olarak birden çok efekt oluşturmakta sorun çıkardı. Diğeri de objenin boyu ile eş düzeyde olmayan efekt yapıyordu. Yani sahnedeki movie clibin boyutları 400×300 diyelim, bunu 200×150 düşürüp efekti uyguladığınızda efektin uygulanmasında sorun çıkıyordu çünkü efektin o anki genişlik ve yüksekliği alıyordu, yani orijinal boyutlarını değil. Bunun üzerine yeni bir sınıf oluşturmaya karar verdim. Ve ben sonuçtan memnunum, tabii ilerde bunu biraz daha geliştirebilirim. Kodu ücretsiz olarak kullanabilirsiniz, sınıf yapısını aşağıdan indirip kullanabilirsiniz. Kullanımı ve gerekli kodları da aşağıdaki örnekten alabilirsiniz.


Bu makalenin devamını okuyun »

Swf Dosyalarını Güvenlik İhlali

Flash ile yapılan uygulamalara harici dosya yüklemek temelde çok basit bir işlemdir. Genelde yapılacak olan işlem yeni bir Loader objesi oluşturup bu objeye yüklenecek materyalin adresini vermektir. Bu işlemin sorunsuz bir şekilde çalışması gerekirken bazen hatalar alabilirsiniz. Özellikle farklı domain adı altından dosyalara erişilmeye çalışıldığında yada aynı domain isminin başına www konulmadığı gibi basit sorunlar sistemi çalışmaz hale getirir. Bunun için bir örnek vermek gerekli diye düşünüyorum; Diyelim ki iki farklı domain adresiniz var ve siz aynı olan dosyaları sadece bir sunucuda tutmak istiyorsunuz.

Farklı sunuculardan dosya yüklemek

A sunucusu altındaki swf dosyası B sunucusundaki resim dosyasını kendi içerisinde yüklemeye çalışıyor. A sunucusunun B sunucusuna ulaşıp resim dosyasını yüklemesi için B sunucusu altında crossdomain.xml adlı bir xml dosyasının olması gerekiyor. Bu XML dosyası Flash Player’e bu sunucu altındaki dosyaların hangi sunuculara ait olduğuna dair izin bilgilerini içerir. XML dosyası şu şekildedir;
Bu makalenin devamını okuyun »

PHVsPjwvdWw+