Konuyu Oyla:
  • Derecelendirme: 5/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Multi-Platform (FMX) Nedir? Diğer Geliştirme Ortamlarına Göre farkları Neler?
#1
Rad Studio – FMX Mimarisi
Cross Platform (Multi-Platform) Uygulama Geliştirme Ortamıdır. Windows, Mac OS X, Linux GUI masaüstü ve Android, iOS gibi mobil uygulama geliştirme imkanı sunar. Windows Servis Uygulamaları, Konsol Uygulamaları, Web Serverlar, Web Servisler, ActiveX’ler, COM tabanlı uygulamalar, 3 ve daha fazla katmanlı uygulamalar, REST servis uygulamaları, GUI uygulamaları, DLL’ler, Control Panel Uygulamaları, Android Servisleri vb. birçok uygulama türünü çok kolay ve hızlıca geliştirebilmeye imkânı sunar. Native uygulama framework ve API’lerini doğrudan kullanır. Android hedef platformu için java kütüphaneleri (.jar) ve Android SDK, iOS hedef platformu için objective-C kütüphaneleri (.a) ve iOS SDK’larını ilk açılışta implement ederek, bir üst katman olan kullanıcı arayüzüne kendi kütüphanelerini dahil eder ve her platformun için çalıştırılabilir paket dosya üretir.

FMX Nedir?
FireMonkey olarak isimlendirilmiş, Windows, OS X, iOS ve Android hedef platformları için hızlı uygulama geliştirme imkânı sağlayan multi-platformudur. Rad Studio IDE’si ile tümleşiktir. Birçok proje türüne sahiptir. Embarcadero’nun sunmuş olduğu Multi-Platform uygulama geliştirme ortamı kısaca FMX olarak isimlendirilmektedir. FMX uygulamaları CPU ve %100 grafik işlemci (GPU) tabanlı çalışır. Her çözünürlükteki tüm cihazları destekler. Görsel yönden zengin kullanıcı arayüz bileşenlerine (UI) sahiptir. Birçok veri tabanına kolay bağlantı sağlar. Tüm web servisler, REST, RESTfull ve bulut bilişim mimarili sistemlere veya IoT cihazlara doğrudan veya Front-End bileşen setleri ile bağlanarak kolay ve hızlı uygulama geliştirme imkânı sağlar. Kullanıcı arayüzünde kullanılan birçok bileşen native olarak geliştirilmiştir. Rad Studio’nun sonraki sürümlerinde tüm bileşen ve sınıfların native olarak geliştirilmesi planlanmaktadır.
Grafik işlemci birimi ile güçlendirilmiş vektör merkezli HD kullanıcı arayüzüne sahip 3D uygulamalar geliştirilebilir. Tüm bileşenler üzerinde etkili animasyon ve efektler oluşturulabilir. Sahip olduğu yüksek performanslı vektörel grafik yapısı, harici 3D modelleri kolay bir şekilde import edebilmekte ve bu sayede mobil tabanlı oyunlar yazılabilmektedir.
FireMonkey uygulamaları yüksek donanıma ihtiyaç duymaz. Herhangi bir standart Intel tabanlı bilgisayar, Mac veya ARM tabanlı Android veya iOS cihaz üzerinde çalışacak şekilde tasarlanmıştır. FireMonkey GPU gereksinimleri çok düşük seviyededir, yalnızca pixel shader level 2 olarak da bilinen bir DX9 düzey GPU’ya ihtiyaç duyar. Basit bir dille, son on yıl içerisinde gelen hemen hemen her görüntü donanımı ile çalışabilmektedir.

Aşağıdaki grafik basitçe FMX mimarisinin yapısını göstermektedir.

   

Birçok masaüstü uygulama geliştirme araçlarının mobile platform desteği yoktur. Birçok mobil yazılım geliştirme araçlarının da Mac OS X, Linux server/GUI ve Windows masaüstü uygulama desteği yoktur.
Hem masaüstü hem de mobil cihazlara uygulama geliştirmek ve destek vermek için yazılımcıların birden fazla yazılım diline ve yazılım geliştirme ortamına hâkim olması kaçınılmazdır.
FMX mimarisi, aynı uygulamayı birden fazla cihaz üzerinde ve farklı platformlarda geliştirme imkânı sunmaktadır. Bu durum, uygulamanın sonraki sürümleri için daha hızlı destek verilmesi ve maliyetlerin düşürülmesi anlamına gelmektedir.
Bir yazılım geliştiricinin başka yazılım dillerine ihtiyaç duymadan her platform için uygulama geliştirebilmesi daha az maliyet, daha az iş gücü ve zaman kazanma açısından son derece önemlidir.

Avantajları
• Tek bir proje ve tek bir kod gövdesi vardır. Bundan dolayı yönetilmesi, güncellenmesi ve geliştirme süreci oldukça kolaydır.
• Bir proje, Android, iOS, Mac OS X, Windows ve Linux platformlarında doğrudan çalışır.
• Android platformu için Java sınıf ve kütüphanelerini (JavaClass, .jar vb.) doğrudan referans olarak alıp, bu kütüphanelerdeki metodları doğrudan kullanabilir.
• iOS platformu için Objective-C sınıf ve kütüphanelerini doğrudan referans olarak alıp, bu kütüphanelerdeki metodları doğrudan kullanabilir.
• Kendi native platfrom API’leri ve SDK’ları vardır.
• FMX, uzun yıllardan beri kendini geliştiren hızlı yazılım geliştirme oratmıdır. RAD (Rapid Application Development) ismi buradan gelmektedir. Tek bir projenin 5 platform üzerinde çalıştırılabilir hale getirilmesi çok kısa zamanda gerçekleştirilir.
• Android 32 ve 64 bit uygulama geliştirilebilir ve aab (Android app bundle) paket dosyaları üretir. iOS 32 ve 64 bit desteği vardır. Mac OS X 64 bit desteği vardır. Linux 64 bit server ve GUI desteği vardır.
• Yayınlanan tüm SDK’lara çok kısa bir süre içinde destek sunar.

SDK’destekleri (27.01.2020)

   
 
Kaynak: http://docwiki.embarcadero.com/PlatformS.../Main_Page

M2M, iBecaon vb. Tüm IoT cihaz ve framework desteği vardır.
Kaynak: http://docwiki.embarcadero.com/IoT/en/Main_Page

Karşılaştırma
• FMX mimarisinde, tek bir proje vardır. Tüm cihaz çözünürlüklerine adapte olur. Emsal geliştirme ortamlarında, her platform için ayrı bir proje ve kod yapısı vardır. Ayrıca binlerce cihaz çözünürlüklerine adapte olmaları güçtür.
• FMX mimarisinde, back-and tarafı da aynı kod syntax’ına sahiptir. Bu nedenle tek bir proje grubu tarafından hızlı bir şekilde geliştirilebilir. Bundan dolayı iş, zaman ve maliyet kazancı vardır. Diğer geşiltirme ortamlarında, back-and tarafı mobil platform syntax’ından farklı bir yazılım geliştirme dili kullanır. Bu nedenle back-and için ayrı bir proje grubuna ihtiyaç duyar. Bu durum personel, iş ve maliyeti arttırır.
• Tek bir proje ve kod gövdesi Android, iOS, Mac OS X, Windows ve Linux platformlarında doğrudan çalışır. Oysa ki deiğer geliştirme ortamlarında, masaüstü ve mobil olmak üzere iki farklı proje vardır. Her geliştirme ortamı aynı anda Android, iOS, Mac OS X, Windows ve Linux platformlarına destek vermez.
• FMX mimarisinde OS (Android, iOS, Mac OS X, Windows ve Linux) native API’lerini, araya herhangi bir katman koymadan kullanırken, emsal geliştirme ortamlarında (özellikle hybrid) dili yorumlayıp, platformun anlayacağı hale getirmesi için mutlaka bir ara atmana ihtiyacı vardır. Bu durum uygulama çalışma hızını etkiler.  
• Rad Studio’nun “geriye dönük kod uyumluluğu” %100’dür. Diğer geliştirme ortamlarında IDE’nin yeni sürüme geçmesi ile framework ve API bağımlılığından dolayı “geriye dönük kod uyumluluğu” çok düşüktür.

