Herkese merhaba. WeCode Platform’daki diğer yazılarımı okuduysanız, yazılarımın genellikle Android uygulama geliştirmeyle ilgili olduğunu biliyorsunuz. Çoğu yazımda Android uygulama geliştirmenin çeşitli konularında genel bilgi vermeye çalışıyorum. Bu yazının konusu fragment’lar. Fragment’lar Android uygulama geliştirmenin önemli bir parçası. Bu yüzden bu yazıda fragment’lar hakkında zihninizde genel bir fikir oluşturmak istiyorum.

“Fragment nedir?” sorusuyla başlamak istiyorum.
Fragment için şöyle diyebiliriz: activity’nin içinde oluşturulan, onun küçük bir parçasıdır. Ancak fragment’lar normal activity’lerden farklıdır; kendi yaşam döngüleri vardır.
Fragment’lar geliştiricilere Android 3.0 ile birlikte sunuldu. Geliştiricilere esnek bir çalışma ortamı sağlarlar.
Örneğin tek bir activity’nin içine birden fazla fragment ekleyebilirsiniz. Böylece birden fazla kullanıcı arayüzü tasarlayabilirsiniz. Bununla ilgili tasarım örneklerini aşağıda vereceğim.
Android uygulamalarının çoğunda activity kullanırız. Activity kullandığınız bu uygulamaları düşünürseniz, bunların hep tek bir kullanıcı arayüzü vardır. Kullanıcılar farklı bir işlem yapmak istediklerinde başka bir activity’ye geçmek zorunda kalırdı. Fragment’larda durum farklı.
Kullanıcılara aynı ekranda birden fazla kullanıcı arayüzü gösterebilirsiniz ve bu arayüzlerin hepsi birbirinden bağımsız çalışabilir; çünkü her fragment’ın kendi yaşam döngüsü vardır.
Ayrıca bir fragment’ı birden fazla activity’de kullanabilirsiniz. Aynı tasarımı farklı activity’lerde kullanabilmek kolaylık sağlar. O bölümü yeniden tasarlamanız ve kodlarını baştan yazmanız gerekmez; fragment’ı farklı activity’lerde çağırıp çalıştırabilirsiniz.
Yine fragment’lar sayesinde bir activity’nin içinde bir fragment’ı kapatıp yeni bir fragment açabilirsiniz. Böylece activity’nin yaşam döngüsü bozulmaz.
Yukarıda anlattıklarımıza bakarak fragment’ları activity’lerin modüler parçaları olarak düşünebilirsiniz. Bu özellikler gelişmiş, esnek ve kolay bir çalışma ortamı sağlar; böylece geliştiriciler daha kaliteli uygulamalar geliştirebilir.
Fragment’larla ilgili önemli bir ayrıntı daha var: Fragment bir activity’nin içinde çalışmak zorundadır. Yani fragment kendi başına çalışamaz. Fragment’ın yaşam döngüsü de activity’nin yaşam döngüsüne bağlıdır. Bir activity kapanırsa ona bağlı tüm fragment’lar da kapanır.

Fragment’ların örnek bir kullanımını görmek istersek yukarıdaki resme bakabiliriz. Android, fragment’ları anlatmak için bu örneği resmî sitesinde kullanıyor. Fragment’ları tabletlerde kullanmak daha fazla avantaj sağlar. Tabletlerin ekranı geniş olduğu için kullanıcılar geniş ekrandan yararlanabilir.
Bu örnekte tablet ekranında iki fragment var. Bu uygulamanın farklı makaleleri okumak için yapıldığını varsayalım. Sol tarafta makaleler liste biçiminde yer alabilir. Kullanıcı bu listeden bir makaleye tıkladığında makale sağ taraftaki fragment’ta açılabilir.
Böylece kullanıcı makaleleri sol taraftan seçebilir ve seçtiği makalenin içeriğini sağ tarafta okuyabilir.
Bu şekilde birden fazla işlemi tek ekranda yapabilmek uygulamanın UX/UI kalitesini artırır; böylece kullanıcı deneyimi yükselir.
Fragment olmadan kullanıcılar bir activity’de makale seçmek, içeriğini okumak için de başka bir activity açmak zorunda kalır. Kullanıcı makale listesine dönmek isterse, bir activity’nin içindeki makale içeriği sayfasını kapatıp başka bir activity’nin içindeki makale listesi sayfasını açması gerekir.
Sağ tarafta aynı örnek tasarım telefonlar için gösteriliyor. Ancak bir telefon ekranında iki fragment’ı birlikte göstermeye yetecek alan yok. Bu yüzden iki farklı fragment, iki farklı activity’nin içinde yer alıyor.
Kullanıcı listeden bir makale seçtiğinde yeni bir activity açılır ve makale içeriği fragment’ın içinde gösterilir.
Fragment’ların kullanıcı deneyimi açısından sağladığı birçok avantajı farklı uygulamalarda görebilirsiniz. Fragment’ların farklı bir kullanım örneğini başka bir uygulama tasarımı üzerinden göstermek istiyorum.

Bu resimde Android Studio ile mesajlaşma için oluşturulmuş bir uygulama var. Bu uygulama “WhatsApp” uygulamasına benzeyebilir. Uygulamada tek bir activity içinde üç fragment kullanılmış.
Birinci bölüm arkadaşlık isteklerini görmek için.
İkincisi mesajlaşma bölümü.

Üçüncü fragment ise tüm arkadaşların yer aldığı bir liste.

Burada önemli olan şu: Tek bir activity içinde üç fragment var ve hepsi birbirinden bağımsız çalışıyor. Bir fragment’tan diğerine geçmek için activity’yi kapatmanız gerekmez. Her fragment’ın kendi yaşam döngüsü olduğu için hepsi bağımsız çalışır. Ayrıca her fragment’ın kendi kullanıcı arayüzü vardır.
Örneğin birinci bölümde arkadaşlık isteklerini kabul edebilir ya da reddedebilirsiniz.
İkinci bölümde sohbetinize devam edebilirsiniz.
Arkadaşlar bölümünde ise arkadaş listesini ve iletişim bilgilerini görebilirsiniz.
Böyle bir tasarım kullanıcı deneyimini artırır. Bunu fragment’lar sayesinde yapabilirsiniz. Buna benzer çok sayıda örnek verebiliriz ama bu yazı için bu örneklerin yeterli olduğunu düşünüyorum.
Gördüğünüz gibi fragment’lar Android uygulama geliştirmede bize büyük kolaylık sağlıyor. Fragment kullanmaya başladıkça kullanıcı deneyimini yükseltmede vazgeçilmez olduklarını göreceksiniz. Umarım fragment’lar hakkında size faydalı bilgiler verebilmişimdir. Başka bir yazıda görüşmek üzere.
