Parcelable kullanın, kullandırtın

Merhabalar

Android’de sayfalar arası veri alışverişi yaparken Intent/Bundle yapısını çoğunlukla kullanırız. Bu yöntem daha çok string, integer, double, boolean vs. verileri diğer sayfalara göndermek için kullanılır. Bunun dışında herhangi bir object göndermek istersek karşımıza 2 yöntem çıkıyor. Bu yöntemlerden ilki Serializable diğeri ise Parcelable

Bu yazımda bu ikisinin karşılaştırmasının yanında nasıl kullanabileceklerinden de bahsetmeye çalışacağım.

İlk olarak herhangi bir türe sahip değişkeni nasıl diğer sayfalara göndeririz kısaca hatırlayalım. Bunun için Intent yapısını kullanıyoruz. İsterseniz Bundle kullanarakta gönderebiliriz. Örneğin bir activity’den diğerine String türüne sahip bir değişkeni diğer activity’e gönderelim.

Gönderme işlemi yaparken birinci activity’nin onCreate() metoduna alttaki kodu yazıp

İkinci activity onCreate() metodunda alttaki gibi veriyi alma işlemini gerçekleştirebiliriz.

Şimdi de iki activity arasında bir object transferi gerçekleştirmek istediğimizde neler yapabiliriz buna bir bakalım. Bunun için 2 yöntem var demiştik. Bunlar Serializable ve Parcelable. Eğer java ile daha önceden projeler geliştirmiş iseniz Serializable size yabancı gelmeyecektir. Kullanım olarak daha kolaydır ancak performans açısından aynı şeyleri söylemek çok mümkün olmuyor. Şimdi Serializable interface nasıl kullanılır ona bir göz atalım.

Gördüğünüz üzere kullanımı oldukça basit gözüküyor. Yani kullanabilmek için gerekli interface implement etmek yeterli

Şimdide asıl konumuz Parcelable gelelim. Android için Google mühendisleri tarafından sayfalar arası daha hızlı veri transferi yapabilmek için geliştirilen bu interface performansıyla Serializable üstünlük sağlıyor. Google mühendislerine göre Parcelable hız konusunda oldukça iyi seviyede. Yani veri transferini hızlı bir şekilde gerçekleştiriyor. Parcelable interface kullanımıda bu şekilde

Evet şöyle bir baktığınızda kod kalabalığı gibi görünsede korkmanıza gerek yok. Parcelable interface implement ettiğiniz zaman zaten Android Studio‘da hata veren kısma gelip Alt + Enter tuşlarına bastığınızda otomatik olarak gerekli metodlar implement ediliyor.

O kadar kod yazdık birde performans testlerine bakalım ki ona göre hangisini tercih edeceğimize karar verelim.

parcelable-vs-serializable-e1366334109758

Hız testlerinde göründüğü üzere Parcelable oldukça hızlı. Yani Parcelable kullanmanız sizin yararınıza olacaktır.

Kaynaklar :

https://developer.android.com/reference/android/os/Parcelable.html
http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html
https://dzone.com/articles/using-android-parcel
http://www.developerphil.com/parcelable-vs-serializable/
http://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/
http://www.3pillarglobal.com/insights/parcelable-vs-java-serialization-in-android-app-development
https://guides.codepath.com/android/using-parcelable

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.