DeepLinks Kullanarak Çok Modüler Uygulamada Gezinme | tarafından Rahul Ray | Tem, 2022

DeepLinks Kullanarak Çok Modüler Uygulamada Gezinme |  tarafından Rahul Ray |  Tem, 2022

Merhaba Android Geliştiricileri, bu makalede birden fazla özellik modülünde gezinme uygulamasını göreceğiz.

Sorun nedir?

Son zamanlarda, çok modüler bir şekilde beste dışı bir proje kuruyordum. Kullanım durumuma göre, ben olumsuzluk ikna edilmiş için gitmek Tek Etkinlik Mimarisibunun yerine şöyle bir şey arıyordum özellik modülü başına en az bir Etkinlik, yani; her özellik modülünün giriş noktası olarak en az bir etkinliği olmalıdır.

Jetpack navigasyonu, çok modüler bir yaklaşımla oldukça iyi çalışabilir. Yine de, esas olarak parçalara dayanmaktadır. Büyük projelerde, parçalar yerine Faaliyetlere sahip olmanın daha iyi olacağı birçok örnek olacağını hissediyorum çünkü faaliyetlerin kendi yaşam döngüleri olacak ve hayat çok daha kolay olacak.

Neden Derin Bağlantılar?

Modüller arasında gezinme amaçları için başka yollar da vardır, ancak DeepLink yaklaşımını seçmenin ana nedeni, platformdan bağımsız olmasıdır. Gelecekte, bazı özellikleri başlattığımız ve kullanıcılarımızın yalnızca bir bağlantıya dokunarak doğrudan o belirli özellik modülüne gitmesini istediğimiz durumlar olabilir. O zaman ölçeklendirmek çok daha kolay ve nispeten daha hızlı olurdu.

Yaklaşım

  1. Giriş noktası olarak her modül için bir aktivite oluşturacağız.
  2. Aktivitelerin her biri için, gelen derin bağlantının o aktivite için olması gerektiğinden emin olduktan sonra belirli bir aktiviteyi başlatan bir işlemci oluşturacağız.

Yeter artık konuşalım

Her şeyden önce, oluşturma olmayan bir proje kurun ve adında iki özellik modülü oluşturun. özellik_01 ve özellik_02 ve bir çekirdek modülünün yanı sıra uygulama modül.

Modül bağımlılığı şu şekilde tanımlanabilir:
uygulama tüm modüllere bağlıdır çekirdek, özellik_01 ve özellik_02
özellik_01
bağlıdır çekirdek
özellik_02 bağlıdır çekirdek
çekirdek hiçbir şeye bağlı değil
Burada, çekirdek diğer tüm modüller için ortak modüldür.

Ardından, çekirdek modülün içinde, özellik modüllerinin her biri için derin bağlantı işlemcilerini tanımlamak için kullanılacak bazı sınıfları ve arabirimleri içerecek bir gezinme paketi oluşturun.

Öncelikle bir DeeplinkProcessor arayüzü oluşturun. Biri derin bağlantıyı eşleştirmek ve diğeri eşleştirmeden sonra faaliyetin başlatılmasını yürütmek için iki işlevi olacaktır.

Ardından, sorumluluğu işlemciyi yürütmek olan, işlem adı verilen tek bir işleve sahip olacak bir işleyici oluşturun.

Bundan sonra, bir oluşturacağız Varsayılan İşleyici bu, bu DeeplinkHandler’ın bir uygulaması olacaktır. Derin bağlantıyla eşleşen bulunan ilk işlemci için yürütme işlevini çağırır.

Şimdi, özellik modüllerinin her biri için etkinlikler oluşturacağız, yani Özellik01Etkinlik ve Özellik02Etkinlik. Onlara karşılık olarak her ikisi için de DeeplinkProcessors oluşturacağız, yani Feature01Deeplinkİşlemci ve Feature02Deeplinkİşlemci.

İçin Feature02Deeplinkİşlemcibağlantıyla birlikte gelen bazı ekstra verileri de işleyebiliriz.

Buraya kadar, gezinmek için tüm yapı taşlarına sahibiz özellik_01 ile özellik_02. Şimdi tüm bunları eylemde birleştirmemiz gerekiyor.
Şimdi, tüm bu işlemcilerin örneklerini sürdürmek, sahip olacağımız gibi sıkıcı olabilir. n uygulamamızdaki modül sayısı.
Bu konuda bize yardımcı olmak için kullanacağız hançer-kabzası modüller arasında tanımlanan tüm işlemcileri sağlamak ve yürütmek.

Uygulama modülümüzde, adında bir nesne oluşturun. AppModule bu, tüm tanımlanmış işlemcileri işlemek için uygulama bağlamı ve bir derin bağlantı işleyicisi sağlayacaktır.

İçinde sağlarDefaultDeeplinkHandler() bir dizi işlemci sağlamamız gerekiyor, ancak DeeplinkProcessor bir arayüz olduğundan, onu sadece somutlaştırma ile sağlayamayız, bu yüzden onu sadece hilt kullanarak bağlamamız gerekiyor.

Bu, tüm işlemcileri oluşturmak için gereken kümeye bağlayacaktır. Varsayılan İşleyici.
Şimdi bu Varsayılan İşleyiciyi içimize enjekte edebiliriz. Ana aktivite ve derin bağlantıları yönetin.

Asıl gezinme bölümüne geçmeden önce, şema ve ev sahibi Manifest.xml dosyasındaki MainActivity için.

Şimdi navigasyonu şu şekilde deneyebiliriz:

İşte modüller arasında gezinmenin bir demosu.

Örnek depoya buradan göz atın.

hadi bağlanalım LinkedIn ve heyecan!
Mutlu kodlama!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.