Masaüstü için Jetpack Compose, Swing katmanını ve Apple Silicon desteğini ekler

click fraud protection

JetBrains, açık kaynaklı, platformlar arası bir kullanıcı arayüzü geliştirme çerçevesi olan Jetpack Compose for Desktop'ın yeni bir sürümünü yayınladı.

Herhangi bir geliştirme çalışması yapıyorsanız muhtemelen JetBrains'i duymuşsunuzdur. IntelliJ (Android Studio'nun temeli), CLion, PhpStorm ve daha birçoklarını içeren devasa IDE paketinin arkasındaki şirkettir. Bunu yapanlar da onlar Kotlin, oldukça popüler platformlar arası programlama dili.

Ve JetBrains yine işe geri döndü. Bir yıldan biraz daha uzun bir süre önce Google, Android için Jetpack Compose adında yeni bir düzen motorunu tanıttı. Geçti o zamandan beri pek çok büyük değişiklik, ancak Android'in klasik XML düzenlerine göre yetkin (yine de biraz dengesiz olsa da) bir alternatife dönüştürüldü.

Jetpack Compose'un JetBrains ile ne alakası var? Öncelikle Kotlin'de yazılmış. Ancak aynı zamanda JetBrains, Compose'u masaüstü alanına taşımak için sessizce çalışıyor. İlk geliştirici önizlemesi olarak halka sunuldu ve şimdi JetBrains bunun var olduğunu resmi olarak duyurmaya hazır.

Jetpack Compose nedir?

Girişte biraz bahsettim ama biraz daha açıklamayı hak ettiğini düşünüyorum. Daha önce Android'de geliştirme yaptıysanız, muhtemelen düzenlerin nasıl çalıştığına alışkınsınızdır. Öncelikle düzeninizi bir XML dosyasında tasarlarsınız ve ardından bu düzen ile Java veya Kotlin'den etkileşime girersiniz. İşlevsel olmasına rağmen biraz eskidir ve düzenlerinizin dillere göre bölünmesini yönetmek zor olabilir.

Buna alternatif olarak Google Jetpack Compose'u geliştirmeye başladı. Compose, Kotlin'in üzerine kurulmuş Android için bir düzen motorudur. Tüm düzeniniz ve mantık kodunuz tek bir yerdedir, bu da etkileşimi çok daha kolaylaştırır. Aynı zamanda XML düzenlerinin zorunlu stili yerine bildirimseldir.

Zorunlu bir düzenden bildirimsel düzen motoruna geçişe alışmak biraz zaman alabilir, ancak Compose, hala erken aşamalarında olmasına rağmen kesinlikle XML'e göre bir gelişmedir.

Masaüstü için Jetpack Oluşturma

Dolayısıyla Compose, yerel Android uygulamaları için güzel bir düzen alternatifidir. Ancak (normalde) platformlar arası değildir. JetBrains'in devreye girdiği yer burasıdır. Şirket, Jetpack Compose'u Windows, Linux ve macOS (hem Intel hem de ARM) desteğiyle masaüstü alanına taşıdı.

Masaüstü için Electron, JavaFX ve UWP gibi başka düzen motorları mevcut olsa da, şu anda durum biraz karışık. Bazıları çapraz platform olmadığından yalnızca belirli bir işletim sisteminde çalışırlar. Diğerleri teknik olarak platformlar arasıdır ancak dağıtılması çok fazla çalışma gerektirir. Ve yine de JavaFX gibi diğerleri üzerinde çalışmak tam bir acıdır.

Öte yandan Jetpack Compose for Desktop'ın kullanımı nispeten kolaydır, ekran ölçeklendirmeyi destekler, yerleşik stile sahiptir ve (neredeyse) tamamen platformlar arasıdır. Henüz tüm dağıtımları tek bir işletim sisteminden derleyemeseniz de kodun kendisi tamamen taşınabilir. Tıpkı Android'de olduğu gibi, paketlenmiş bir uygulama Java'yı temel alır, ancak kullanıcıların onu kullanmak için bir JDK'nın kurulu olmasına gerek yoktur.

Çapraz Uyumluluk

Compose for Desktop hala yeni olduğundan bazı özellikler eksiktir. Geliştiricilerin bu sınırlamaları aşmasına yardımcı olmak için Compose for Desktop, daha popüler Java mizanpaj motorlarından ikisi olan JavaFX ve Swing ile birlikte çalışabilir. Bu motorlardan birinde (veya her ikisinde) geliştirilmiş bir masaüstü uygulamanız varsa mevcut kod tabanınızı korurken Compose'a geçiş yapmaya başlayabilirsiniz.

Android + Masaüstü

Compose Android uygulamanızı masaüstüne getirmek isterseniz ne olur? Bunu da (bir bakıma) yapabilirsiniz. Uygulamanızın kullanıcı arayüzü öğeleri Android ve masaüstü arasında kolayca paylaşılabilir. Her şeyi paylaşamazsınız ancak bu kesinlikle gelişimi kolaylaştırır.

Apple Silikon Desteği

Yukarıda bahsetmiştim ama tekrar belirteyim. yeni Apple Silikon Mac'ler oldukça şaşırtıcı, ancak işlemciler ARM CPU mimarisini temel alıyor; bu, birçok macOS uygulamasının şu anda Rosetta 2 x86 çeviricisi üzerinden çalıştığı anlamına geliyor. Apple bu çeviriyle oldukça iyi bir iş çıkarmış olsa da yerel ARM programları yine de daha iyi çalışacak.

Jetpack Compose for Desktop, Apple Silicon'u yerel olarak destekliyor. Bu, çeviriden kaynaklanan performans düşüşleri veya Apple çeviriyi durdurduğunda gelecekteki destek konusunda endişelenmenize gerek kalmayacağı anlamına gelir.

İşlevsellik

Yani JetBrains'in masaüstü için yeni bir düzen motoru yapmış olması iyi ve güzel, ama bunun şu anda sahip olduğumuzdan daha iyi olduğunu kim söyleyebilir?

Ben.

SystemUI Tuner için basit bir izin verme uygulaması yapmak için bunu yazarken mevcut en son yapıyı (0.2.0-build132) kullandım. Compose ve bildirimsel tasarıma pek aşina olmadığım için benim için XML düzeni uygulamasından biraz daha zordu ama başardım. Ve kullanımı JavaFX'ten çok daha kolaydır.

Tema desteği (yani karanlık mod) hala biraz şüpheli olsa da, etkileşimli bir düzen oluşturmak oldukça kolaydır ve pencereyi yeniden boyutlandırırken birkaç titreme dışında her şey iyi çalışıyor.

Uygulamayı kontrol etmek istiyorsanız kaynak kodu şu adreste mevcuttur: GitHub. Sadece IntelliJ veya Android Studio ile içe aktarın ve çalışmaya hazır olmalıdır.


Kişisel olarak Jetpack Compose for Desktop konusunda oldukça heyecanlıyım. Daha önce varlığından bile haberim yoktu ama bu benim tercih ettiğim masaüstü düzeni motoru. Daha fazlasını şu adresten öğrenebilirsiniz: Masaüstü web sitesi için Jetpack Compose veya GitHub'da.

Bu konu hakkında ne düşünüyorsun? Göz atmaya ve hatta mevcut diğer çerçevelerin yerine kullanmaya değer mi? Bana bildirin!

Öne çıkan görsel katkıları: GitHub'da JetBrains