FMX ile yazılmış bir kaç örnek uygulama
Kore  Ulusal Acil Durum Yönetim Ajansı Uygulamsı - 119, FireMonkey ve sahip olduğu Yeni Nesil Teknolojiler kullanılarak geliştirilmiş.

   

Kaynak: http://c2design5sh.blogspot.com/2016/09/...elphi.html

whereonthemap - Nerede uygulaması
https://whereonthemap.com/en/

Kiss-kiss sosyal medya uygulaması:
https://apps.apple.com/us/app/id1420049759
https://www.youtube.com/watch?v=WEsEhGfr...e=emb_logo
Uygulamanın geliştirildiği bileşenler ücretsiz dağıtılıyor: https://github.com/Zeus64/alcinoe

Made in Türkiye - iki uygulama
  1- Saha Takip: Apple Store - Google Play
  2- AGS (Akıllı Geçiş Sistemi): Bir IoT uygulamasıdır. Apple Store - Google Play

IP kamera izleme ve yönetim uygulaması:
https://www.youtube.com/watch?v=4lQGA8-sO9w


FMX Mimarisi ile geliştirilmiş birkaç örnek uygulama daha: FMX Gerçek Uygulama Örnekleri
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#2
(27-01-2020, Saat: 15:09)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Rad Studio – FMX Mimarisi
Cross Platform (Multi-Platform) Uygulama Geliştirme Ortamıdır. Windows, Mac OS X, Linux GUI masaüstü, Android, iOS gibi mobil uygulama ve Linux Server uygulaması geliştirme imkanı sunar. Windows Servis Uygulamaları, Konsol Uygulamaları, Web Serverlar, Web Servisler, ActiveX’ler, COM tabanlı uygulamalar, 3 ve daha fazla katmanlı uygulamalar, REST servis uygulamaları, GUI uygulamaları, DLL’ler, Control Panel Uygulamaları, Android Servisleri vb. birçok uygulama türünü çok kolay ve hızlıca geliştirebilmeye imkânı sunar. Native uygulama framework ve API’lerini doğrudan kullanır. Android hedef platformu için java kütüphaneleri (.jar) ve Android SDK, iOS hedef platformu için objective-C kütüphaneleri (.a) ve iOS SDK’larını ilk açılışta implement ederek, bir üst katman olan kullanıcı arayüzüne kendi kütüphanelerini dahil eder ve her platformun için çalıştırılabilir paket dosya üretir.

FMX Nedir?
FireMonkey olarak isimlendirilmiş, Windows, OS X, Linux, iOS ve Android hedef platformları için hızlı uygulama geliştirme imkânı sağlayan multi-platformudur. RadStudio IDE’si ile tümleşiktir. Birçok proje türüne sahiptir. Embarcadero’nun sunmuş olduğu Multi-Platform uygulama geliştirme ortamı kısaca FMX olarak isimlendirilmektedir. FMX uygulamaları CPU ve %100 grafik işlemci (GPU) tabanlı çalışır. Her çözünürlükteki tüm cihazları destekler. Görsel yönden zengin kullanıcı arayüz bileşenlerine (UI) sahiptir. Birçok veri tabanına kolay bağlantı sağlar. Tüm web servisler, REST, RESTfull ve bulut bilişim mimarili sistemlere veya IoT cihazlara doğrudan veya Front-End bileşen setleri ile bağlanarak kolay ve hızlı uygulama geliştirme imkânı sağlar. Kullanıcı arayüzünde kullanılan birçok bileşen native olarak geliştirilmiştir. RadStudio’nun sonraki sürümlerinde tüm bileşen ve sınıfların native olarak geliştirilmesi planlanmaktadır.
Grafik işlemci birimi ile güçlendirilmiş vektör merkezli HD kullanıcı arayüzüne sahip 3D uygulamalar geliştirilebilir. Tüm bileşenler üzerinde etkili animasyon ve efektler oluşturulabilir. Sahip olduğu yüksek performanslı vektörel grafik yapısı, harici 3D modelleri kolay bir şekilde import edebilmekte ve bu sayede mobil tabanlı oyunlar yazılabilmektedir.
FireMonkey uygulamaları yüksek donanıma ihtiyaç duymaz. Herhangi bir standart Intel tabanlı bilgisayar, Mac veya ARM tabanlı Android veya iOS cihaz üzerinde çalışacak şekilde tasarlanmıştır. FireMonkey GPU gereksinimleri çok düşük seviyededir, yalnızca pixel shader level 2 olarak da bilinen bir DX9 düzey GPU’ya ihtiyaç duyar. Basit bir dille, son on yıl içerisinde gelen hemen hemen her görüntü donanımı ile çalışabilmektedir.

