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
#6
hocam merhaba linux server internet ortamına nasıl açacaz bunun la alakalı ya seminerde bilgi yok ya ben kaçırdım bununla alakalı ü
bir bilgi veya kaynak gösterirseniz sevinirim
şimdiden çok teşekkür ederim
Cevapla
#7
(09-05-2020, Saat: 22:53)namun Adlı Kullanıcıdan Alıntı: hocam merhaba linux server internet ortamına nasıl açacaz bunun la alakalı ya seminerde bilgi yok ya ben kaçırdım bununla alakalı ü
bir bilgi veya kaynak gösterirseniz sevinirim
şimdiden çok teşekkür ederim

Merhaba,
Genellikle bir hosting'ten sanal sunucu kiralıyorum.
Bu sunucular doğal olarak internet ortamına açık.
Kendinize ait bir bilgisayarı kullanacak iseniz; modem üzerinden port yönlendirme ve sabit IP konularını araştırın.
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
#8
hocam söylediğiniz konuyu inceledim lakin sunucu kiralamak aylık 300 liradan başlıyor ve bu rakam çok yüksek
buınunla alakalı bir meteryal yada kaynak varmı acaba teşekkürler
Cevapla
#9
(10-05-2020, Saat: 18:36)namun Adlı Kullanıcıdan Alıntı: hocam söylediğiniz konuyu inceledim lakin sunucu kiralamak aylık 300 liradan başlıyor ve bu rakam çok yüksek
buınunla alakalı bir meteryal yada kaynak varmı acaba teşekkürler

Merhaba,
hangi firmadan baktınız? 
300 liraya çok yüksek gereksinimli bir sisteme bakmışsınız büyük ihtimalle.
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla
#10
ben site değil kaynak sordum bu yazdıkalrını biliyorum benim dediğim hocamın anlatımı gibi seminerlerde
orada her şeyi çok detaylandırmış. seminer gibi vb kaynak sordum
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  delphi 10.4 uzak mysql bağlantı wiseman 6 257 13-09-2020, Saat: 20:08
Son Yorum: mcuyan
  [ ÇÖZÜLDÜ ] Play Console İmza Sorunu ? Delphi 10.3 Mr.Developer 12 4.348 07-09-2020, Saat: 12:52
Son Yorum: codder71
  Delphi 10.4 - INSTALL_FAILED_OLDER_SDK hayalyilmaz43 3 277 03-09-2020, Saat: 09:40
Son Yorum: Fesih ARSLAN
  Delphi 10.4 Play Protect Tarafından Engellendi. hayalyilmaz43 2 276 19-08-2020, Saat: 20:23
Son Yorum: hayalyilmaz43
  Delphi 10.3.3 AppStore Yayınlama narkotik 9 864 05-08-2020, Saat: 20:39
Son Yorum: narkotik



Konuyu Okuyanlar: 1 Ziyaretçi