Kıdemli Yazılım Mühendisi
Geliştirici
Remote Compose, etkileyici ve etkileşimli kullanıcı arayüzünü widget'lar gibi uzak yüzeylere yansıtmanın yeni bir yolunu sunar. RemoteCompose, düzenleri kompakt ikili yükler halinde serileştirerek kullanıcı arayüzünü ana makine yürütme işleminden ayırır ve önemli avantajlar sağlar.
Önemli avantajlar arasında, uzak cihazda yerel yürütme yoluyla yüksek performanslı oluşturma sağlayan uç etkileşimlilik, kullanıcı arayüzlerinin uzak taraf bileşen değerlendirmeleri aracılığıyla çeşitli form faktörlerinde yeniden akış yapmasına olanak tanıyan akıcı ölçeklendirme ve tanıdık Jetpack Compose API'leri aracılığıyla platforma özel uzak kullanıcı arayüzü çerçevelerine olan ihtiyacı ortadan kaldıran birleşik bir geliştirici iş akışı yer alır.
Bu oturumda, bu avantajları ayrıntılı olarak ele alacak ve modern Wear OS widget'ları ile Runkeeper'daki göz atılabilir Wear Workout Tracker deneyimi de dahil olmak üzere canlı üretim örnekleri sunacağız.
Transkript
Herkese merhaba.
Ben Nicolas Roard. Remote Compose projesinin teknik lideriyim.
Ben John Hoford.
Remote Compose'da geliştiriciyim.
Ben de John Zoeller. Wear OS'te geliştirici ilişkileriyle ilgileniyorum.
Peki, o zaman başlayalım.
Öncelikle, Remote Compose ile çözmeye çalıştığımız sorunun ne olduğuna dair kısa bir genel bakış sunacağım.
Android'de kullanıcı arayüzü hakkında konuştuğunuzda veya düşündüğünüzde genellikle kullanıcı arayüzünü uygulamanızın ve uygulama sürecinizin bir parçası olarak düşünürsünüz, değil mi?
Kullanıcı arayüzünüzü alıp paketlemek ve uzak bir yüzey gibi başka bir yere göndermek istediğiniz birçok farklı yer vardır.
Uzaktan yüzey derken saat stilleri, widget'lar, hatta kendi uygulamanız veya farklı bir uygulama gibi örnekleri kastediyoruz.
Bunların hepsi uzak yüzey örnekleridir.
Yani başka bir yerde (uygulamanızda veya bir sunucuda olabilir) bu uzak yüzeye ne gönderileceği bilinir.
Ayrıca…
Peki ya hoparlörüm?
Bu ikisi arasında aslında bir mesafe vardır.
Bu mesafe gerçek bir mesafe de olabilir, ağ bağlantısı da olabilir, değil mi?
Yalnızca bir işlem sınırı da olabilir.
Aynı cihazda olabilirsiniz.
Ancak ne olursa olsun, bir maliyeti vardır.
Bu kullanıcı arayüzünü alıp göndermenin en basit yolu, ekran görüntüsünü alıp göndermektir.
Ancak bu yöntem çok hızlı değil.
Uzaktan oluşturma ile bunun yerine, kullanıcı arayüzünü temsil eden bir doküman göndeririz.
Küçük bir ekip olmanın birçok avantajı olduğunu unutmayın.
Bu önemli.
Bunu, gönderdiğiniz ilk Pixel'de gördük ancak bu, aslında o yüzeyde yapmak istediğiniz her türlü güncelleme için geçerli, değil mi?
Gidiş dönüş biletini aldınız.
Böylece, uzaktaki yüzeyde bir etkinlik, tıklama veya dokunma gibi bir işlem gerçekleşir.
Yeni bir sürüm almak için belgeyi oluşturan kişiye geri dönmeniz gerekir.
Bu da iyi bir şey değil.
Uzaktan Oluşturma ile çözmeye çalıştığımız sorun da bu.
Belgenin gönderildiğini gördük.
Belgenin yanında, çok önemli olan birkaç alan var.
Bunlardan biri, dokümanı nasıl oluşturduğunuzdur.
İkincisi ise nasıl oynadığınızdır.
Bir doküman oluşturduğumuzu belirtmiştim.
Ekran kopyası veya uygulama göndermiyoruz.
Bu belgeyi oluşturmanıza yardımcı olacak üç farklı yöntemimiz var.
Birincisi Compose API, ikincisi prosedürel Kotlin API (KMP) ve üçüncüsü JSON biçimidir.
Hepsi aynı baytları yayar.
Bu nedenle, bu belgeleri oluşturmak için bir dizi araç sunuyoruz ve Compose API ile Android Studio'daki mevcut araçlardan yararlanabiliyoruz.
Örneğin, geliştirdiğiniz içeriği doğrudan IDE'de canlı olarak görmek için önizlemeyi kullanabilirsiniz.
Ancak doküman denetleyici gibi yeni ve güçlü araçlar üzerinde de çalışıyoruz.
Şimdi belgenin ne olduğuna kısaca göz atalım.
Temel olarak, kompakt bir ikili gösterimde kodlanmış işlemlerin listesidir ve bu işlemler, uzak yüzeye gönderilebilecek bağımsız bir kullanıcı arayüzünü tanımlar.
Bu belgelerin çok önemli bir özelliği, küçük olmalarıdır.
Gördüğümüz kadarıyla küçük olması iyi bir şey.
Yani genellikle birkaç kilobayttan bahsediyoruz, değil mi?
Ancak çok uyarlanabilir bir düzene sahip daha karmaşık bir kullanıcı arayüzünde bile, birkaç düzine kilobayttan bahsediyoruz, değil mi?
Tüm öğeleri bu dokümanda toplarız.
Yani düşünürseniz, belgede gerçekten yer kaplayabilecek tek şey, bit eşlemleri paketlemeye başlamanızdır.
Bu nedenle bunu aklınızda bulundurun.
Ekran kopyası yerine belge göndermemizin nedeni de budur.
Küçük ve önemli olmaktan bahsettiğimizde, bu sadece iletişimle ilgili değildir.
Bu, Remote Compose'un felsefesinin temelindeki uç durumlardan biridir.
Gördüğümüz gibi, ilk pikselin ekranda görünmesi için gereken süre üzerinde etkisi var, ama hay aksi, üzgünüm.
Ayrıca, yüzeyin eşit kapasitelerini eşit yeteneklerde kullanabileceğimiz, verimli olmaya devam ederken aksi takdirde kullanabileceğimizden daha fazla belge kullanabileceğimiz anlamına da gelir.
Widget'ları desteklediğimizde bundan yararlandığımızı göreceğiz.
Oynatıcılar da genellikle oldukça küçüktür ve çok az bağımlılıkları vardır.
Küçük olmaları ve az sayıda bağımlılık içermeleri, Remote Compose belgelerini oynatabileceğimiz yerlerin kapsamını genişletebileceğimiz anlamına gelir.
Göreceğiniz üzere bu, özellikle kısıtlı platformlar için önemlidir.
Aktarım ve mesafe hakkında çok konuştum ancak Remote Compose tek başına aktarımla ilgilenmez.
Bu sizin sorumluluğunuzdadır.
Tüm bunları bir bayt arabelleğine paketleriz. Ardından, uygun yöntemle uzak yüzeye gönderebilirsiniz.
Widget'lar için size yardımcı oluyor ve bir bağlayıcı sağlıyoruz.
Ancak genel olarak, taşıma işleminden sizin sorumlu olduğunuzu unutmamanız faydalı olacaktır.
Oyuncu bu belgeyi aldıktan sonra, gönderdiğiniz yöntem ne olursa olsun, işlem listesini çıkarabilir ve bunları çizim komutlarına, düzen ağaçlarına, ifadelere dönüştürebilir ve tüm bunlar bir araya gelerek gerçekten zengin bir kullanıcı deneyimi oluşturabilir.
Belgeyi nasıl aktarmak istediğinize karar verme yetkisini size vererek Remote Compose'u birçok senaryoda araç olarak yeniden kullanabilmenizi sağlıyoruz. Bu senaryolardan bazıları bizim bile aklımıza gelmemiş olabilir.
Belge bir oynatıcı tarafından yüklendikten sonra kendi kendine çalışır.
Tüm fikir de bu zaten.
Dokümanın bir şekilde otonom olan ve onu oluşturan kişiye geri dönmek zorunda olmayan bir kullanıcı arayüzü oluşturmasını istiyoruz, değil mi?
Tüm bunlar bir araya geldiğinde yeniden boyutlandırma, kaydırma, dokunma etkinlikleri, bileşenleri gösterme veya gizleme, animasyon, bazı dokunma etkinlikleri ve bazı dokunma işlemleri gibi her şey oynatıcıya geri dönmek zorunda kalmadan dokümanda yapılabilir.
Bazen de oluşturma aşamasına geri dönmeniz gerekirse "Lütfen bana yeni bir doküman ver." diyerek işlem isteğinde bulunabilirsiniz.
Remote Compose'da çoğunlukla AndroidX kitaplıkları aracılığıyla üç resmi oynatıcı sunuyoruz.
Biri Compose oynatıcıdır. Bu oynatıcıyı Compose uygulamanızda kullanabilirsiniz.
Hâlâ View kullanıyorsanız View oynatıcımız da var.
Ayrıca API 36'dan beri Android platformunda sunulan bir RemoteViews uygulamamız da var. Bu uygulama, Remote Compose'u kullanarak başlatıcıda çalışan Android widget'ları oluşturmanıza olanak tanır.
İlgileniyorsanız Skia, TypeScript ve hatta Compose Multiplatform üzerinde çalışan bazı C++ oynatıcılarımız da var.
Yani, kullandığınız teknolojinin aynısı, birçok farklı yüzeyde ve platformda içerik oluşturmak için kullanılabilir.
Özetlemek gerekirse, bahsettiğim mesafe hâlâ var ancak biz bunu yalnızca gerçekten önemli olduğunda dikkate almaya çalışıyoruz.
Evet.
Şimdi, Uzaktan Oluşturma dokümanında kullanabileceğiniz özelliklerden biraz bahsedelim.
Temelinde bir Canvas var ve Android Canvas'ın tüm özelliklerini içeriyor.
Ancak birkaç ek API daha var.
Ancak özel olan şeylerden biri, Android Canvas'ta bulunan tüm kayan değerlerin ifadelerle değiştirilebilmesidir.
Bu sayede burada gördüğünüz gibi animasyonlar, dinamik ölçeklendirme ve esnek düzenler kullanabilirsiniz.
Bu verilerle birçok farklı şey yapılabilir.
İfadeler hakkında biraz daha bilgi verelim.
Normal matematik, trigonometri, dizi erişimi, spline interpolasyonu gibi zengin bir operatör setiniz var.
Güzel özelliklerden biri de değişen her değerin animasyonlu hale getirilebilmesidir. Böylece herhangi bir değerin durumundaki değişikliği animasyonlu hale getirebilirsiniz.
Burada gördüğünüz çizimde her sarkaç farklı bir animasyon türü seçiyor ve bunların tümü Remote Compose'da mevcut.
Bunun yanı sıra temel bileşenler, Compose öğeleri ve bildiğiniz diğer öğeler var.
Çok tanıdık bir API, kutu, satır, sütun gibi şeyler üretir.
Ancak bunun yanı sıra uyarlanabilir bileşenlerimiz de var.
Bunun iyi yanlarından biri, o noktada dokümanınızın kontrolü sizde olmadığı için bu araçların, dokümanın kaynağına geri dönmeden, yeniden boyutlandırma vb. nedenlerle kaybolan, görünen, giden ve geri gelen nesneleri işleyebilmesidir.
Bunun yanı sıra bileşen animasyonu da var.
Tüm değişikliklere animasyon uygulanabilir. Bu nedenle, bir öğe kaybolursa animasyon uygulayabilirsiniz.
Kendi özel animasyonlarınızı da yazabilirsiniz.
Burada, bazılarının gölgelendirici ve her türlü şeyi kullandığını görüyorsunuz.
Ayrıca, bu platformda etkileşim de kurabiliyoruz. Yani sadece güzel resimler paylaşmıyoruz.
Öğeleri tıklayabilir, dokunma etkinlikleri, kaydırma gibi işlemler yapabilirsiniz.
Erişilebilirlik de önemlidir. Bu nedenle, tüm Accessibility API'leriniz de buradadır.
Burada gördüğünüz şeylerden biri, ilginç kullanıcı arayüzlerine sahip tam bir kronometre oluşturduğum ve tüm bunların oyuncu tarafında gerçekleştiği.
Hepsi dokümanda yer alıyor.
Gördüğünüz her şey için sunucuya geri dönülmez.
Şimdi, bunu bir uygulama içinde oluşturduysanız bu durumda mavi kısımlar bir uygulama, siyah kısımlar ise Uzaktan Oluşturma belgesidir.
İkisi arasında etkileşim kurabilirsiniz.
Burada değerleri artırıyorum ve uygulamanın (ana makine olarak adlandırdığımız) bu değerleri aldığını görüyorsunuz. Ayrıca bir kaydırma çubuğunu hareket ettirebiliyorum ve bu, dokümandaki değerleri değiştiriyor.
Bu nedenle, her iki yönde de ilerleyebilirim.
Şimdi bu belgelerden birini nasıl oluşturacağınızı inceleyelim.
Aslında üç API vardır: Compose, Kotlin ve JSON.
Compose API'nin nasıl bir şey olduğunu az çok biliyorsunuz.
Bu yöntemin birkaç püf noktası var. Bunları ayrıntılı olarak inceleyeceğiz.
Kotlin API'si oldukça prosedüreldir.
Dokümanda bir komut girersiniz ve bu komut bire bir karşılık bulur.
JSON, JSON söz dizimidir. Bunu Remote Compose'a dönüştürecek dönüştürücülerimiz vardır.
Ayrıca, belgeleri okuyup yazabildikleri için LLM'lerle çalışırken de faydalıdır.
Şimdi Compose'a gidip bir şeyler oluşturalım.
Bu durumda, bunun bir composable ve uzak composable olduğunu görürsünüz.
Bir tuvalimiz var. Tuval değil de uzak tuval ve uzak değiştiricilerimiz var. Ancak değiştiriciler, bildiğiniz ve sevdiğiniz değiştiricilerle aynı.
Şimdi, içindeki tüm komutlar aslında ilerledikçe uzaktan komut Remote Compose doküman komutları oluşturuyor.
Bu örnekte bir daire çizip ardından bazı kayan değerler ve ifadeler ekleyerek bu ifadelerde zamanı kullanıyoruz.
Animasyonda etkinleştirdiğimde, bunun Android Studio'dan canlı bir önizleme olduğunu ve sizin için canlı olarak çalışacağını görebilirsiniz.
Bu ifadeleri görüyorsunuz.
Şimdi bunun ne anlama geldiğini ve nasıl çalıştığını biraz inceleyelim.
Sol tarafta, e-tabloya benzeyen bir şey olduğunu göreceksiniz.
Bu, kayan değerlerin tablosudur.
Ayrıca bir bağımlılık ağacı da vardır. Böylece bir şeyin başka bir şeye nerede bağlandığını bilirsiniz.
Bir şey değiştiğinde, bağımlı olduğu öğeler temizlenmek ve ayarlanmak üzere kirli olarak işaretlenir.
Çalışırken tüm bağımlılıkları temizler ve yalnızca değişenleri değerlendirir.
Bu nedenle çok verimlidir ve boyut gibi bir nesnenin değiştiği bir durumda, bu bağımlılık değişir ve bunu yansıtması gerekir.
Bu da hesaplamayı çok verimli hale getiriyor. Çünkü yukarıdan aşağıya doğru çok verimli bir şekilde ilerliyorsunuz.
Şimdi bu saat örneğini biraz genişletelim ve gerçek şeyler, biraz daha gerçek şeyler oluşturabileceğimizi gösterelim.
Bu örnekte, kenarlara bazı işaretler ekleyeceğiz ve bazı for döngüleri göreceksiniz. Böylece yerel ve sağda bir tür for döngüsü oluşturabilirsiniz.
Ardından akrep ve yelkovan ekliyoruz. Sonra saniye ekliyoruz. Son olarak da birkaç farklı düğme ekleyerek saati tamamlıyoruz ve çalışan bir saatimiz oluyor.
Aslında saati gösteriyor.
İlginç olan bir diğer nokta da aynı şeyi JSON'da yazabilmeniz. JSON'da yazılmışsa bir LLM ile kolayca etkileşime geçip "Yelkovanı yeşil yap" diyebilirsiniz. LLM ne demek istediğinizi anlayacaktır.
Bu açıdan çok iyi.
Anladım.
Doğru.
Umarım bu bilgiler, Uzaktan Oluşturma'nın özellikleri hakkında fikir vermiştir.
Size sunduğumuz geliştirici desteğinden biraz bahsedeyim.
Bunların temel olarak AndroidX kitaplıkları olduğunu söylemiştim. DAC'deki her şeyi nerede bulacağınızı biliyorsunuz.
En son sürümleri, belgeleri ve diğer her şeyi alırsınız.
John, Android Studio'da neler yapabileceğimizi gösterdi.
Bence en iyi özellik, geliştirme süresini gerçekten kısaltan canlı önizleme.
Üzerinde çalıştığımız bir diğer konu da biçim için herkese açık bir tür açık spesifikasyon, değil mi?
Tamamen gizli bir şey yapmaya çalışmıyoruz, her şey ortada.
Nasıl çalıştığını, nasıl oluşturulduğunu ve kodlandığını görebilirsiniz.
Uygulamalarınızda sıkça kullandığınız öğelerden biri animasyonlu drawable vektörlerdir. Bu öğelerin çok kullanışlı olduğu açık.
Bit eşlemlerle ilgili söylediklerimi hatırlayın.
Bitmap değil, vektör göndermeniz bizim için çok önemli.
Bu nedenle, örneğin bir Lottie'yi veya başka bir biçimi alıp RemoteCompose dosyanızda kullanabileceğiniz bir RemoteCompose bileşenine dönüştürmenize yardımcı olacak birkaç araç geliştiriyoruz.
Daha önce ek araçlar üzerinde de çalıştığımızdan bahsetmiştim. Özellikle de dokümanlar için canlı denetleyici gibi bir araç üzerinde çalışıyoruz. Çünkü geliştirici deneyimine sahip olmak bir şey, bu oluşturma işleminin sonucunu inceleyebilmek başka bir şey.
Bizim örneğimizde bu bir doküman.
Üzerinde çalıştığımız araca hızlıca bir göz atalım.
Bu, RemoteCompose belge denetleyicisidir. Adından da anlaşılacağı gibi belgeleri incelemenize ve bunlara çeşitli faydalı araçlar ve görselleştirmeler uygulamanıza olanak tanır.
Bunun güzel bir örneği, bir dokümanı açıp içindeki farklı işlemleri adım adım uygulayarak her şeyin birbiriyle nasıl bağlantılı olduğunu daha iyi anlamaya çalışmaktır.
Ancak başka araçlarımız da var.
Örneğin, dokümanınızı farklı yoğunluk ve boyutlarda anında görselleştiren bu özelliği çok seviyorum. Bu sayede, oluşturduğunuz içeriğin farklı boyut değişikliklerine iyi uyum sağlayıp sağlamayacağını çok hızlı bir şekilde görebilirsiniz.
Üzerinde çalıştığımız en yeni özelliklerden biri de tam teşekküllü bir Layout Inspector. Android Studio'da alışık olduğunuz düzen denetleme özelliklerini işlemlere ve belgelere uygulayabileceksiniz.
3D konusunda daha da ileri gidebiliriz.
Daha önce de bahsettiğim gibi, umarım şimdiye kadar küçük olmanın bir özellik olduğuna sizi ikna etmişimdir.
Bu önemli.
Küçük belgeler tercih edilir.
Bu, herkes için faydalıdır.
Lütfen yapın.
Peki, bu konuda ne yapabiliriz?
Kullanıcı arayüzüyle ilgili yaygın bir örneği ele alalım.
Birçok satırın olduğu bir tablo.
Satırlarda bir ad, küçük bir grafik ve belki bir düğme var.
Bu oldukça normal bir durum.
Bu kullanıcı arayüzünün boyutu zaten oldukça küçük.
Yaklaşık 25 kB'tan bahsediyoruz ancak RemoteCompose'da bunu daha da küçültmenize yardımcı olacak çeşitli işlevler var.
Şimdi bunlara göz atalım.
İlk olarak, aynı dizeleri gönderiyorsanız bunu fark ederiz. Bu ücretsiz bir işlemdir ve sizin için biz yaparız.
Aynı dizeye işaret ederek birkaç bayt tasarruf edebiliriz.
Ancak döngüler gibi daha fazla özellik sunuyoruz.
Burada küçük grafiğimi çizmek için bu döngü işlemini kullandım, değil mi?
Bu da birkaç bayt daha tasarruf sağlar.
İşlevler de vardır.
Yani bir işlev oluşturabilirsiniz. Burada bunu o grafik için tekrar yapıyorum ve ardından bu grafiği birden çok kez çağırabiliyorum.
Bu da bana birkaç bayt kazandıracak.
Bileşenler için şablonlarımız var, değil mi?
İşlevlerle benzer fikirler, ancak daha çok bileşen için, değil mi?
Bu sayede, tüm bu farklı bileşenleri ve satırları, şablonu doğru parametrelerle çağırarak değiştirebiliyorum. Bu da dokümanda çok fazla yer tasarrufu sağlıyor.
Son olarak, belgeyi sıkıştırma özelliğini de destekliyoruz.
Genel olarak, bu yöntemle belgenin boyutunun yaklaşık yarısı kadar tasarruf edebilirsiniz.
Belgenin başlığı biraz özeldir.
Sıkıştırma işlemi yapmayız.
Bu, sıkıştırmayı açmak zorunda kalmadan çok sayıda belgeyi hızlıca incelemek istediğinizde çok kullanışlıdır.
Özetle, belgeler varsayılan olarak küçüktür ancak bunları daha da küçültebilirsiniz.
Bu küçük örnekte, bir özelliği küçültmenin ne kadar kolay olduğunu ve bunun boyutunu nasıl bir kat küçülttüğünü görebilirsiniz.
Android platformundaki widget'lardan ve özellikle başlatıcı widget'larından bahsettim.
Şimdi neler yaptığımızdan ve mevcut olanlardan biraz bahsedelim.
Yapabileceğimiz ilk şey, mevcut bir widget'ı (ör. saat) tamamen RemoteCompose'da kopyalamaktır. Bu widget, RemoteCompose'da temelde aynı şekilde davranır.
Ancak daha fazlasını yapabiliriz, değil mi?
Yani daha uyarlanabilir bir kullanıcı arayüzü, yeniden boyutlandırılan ve doğru şekilde animasyonlu widget'lar oluşturmak istiyorsanız artık bunu yapabilirsiniz.
Çünkü uzaktan görünümlerle yapabileceklerinizin aksine, bunu yapmak için doğru temel öğelere sahibiz.
Aslında size çok daha fazla esneklik ve güç sunuyoruz.
Güçten bahsetmişken, yapabileceğiniz çılgınca şeylere dair kısa bir örnek verelim.
Bu widget'ta oyunun tamamı gösterilir.
Bu widget'ın gerçek boyutunu gösterebilirim.
4 KB'tan bahsediyoruz.
Uzaktan oluşturma özelliğinde taşıma işlemiyle doğrudan ilgilenmediğimizi belirtmiştim.
Ancak widget'lar için, bir dokümanı kolayca alıp başlatıcıya göndermenize olanak tanıyan bir RemoteCompose Widget bağlayıcı sınıfı sunuyoruz.
Bununla birlikte, halihazırda widget'larınız varsa Glance'i kullanmaya devam etmenizi öneririz. Glance'in en yeni sürümü, platformda Remote Compose'u yayınlamak için otomatik olarak bir arka uç sağlar.
Şimdi de Wear OS'ten bahsedelim.
Teşekkürler Nico.
Herkese merhaba.
Ben John Zoeller.
Bugün size Wear OS'ten bahsedeceğim.
Bu sunum için yaklaşık 30 şaka yazdım ama hepsini anneme anlattım ve bunlardan herhangi birini anlatırsam kovulacağımı söyledi.
Bu yüzden bunu atlayıp sadece sunumu yapacağım.
Şimdi Remote Compose'dan ve Wear OS'te sunduğu bazı önemli avantajlardan bahsedelim.
İlk olarak yeni Wear OS Antrenman Takibi özelliğinden bahsedeceğiz.
Bunu oluşturmak için Remote Compose'u kullandık. Wear için tam özellikli ve yüksek kaliteli bir antrenman takip uygulaması oluşturmanın gerçekten zor olduğunu biliyoruz.
Bu işlem biraz zaman alır.
Bu nedenle, sizin için bu işlemi gerçekleştirdik ve canlı metrikler ile medyayı kontrol edebilme gibi gerçekten güzel, yeni ve modern antrenman özellikleri ekledik.
Uzaktan oluşturma sayesinde kullanıcı arayüzünü tüm yürütme işlemlerinden ayırabildik. Böylece çok verimli bir şekilde çalışabiliyor ve kullanıcıların pillerinin bitmesini önlüyor.
Remote Compose olmadan, bunu yalnızca normal Compose ile yapsaydık ekranda saniye saniye yenilenen canlı metrikler elde edemezdik.
Yalnızca bir metrik göstermek için saati ambiyans modunda uyandırmanız gerektiğinden bu işlem aslında bir dakika sürer.
Bu büyük bir avantaj.
Aslında bu bir GIF, inanır mısınız bilmem.
Bu bir resim değil.
Henüz hareket etmediğini biliyorum. Yaklaşık 45 saniye sonra, bir sonraki metrik güncellemesine ulaştığımızda hareket edecek.
Ancak uzaktan oluşturmanın avantajı da budur.
Dahası…
Wear Workout Tracker uygulaması kullanılabilir.
ASICS Runkeeper uygulaması, yeni uygulamasını bu özellik ile geliştirdi. Bu bağlantıyı takip edip açık beta testine katılarak yeni uygulamayı hemen deneyebilirsiniz.
Sırada Wear OS widget'ları var.
Bu, Uzaktan Oluşturma özelliğinin nasıl işlediğine dair güzel bir örnek.
Bunlar, eski ProtoLayout Tiles kitaplığının yerini alır. Bu sayede, farklı cihazlar için iki farklı türde kullanıcı arayüzü çerçevesini desteklemeniz gerekmez.
Uzaktan Oluşturma ile tüm bunları yapabilirsiniz.
Jetpack Glance'in bir parçası oldukları için Wear OS'teki widget'lar, birleştirilmiş Android widget ekosisteminin bir parçasıdır.
Bu ekosistemin bir parçası olarak RemoteCompose widget'larının kullanıcı arayüzü, belirli bir uygulama sürecinden tamamen ayrılmıştır. Bu sayede, Android yığınının geri kalanıyla aynı teknolojiyi kullanarak Wear OS cihazlarda güvenli bir şekilde serileştirilebilir ve oluşturulabilir.
Remote Compose, widget'lara modern grafikler ve duyarlı düzenler de getirir. Tüm bunları yaparken çok verimli çalışır ve pilinizi korur.
Wear OS 7 ile donanım üreticileri dikey olarak kaydırılan tepsileri kullanmaya başladı.
Bu, Samsung Galaxy Watch. Widget'ların tepsilerde dikey olarak nasıl kaydırıldığını görebilirsiniz.
Kartınızı widget'a taşıma hakkında daha fazla bilgi edinmek için bu bağlantıya göz atabilirsiniz.
Kartlar için yatay rulo kullanan eski cihazlarda widget'lar otomatik olarak tam ekran kart şeklinde gösterilir.
Ayrıca Wear OS 4 ile tamamen geriye dönük uyumludur.
Ayrıca bu bağlantıdan geriye dönük uyumluluk hakkında daha fazla bilgi edinebilirsiniz.
Widget'ları kullanmaya başlayan başka iş ortaklarımız da var.
Göz atabilirsiniz.
Benim anlatacaklarım bu kadar.
Evet, söz sende Nico.
Teşekkür ederiz.
İşte böyle.
Konuşmamızın sonuna geldik.
Uzaktan Oluşturma'nın bazı özelliklerini inceledik.
Bahsetmediğimiz birkaç tane daha var.
Çok zengin bir çerçevedir.
Mevcut ve yakında yayınlanacak dokümanları incelemenizi öneririz.
Hedefimiz, tüm bu farklı uzak yüzeyleri ele almak için Remote Compose'u kullanabileceğiniz bir gelecek inşa etmek.
Wear ve widget'lar gibi bazılarını gördünüz.
Ancak daha fazlası da var.
Bunun devam eden bir proje olduğunu da söyleyebilirim.
Bu özellik aktif olarak geliştirilmektedir.
Tüm bunları açık kaynaklı olarak geliştiriyoruz.
Neler yaptığımızı görebilirsiniz.
Ancak geliştiricilerin görüşlerini de öğrenmek istiyoruz.
Bunu sizin için geliştiriyoruz.
Başka fikirleriniz veya eksik olduğunu düşündüğünüz noktalar varsa bizimle iletişime geçebilirsiniz.
Bunu duyduğumuza sevindik.
Sözlerimi bitirirken, az önce gördüğünüz sunumun tamamının animasyonlar da dahil olmak üzere Remote Compose'da hazırlandığını belirtmek isterim.