Qt yi merak edenlere, Neden Qt?
-
Qt nedir diye konuya başlayalım. Qt, Multi Platform bir uygulama geliştirme yapısal katmanıdır. Bu şu demektir, yeni bir dil değil aşina olduğunuz bir dil (öyle olduğunu düşünüyoruz) üzerinde bir çoğu işlevi kolaylaştıran bir ara kütüphaleneler birleşimidir. Aslında Qt, C++ ortamında yazılım geliştirebileceğiniz, ancak Java gibi daha lezzetli bir geliştirme sağlar. Yazdığımız ortam C ortamı olduğu için C++ kodları hala çalışmasına devam etmektedir. Ancak bizi burada ilgilendiren konu ATL veya MFC gibi sadece Windows da çalışan bir uygulama ve bunu geliştirmenin ayrı zorluklarını da düşündüğümüzde, Qt framework'u bize hem çok daha kolay bir alt yapısı sağlarken C++ gibi bir dilinde gücünden mahrum bırakmıyor. Eğer bir C++ yazılımcısı iseniz sizin için Qt çok daha güzel şeyler sunacaktır. Yada benim gibi C++ da formlar üzerinde çalışmanın Java veya .Net ten çok daha zahmetli olduğunu düşünüp C++ dan uzak durmuşsanız sizi tekrar havaya sokacağını söyleyebilirim.
Neden Qt? Çünkü güçlü bir alt yapı ve tatlı bir kodlama ikisi bir arada. Özellikle C# gibi bir dili kullanan .Net geliştiricileri için bulunmaz bir nimet diyebilirim. Bu gruptakiler için çok fazla mantık ve kodsal farklılıklar olmadan rahatça Qt ye geçişleri olacağını düşünüyorum. Tabi kimseye .Net veya Java dan vazgeçin demem yanlış olabilir. Ancak benimde bazı projelerimde C++ kullanma ihtiyacı duyduğumda sırf geliştirmenin zahmeti nedeniyle takla attığım zamanları unutmuş değilim. Eğer C++ ortamında yazılım geliştirmenin bunaltıcı olduğunu düşünenlerdenseniz Qt ile bu sıkıntıyı aşabilirsiniz. İlla ki Qt sınıflarını da kullanarak herşeyi yapacağınız anlamına gelmiyor Qt nin güzelliklerinden yararlanarak bir çoğu hali hazırda C kütüphanesinden de faydalanmanız mümkün olacaktır. Özellikle multi platform bir şeyler geliştirmek sizin için önemli ise Qt yi kullanmakta hiç tereddüt etmemenizde fayda var.
Qt ile neler yapılabilir diyecek olursanız bunu en iyi anlatan tabiki Qt-Wiki bölümü ancak reel hayattan örnek verecek olursak embeded linux yani pc dışında ki chiplerde kullanılan linuxda bile oldukça başarılı şeyler yapıldığını gördüm. Mesela bir cihazı uzaktan yönetmek için bir otomasyon görmüştüm oldukça mantıklıydı da Qt seçimi. Uygulama cihaz ile pc arasında veri alışverişi yapar iken bir tarafta embeded linux bir tarafta da windows ortamının çalışması için ayrı ayrı yazılım platformları kullanılmamış olması da çok güzel bir şey diyebilirim. Özellikle phyton ve boo gibi cross platform kardeş diller arasında bile geçişe gerek kalmıyor. Heleki bilindik bir dil olan C++ bizim için daha güzel bir şey. Network, multimedia, database gibi bir çoğu şeyde hali hazırda kütüphaneleri bulunan Qt için kütüphaneler sürekli güncellenmekte. Tabi isterseniz C++ kütüpheneleri de zaten sizi bekliyor olacak.
Bu noktada Qt çok değerli bir geliştirme ortamı olarak karşımıza çıkıyor ve gereken önemi vermemize değiyor. Qt ihtiyaçlara cevap verebilen başarılı bir yapı. Öğrenmek için değil uygulamak için Qt ye ilgi göstermenizden yanayım.
-
Qt hangi platformlarda çalışır araştırmasını yaparak hemen dile getirelim dedim. Bu belkide sizin için daha çok Qt sevmenize yarayacak bir fikir olabilir.
Qt/X11 - X11 denilen linux üzerinde ki pencere sistemidir. X11 tabanlı linuxlarda Qt ile uygulama geliştirilebilir. X11 hakkında daha fazla bilgi almak için Wikipedia ziyaret edebilirsiniz.
Qt/Mac - Machintosh makinalar yani Mac OS makinalarda da Qt uygulamaları kullanılabilir.
Qt/Windows - Windows tabanlı bilgisayarlarda uygulama geliştirmemiz mümkündür.
Qt/BB10 - BlackBerry 10 da da uygulama geliştirmek mümkündür.
Qt/Embeded - Gömülü linux işletim sistemleri için Qt ile uygulama geliştirebilmek oldukça hoş bir duygu.
Qt/Jambi - Java ortamında geliştirmek için de Qt nin desteği bulunmakta. Yani JavaVM nin çalıştığı sistemlerde bu bize java yüklü chipleride programlayabilme imkanı sunabilmekte.
Qt/Windows CE/Mobile - Windows gibi Windows Mobile işletim sistemleri içinde de Qt rahatlıkla kullanılabilmektedir.
Qt/Symbian - Nokia makinaların alt yapısı olan Symbian da zaten bu işin içinde.
Qt/Maemo - Gariptir ama Symbian gibi Nokia cihazlarında ki linux tabanlı işletim sistemidir. Son sürümü N9 da kullanılmış acaba nokia'nın lumia da windows işletim sistemi tutmazsa yeni bir sisteme geçeceğiz dediği bu (Android de debian tabanlı bir sistem üzerinde çalışmaktadır) Debian tabanlı sistemmi? Eğer öyle ise Qt zaten hazır olacak.Ayrıca aşağıdaki platformlar resmi olmasa da desteklenmektedir.
Qt for OpenSolaris - Solaris yani Oracle nin linux işletim sistemleri
Qt Iphone - Bakın kimler varmış burada diyeceğimiz bir sistem daha desteklenmekte
Android-Lighthouse - Android bu arada unutulmamış bir sistem olarak karşımıza çıkmakta
Necessitas - Android için geliştirilmiş ayrı bir platform yeteneği dahaBu platformlarda çalışabilmek için tabiki runtime lere ihtiyaç olacak. Yani projenizin windows tabanlı pc de çalışması için Qt/Windows runtime yüklenmesi gerekirken Mac OS da çalışması için Mac makinanıza Qt/Mac runtime yüklemeniz gerekir. Bunları da bence pek dert etmemekte fayda var sonuçta .Net yazılımları ile uğraştıysanız .Net frameworkün yüklenmesi gibi birşey. Tabi Win32 programcılığıyla uğraşanlar da bilirler ki kaynak kullandıkları tüm dll leri uygulamanın çalışacağı bilgisayara kopyalayıp register etmeleri gerekir. Yani uygulama dışında runtime kurmak artık günümüzde normal bir husus.
Qt ile uygulama geliştirenler için bu seçenekler çok iyi bir şekilde ihtiyaca cevap verebilmekte. Daha ne istiyorsunuz demeden kendimi alı koyamıyorum :)
-
-
C++ ile arayüz geliştirmesi yapacaksanız, MFC ve Windows Forms dışında zaten pek bir alternatif yok sanırım ve MFC de Windows Forms da benim için alternatif sayılmaz :)
-
API si çok zevkli kullanırken..
-
Dokumentasyonu tam!
-
IDE si rahat ve yeterli. Visual Studio gibi aşırı karışık IDE ler benim başımı ağrıtıyor ;)
-