Katlanabilir Cihazlar İçin Uygulama Geliştirme

En son güncellendiği tarih: 3 gün önce

Son zamanlarda Android dünyasında konuşulan konulardan birisi de katlanabilir cihazlar olmaya başladı. Bu konuda Google ve Samsung ortaklığında Galaxy Fold cihazı duyurulduktan sonra Huawei ise Mate X cihazını duyurmuştu. Duyurulan yeni nesil katlanabilir cihazların ardından ise geliştiricilerin kafasında nasıl katlanabilir cihazlar ile uyumlu uygulamalar geliştirecekleri konusunda soru işaretleri belirmeye başladı.


Akıllı telefon ve Katlanabilir telefon ile kullanıcı deneyimini karşılaştırma

  • Ekranlara daha geniş ve daha büyük ekran varlıkları sağlar.

  • Ekrandaki içeriği daha ayrıntılı olarak verir.

  • Zengin ve sürükleyici bir deneyim sağlar.

Katlanabilir telefon, çoklu görev sağlamak için çok aktif pencerelerin en iyi özelliklerinden birine sahiptir. Bu da daha büyük bir ekran boyutunun ilgi çekici bir deneyim sağladığı anlamına gelir.


Katlanabilir cihazlar için optimize edilmiş uygulamalar, çözünürlükler ve yoğunluk gibi farklı ekran niteliklerini göz önünde bulundurmanın yanı sıra ekranlar arasında sorunsuz bir şekilde geçiş yapmalıdırlar.


Google’ın temsilcisi Dave Burke, katlanabilir deneyimi , uygulama deneyiminin daha büyük ve daha küçük ekranlar arasında sorunsuz bir şekilde aktarıldığını “Ekran Sürekliliği” olarak nitelendirdi.


Bu yazımızda ise uygulamalarımızın nasıl katlanabilir cihazlara uyarlanacağını ele alacağız.


Not: Katlanabilir emülatörün kesinlikle bir beta ürün olduğu ve birkaç hatayla karşılaşabileceğiniz konusunda uyarıda bulunayım.


Düşünmemiz gereken ilk şey Ekran Sürekliliği.


Örneğin kullanıcıların Google Haritalar’a katlanmış konumdan baktığını düşünelim. Bu yeni teknolojiyle, kullanıcıya cihazını açtıktan sonra, süreklilik gösteren bir deneyim sunuyor olmalısınız. Örneğin Google Haritalar’da, kullanıcı cihaz genişletildiğinde haritanın daha fazlasını görmeyi bekleyebilir.


Aygıt açıldığında bir yapılandırma değişikliği tetiklenmiş oluyor. Bunları şu şekilde ele alabiliriz

  • smallestScreen

  • Sizescreen

  • SizescreenLayout


En iyi kullanıcı deneyimini sunmak için AndroidManifest dosyanıza şu kodu eklemelisiniz:



Uygulamanızın çoklu pencere modunda ve dinamik yeniden boyutlandırma ile çalışmasını sağlamalısınız. Bunu yukarıdaki gibi resizeableActivity=true şeklinde ayarlayarak yapabilirsiniz. Bu değer uygulamanızın ekran genişliğine göre otomatik olarak yeniden kendisini boyutlandırmasını sağlamaktadır. Bu değer belirtilmediği sürece default olarak true şeklinde set edilecektir.

Örneğin, yandaki activity için resizableActivity=false ile birlikte maxAspectRatio ayarlanmıştır. Cihaz açıldığında, uygulama uyumluluk moduna getirerek etkinlik yapılandırması, boyut ve en boy oranı korunur.




Görüntü geçişi ve çoklu pencere sırasında görünüm düzeninizi manuel olarak güncellemek için , aşağıdaki örnekte olduğu gibi manifestde android: configChanges niteliğini eklemelisiniz.



