Mobil Dünya

Qt ile Çapraz Platform Mobil Uygulama Geliştirme

Birçok mobil işletim sistemi olması mobile uygulama geliştirmeyi sıkıntılı hale getirdi. Bu duruma karşılık olarak çapraz platform yerel (native) uygulama geliştirmeyi sağlayan araçlar çıktı. Bu yazımızda da bu araçlardan biri olan Qt'a değineceğiz.Qt Nedir? Qt, Digia ...

İbrahim |

29.04.2016

Birçok mobil işletim sistemi olması mobile uygulama geliştirmeyi sıkıntılı hale getirdi. Bu duruma karşılık olarak çapraz platform yerel (native) uygulama geliştirmeyi sağlayan araçlar çıktı. Bu yazımızda da bu araçlardan biri olan Qt'a değineceğiz.

Qt Nedir?
Qt, Digia firmasına ait, masaüstüne, gömülü sistemlere ve mobil platformlara uygulama geliştirmemizi sağlayan bir çatıdır. Qt kendisine has GUI sistemini ve birçok iş yapabilmemizi sağlayan sınıfları ve araçları bize sunar. Qt, GPL, LGPL ve ticari olmak üzere bize üç adet lisans sunar.


Qt ve Mobil
Qt ile Android, iOS, Windows Phone, Blackberry ve Sailfish işletim sistemlerine yerel (native) olarak uygulama geliştirmemizi sağlar. Bize sunduğu QML dili ile mobil platformda kolaylıkla tasarım yapıp C++ ile de kodlamamızı gerçekleştirebiliriz. Qt ile geliştirme yaparken kullanacağımız geliştirme ortamının adı Qt Creator'dır. Ayrıca Qt bize Linguist adlı bir araç sunarak yapacağımız uygulamaya farklı diller (Türkçe, İngilizce gibi) eklememizi sağlar. Qt nasıl native olarak çapraz platform uygulama geliştirebilir diyenler için ise Qt Android SDK, NDK, iOS SDK, Windows SDK vs. araçlardan bağımsız olarak çalışmaz ve platformun yerel özelliklerini kullanmaya çalışır.


Qt ile Mobil Tasarım Gerçekleştirmek
Biraz önce dediğim gibi QML dili ile mobil sistemlere tek seferde tasarım yapabiliyoruz. Bunu Qt 5.6 ile gelen Qt.labs.controls modülünü kullanarak gerçekleştirebiliyoruz. Bu modül mobil sistemlere GUI geliştirmek için hazırlanmıştır.


Qt ile Yarı Yolda Kalabileceğinizi mi Düşünüyorsunuz?
Hayır, Qt ile mobil uygulamanızı rahatlıkla yapabilirsiniz. Eğer native özelliklere ihtiyacınız olduysa (Bildirimler, TrafficStats gibi), Android Java'ya ve/veya iOS Objective-C'ye bir yenilik eklendiyse ya da kısaca Java'da ve/veya Objective-C'de kullanabildiğiniz tüm özellikleri Java ve Objective-C kodu olarak Qt'da çağırabiliyoruz ve bu sizin de tahmin ettiğiniz gibi Android ve iOS'in bütün özelliklerini tam olarak kullanabilmemiz anlamına geliyor.
Peki bunu nasıl yapabiliyoruz? iOS Objective-C geliştiricilerinin de bildiği gibi bu dil .h dosyalarını kullanıyor. Biz bu başlık dosyalarına C++ ile prototipler, değişkenler vs. oluşturuyoruz ve .mm dosyasına bu başlık dosyasını ekleyip prototiplere, değişkenlere vs. işlevlerini veriyoruz. Android için Java kodu çağırmamız gerektiğinde QAndroidExtras modülünü kullanarak Java kodlarını çekiyoruz (Bunların ayrıntılarına bu yazıda değinmeyeceğim, yazının sonunda bağlantıları paylaşacağım).

Yazımızın sonuna ulaşmışken Qt, C++ ile haşır neşir olanlar ve bu dili öğrenip de yazılım geliştirmek isteyenler için harika bir tercih olacaktır. Qt'un Open Source sürümünü sitesinden indirip kullanmaya başlayabilirsiniz.
Qt Web Sitesi: https://www.qt.io
Qt C++ Sınıfları: http://doc.qt.io/qt-5/classes.html
QML Tipleri: http://doc.qt.io/qt-5/qmltypes.html
Qt.labs.controls: http://doc.qt.io/qt-5/qt-labs-controls-qmlmodule.html
Qt.labs.controls ile ilgili bir örnek: http://doc.qt.io/qt-5/qtlabscontrols-gallery-example.html
Java kodu çağırmak: http://doc.qt.io/qt-5/qtandroidextras-index.html
Objective-C kodu kullanmak: https://github.com/richardmg/qtdd13_qmlapp

İbrahim |

29.04.2016

Yorumlar

Halil ibrahim Ataylar
15.05.2020 - 06:50

Ben PyQt5'i zaten kullanıyordum fakat Qt ile native uygulama geliştirilbeliciğini daha yeni duyuyorum

İrem Şimşek
17.06.2017 - 11:41

proje nasıl oluşturulur. fazladan bir eklentiye ihtiyaç varmı bunları açıklar mısınız?