Aşağıdaki grafik basitçe FMX mimarisinin yapısını göstermektedir.



Birçok masaüstü uygulama geliştirme araçlarının mobile platform desteği yoktur. Birçok mobil yazılım geliştirme araçlarının da Mac OS X, Linux server/GUI ve Windows masaüstü uygulama desteği yoktur.
Hem masaüstü hem de mobil cihazlara uygulama geliştirmek ve destek vermek için yazılımcıların birden fazla yazılım diline ve yazılım geliştirme ortamına hâkim olması kaçınılmazdır.
FMX mimarisi, aynı uygulamayı birden fazla cihaz üzerinde ve farklı platformlarda geliştirme imkânı sunmaktadır. Bu durum, uygulamanın sonraki sürümleri için daha hızlı destek verilmesi ve maliyetlerin düşürülmesi anlamına gelmektedir.
Bir yazılım geliştiricinin başka yazılım dillerine ihtiyaç duymadan her platform için uygulama geliştirebilmesi daha az maliyet, daha az iş gücü ve zaman kazanma açısından son derece önemlidir.

Avantajları
• Tek bir proje ve tek bir kod gövdesi vardır. Bundan dolayı yönetilmesi, güncellenmesi ve geliştirme süreci oldukça kolaydır.
• Bir proje, Android, iOS, Mac OS X, Windows ve Linux platformlarında doğrudan çalışır.
• Android platformu için Java sınıf ve kütüphanelerini (JavaClass, .jar vb.) doğrudan referans olarak alıp, bu kütüphanelerdeki metodları doğrudan kullanabilir.
• iOS platformu için Objective-C sınıf ve kütüphanelerini doğrudan referans olarak alıp, bu kütüphanelerdeki metodları doğrudan kullanabilir.
• Kendi native platfrom API’leri ve SDK’ları vardır.
• FMX, uzun yıllardan beri kendini geliştiren hızlı yazılım geliştirme oratmıdır. RAD (Rapid Application Development) ismi buradan gelmektedir. Tek bir projenin 5 platform üzerinde çalıştırılabilir hale getirilmesi çok kısa zamanda gerçekleştirilir.
• Android 32 ve 64 bit uygulama geliştirilebilir ve aab (Android package bundle) paket dosyaları üretir. iOS 32 ve 64 bit desteği vardır. Mac OS X 64 bit desteği vardır. Linux 64 bit server ve GUI desteği vardır.
• Yayınlanan tüm SDK’lara çok kısa bir süre içinde destek sunar.

SDK’destekleri (27.01.2020)


 
Kaynak: http://docwiki.embarcadero.com/PlatformS.../Main_Page

M2M, iBecaon vb. Tüm IoT cihaz ve framework desteği vardır.
Kaynak: http://docwiki.embarcadero.com/IoT/en/Main_Page

Karşılaştırma
• FMX mimarisinde, tek bir proje vardır. Tüm cihaz çözünürlüklerine adapte olur. Emsal geliştirme ortamlarında, her platform için ayrı bir proje ve kod yapısı vardır. Ayrıca binlerce cihaz çözünürlüklerine adapte olmaları güçtür.
• FMX mimarisinde, back-and tarafı da aynı kod syntax’ına sahiptir. Bu nedenle tek bir proje grubu tarafından hızlı bir şekilde geliştirilebilir. Bundan dolayı iş, zaman ve maliyet kazancı vardır. Diğer geşiltirme ortamlarında, back-and tarafı mobil platform syntax’ından farklı bir yazılım geliştirme dili kullanır. Bu nedenle back-and için ayrı bir proje grubuna ihtiyaç duyar. Bu durum personel, iş ve maliyeti arttırır.
• Tek bir proje ve kod gövdesi Android, iOS, Mac OS X, Windows ve Linux platformlarında doğrudan çalışır. Oysa ki deiğer geliştirme ortamlarında, masaüstü ve mobil olmak üzere iki farklı proje vardır. Her geliştirme ortamı aynı anda Android, iOS, Mac OS X, Windows ve Linux platformlarına destek vermez.
• FMX mimarisinde OS (Android, iOS, Mac OS X, Windows ve Linux) native API’lerini, araya herhangi bir katman koymadan kullanırken, emsal geliştirme ortamlarında (özellikle hybrid) dili yorumlayıp, platformun anlayacağı hale getirmesi için mutlaka bir ara atmana ihtiyacı vardır. Bu durum uygulama çalışma hızını etkiler.  
• Rad Studio’nun “geriye dönük kod uyumluluğu” %100’dür. Diğer geliştirme ortamlarında IDE’nin yeni sürüme geçmesi ile framework ve API bağımlılığından dolayı “geriye dönük kod uyumluluğu” çok düşüktür.

FMX ile yazılmış bir kaç örnek uygulama
Kore  Ulusal Acil Durum Yönetim Ajansı Uygulamsı - 119, FireMonkey ve sahip olduğu Yeni Nesil Teknolojiler kullanılarak geliştirilmiş.



Kaynak: http://c2design5sh.blogspot.com/2016/09/...elphi.html

Bir kaç örnek uygulama
https://apps.apple.com/us/app/ags-ak%C4%...1273538699
https://apps.apple.com/tr/app/fibercom-s...61294?l=tr
https://whereonthemap.com/en/
https://apps.apple.com/us/app/id1420049759
https://www.youtube.com/watch?v=4lQGA8-sO9w
https://www.youtube.com/watch?v=WEsEhGfr...e=emb_logo
Çok teşekkürler Fesih bey bu bilgileri ileride ders notları olarak ta kullanacağım inşaallah.
Mesleki ve Teknik Anadolu liselerinin Endüstriyel Otomasyon Teknolojileri alanında okutulan BİLGİSAYARLI KONTROL dersinin bireysel öğrenme materyali "BÖM" olan öğrenciler için ders notları (Dikkat öğretmen için değil) : Bilgisayarlı Kontrol Öğrenci Ders Notları
Teknik Öğretmen
Bilgisayar Formatörü
WWW
Cevapla
#3
Teşekkürler Fesih Bey. Fazlasıyla tatmin edici bir yazı.
Cevapla
#4
Çok güzel özetlemişsiniz Fesih Bey .
Bilgilendirme için Teşekkürler.

Yazılımlarınız da hayırlı olsun tekrar.
Cevapla
#5
Fesih Bey çok teşekkürler, güzel bir anlatım.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi ile Android uygulamalarının bildirimlerini loglamak denem3 0 62 02-04-2020, Saat: 09:35
Son Yorum: denem3
  Uygulamanın Güncel Platform bilgisine erişim 41linea41 3 468 23-01-2020, Saat: 01:54
Son Yorum: Fesih ARSLAN
  DElphi 10.3.2 IOS Debug kadrikaya 7 523 22-01-2020, Saat: 10:20
Son Yorum: Fesih ARSLAN
  Bluetooth Low Energy ile Multi Device Applications Murat Mecit KAHRAMANLI 1 365 07-01-2020, Saat: 15:33
Son Yorum: Murat Mecit KAHRAMANLI
  Delphi Firebase Post işlemi yhackup 9 3.094 24-12-2019, Saat: 22:20
Son Yorum: arsl01



Konuyu Okuyanlar: 1 Ziyaretçi