Bu yapılandırma değişikliğini ele almak için, kullanıcının bulunduğu durumu kurtarmak ve gerekenleri yeniden hesaplamak için onSavedInstanceState ve ViewModel kullanmanız gerekir. Örneğin yaptığımız demoda bir videoView üstünde video oynatılırken cihaz katlanır yada açılırsa ne olacak ? Eğer onSavedInstanceState kullanmazsak her ekran değişiminde activity yeniden yaratılacak ve video en baştan oynamaya başlayacaktır.



Android 9.0 ve önceki sürümlerde çalışırken, yalnızca odaktaki uygulama devam ettirilmiş durumdadır. Diğer görünür etkinlikler ise duraklatılırdı. Bu, uygulamalar kaynakları kapattıklarında veya duraklattıklarında içerik oynatmayı durdurduğunda sorunlara neden olabilmektedir.


Android 10'da, bu davranış değişti. Böylece aygıt çoklu pencere modundayken tüm Etkinlikler devam ediyor durumda kalıyor. Buna multi-resume adı verilir . Üstünde saydam bir etkinlik varsa veya etkinliğe odaklanmıyorsa etkinliğin duraklatılabileceğini unutmayın . Ayrıca bildirimler çekmecesi açılırsa, hiçbir faaliyetin belirli bir zamanda odaklanmaması da mümkündür. OnStop her zamanki gibi çalışmaya devam etmektedir. Aktivite ekrandan alındığı zaman çağrılacaktır.

Multi-resume Android 9.0'ı çalıştıran bazı cihazlarda da kullanılabilir. Bu cihazlarda çoklu devam ettirmeyi seçmek için aşağıdaki bildirim meta verilerini ekleyebilirsiniz:



Gelecekte, bir kerede birden fazla ekranı destekleyen katlanabilir telefonları görebilirsiniz. Bu yapılandırmanın kullanılması, geliştiricilerin bugün Chrome OS'de öngörülen ekranlarla nasıl çalıştığına benzemektedir.


Android 10 (API seviye 29) ve üstü ikincil ekranlardaki etkinlikleri destekliyor. Bir etkinlik birden çok ekranlı bir cihazda çalışıyorsa, kullanıcılar etkinliği bir ekrandan diğerine taşıyabilir. Çoklu özgeçmiş, çoklu ekran senaryoları için de geçerlidir. Birkaç aktivite aynı anda kullanıcı girişi alabilir.


Bir uygulama, başlatıldığında veya başka bir etkinlik oluşturduğunda hangi ekranda çalışacağını belirleyebilir. Bu davranış, manifest dosyasında tanımlanan activity başlatma moduna ve activity'i başlatan tarafından belirlenen intent flaglerine ve seçeneklerine bağlıdır.


Uygulamanız ikincil bir ekrana geçiyorsa, activity içeriği olarak kullandığınız içeriğin uygulama içeriği ile aynı olmadığını düşünmelisiniz. Örneğin, varsayılan ekranı almak için Uygulama içeriğini kullanırsanız, activity içeriğinden elde edilen değerlere göre farklı değerler verecektir.


Birden çok ekran kullanmak istiyorsanız, aşağıdaki methodları kullanmak isteyebilirsiniz:


Kullanılabilir ekranları bu şekilde alabilirsiniz.

Bir etkinliğin belirlenen ekranda başlatılıp başlatılamayacağını belirlemek için ise


Etkinliği ekranda başlatmak için ise aşağıdaki kod bloğunu kullanabilirsiniz.

Testlerinizi yapabilmeniz için Android Studio 3.5 de iki adet Foldable Emülator bulunmaktadır.


Bunun dışında Samsung tarafından yayınlanan Foldable Emülatöre buradan ulaşabilirsiniz.


Katlanabilir cihazlar ile uyumluluk için hazırladığım demoya aşağıdan ulaşabilirsiniz.



Github repository:

https://github.com/klztrk/FoldableCompatibleDemo


Referans ve daha fazla detay için:


#android #appfoldables #appsforfoldables #android10





Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın