Taşıma stratejisi

Görüntülemeye dayalı mevcut bir uygulamanız varsa kullanıcı arayüzünün tamamını tek seferde yeniden yazmak istemeyebilirsiniz. Bu sayfa, kampanyanıza yeni Compose bileşenleri eklemenize yardımcı olur. kullanabilirsiniz. Uygulamanızda Compose'u kullanmaya başlamak için Oluştur'u ayarlama başlıklı makaleye göz atın. mevcut bir uygulama için.

Jetpack Compose, daha en baştan View birlikte çalışabilirlik özelliğiyle tasarlandı. Bu işlev, mevcut Görünüm tabanlı uygulamanızı Compose'a taşıyabileceğiniz anlamına gelir bir yandan da yeni özellikler geliştirmeye devam edebilir. Compose'a geçiş yapmak için uygulamanız tamamen Compose'a geçene kadar kod tabanınızda Compose ve Görünümler'in birlikte bulunduğu kademeli bir geçiş yapmanızı öneririz.

Görüntülemeye dayalı bir uygulamanın Compose'a taşınma aşamaları
Şekil 1. Görüntülemeye dayalı bir uygulamanın Oluştur'a taşınma aşamaları

Uygulamanızı Compose'a taşımak için şu adımları uygulayın:

  1. Oluştur ile yeni ekranlar oluşturun.
  2. Özellikler oluştururken, yeniden kullanılabilir öğeleri belirleyin ve kitaplığını oluşturur.
  3. Mevcut özellikleri tek ekranda değiştirin.

Compose ile yeni ekranlar oluşturun

Bir ekranın tamamını kapsayan yeni özellikler oluşturmak için Oluştur'u kullanmak, Oluştur'u kullanmaya başlamanızı sağlamanın en iyi yoludur. Bu stratejiyle, şirketinizin iş ihtiyaçlarını karşılarken özellik ekleyebilir ve Oluştur'un avantajlarından yararlanabilirsiniz.

Compose'da yeni ekran
Şekil 2. Compose'da yeni bir ekran
'nı inceleyin.

Mevcut uygulamanızda yeni ekranlar oluşturmak için Oluştur'u kullandığınızda uygulamanızın mimarisinin kısıtlamaları altında çalışma Fragment'leri ve gezinme bileşenini kullanıyorsanız yeni bir Fragment oluşturmanız ve içeriğini Oluştur'da bulundurmanız gerekir.

Bir Parçada Oluştur özelliğini kullanmak için bir Parçada ComposeView değerini döndürün Parçanızın onCreateView() yaşam döngüsü yöntemi. ComposeView, birleştirilebilir bir işlev sağlayabileceğiniz bir setContent() yöntemine sahiptir.

class NewFeatureFragment : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        return ComposeView(requireContext()).apply {
            setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
            setContent {
                NewFeatureScreen()
            }
        }
    }
}

Daha fazla bilgi için Fragmentlerde ComposeView başlıklı makaleyi inceleyin.

Mevcut ekranlara yeni özellikler ekleme

Karma Görünümler ve Oluştur özelliklerine sahip mevcut bir ekran
Şekil 3. Görünümler ve Oluştur'un birlikte bulunduğu mevcut bir ekran

Eklediğiniz yeni özellik mevcut bir ekranın parçasıysa Oluştur'u mevcut görüntü tabanlı bir ekranda da kullanabilirsiniz. Bunu yapmak içinComposeView Hiyerarşiyi tıpkı diğer Görünümler gibi görüntüleyebilirsiniz.

Örneğin, bir LinearLayout öğesine alt görünüm eklemek istediğinizi düşünelim. Bunu XML'de aşağıdaki gibi yapabilirsiniz:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <TextView
      android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />

  <androidx.compose.ui.platform.ComposeView
      android:id="@+id/compose_view"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
</LinearLayout>

Görünüm şişirildikten sonra ComposeView öğesine başvurabilirsiniz: sıralayıp setContent() yöntemini çağırın.

ComposeView hakkında daha fazla bilgi edinmek için İşbirlikçi API'ler başlıklı makaleyi inceleyin.

Ortak kullanıcı arayüzü bileşenleri kitaplığı oluşturma

Compose ile özellik oluştururken bir bileşen kitaplığı oluşturduğunuzu kısa sürede fark edersiniz. Ortak kullanıcı arayüzü bileşenleri kitaplığı oluşturmak, uygulamanızda bu bileşenler için tek bir bilgi kaynağına sahip olmanızı ve yeniden kullanılabilirliği desteklemenizi sağlar. Bu durumda, oluşturduğunuz özellikler bu kitaplığa bağlı olabilir. Bu teknik, özellikle Oluştur'da özel bir tasarım sistemi oluşturuyorsanız yararlıdır.

Bu kitaplık, uygulamanızın boyutuna bağlı olarak ayrı bir paket, modül veya kitaplık modülü olabilir. Uygulamanızdaki modülleri düzenleme hakkında daha fazla bilgi için Android uygulama modülerleştirme rehberi başlıklı makaleyi inceleyin.

Mevcut özellikleri Oluştur ile değiştirme

Yeni özellikler oluşturmak için Oluşturma'yı kullanmanın yanı sıra, Uygulamanızdaki mevcut özellikleri taşıyarak Compose'dan yararlanabilirsiniz.

Uygulamanızın yalnızca Composer olmasını sağlamak, geliştirme sürecinizi hızlandırabilir uygulamanızın APK boyutunu ve derleme sürelerini küçültün. Oluşturma ve Görüntüleme Karşılaştırması'nı inceleyin. performansı başlıklı makaleyi inceleyin.

Basit ekranlar

Mevcut özellikleri Compose'a taşırken ilk bakmanız gereken yerler basit ekranlardır. Basit ekranlar; karşılama ekranı, onay ekranı veya kullanıcı arayüzünde gösterilen verilerin nispeten statik olduğu bir ayar ekranı olabilir.

Aşağıdaki XML dosyasını ele alalım:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <TextView
      android:id="@+id/title_text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/title"
      android:textAppearance="?attr/textAppearanceHeadline2" />

  <TextView
      android:id="@+id/subtitle_text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/subtitle"
      android:textAppearance="?attr/textAppearanceHeadline6" />

  <TextView
      android:id="@+id/body_text"
      android:layout_width="wrap_content"
      android:layout_height="0dp"
      android:layout_weight="1"
      android:text="@string/body"
      android:textAppearance="?attr/textAppearanceBody1" />

  <Button
      android:id="@+id/confirm_button"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="@string/confirm"/>
</LinearLayout>

XML dosyası, Oluştur'da birkaç satırda yeniden yazılabilir:

@Composable
fun SimpleScreen() {
    Column(Modifier.fillMaxSize()) {
        Text(
            text = stringResource(R.string.title),
            style = MaterialTheme.typography.headlineMedium
        )
        Text(
            text = stringResource(R.string.subtitle),
            style = MaterialTheme.typography.headlineSmall
        )
        Text(
            text = stringResource(R.string.body),
            style = MaterialTheme.typography.bodyMedium
        )
        Spacer(modifier = Modifier.weight(1f))
        Button(onClick = { /* Handle click */ }, Modifier.fillMaxWidth()) {
            Text(text = stringResource(R.string.confirm))
        }
    }
}

Karma görünüm ve Oluşturma ekranları

Biraz Oluştur kodu içeren bir ekran başka bir iyi adaydır taşımanın ilk adımıdır. Ekranın karmaşıklığına bağlı olarak, ekranı tamamen Compose'a taşıyabilir veya parça parça taşıyabilirsiniz. Öğe kullanıcı arayüzü hiyerarşisinin bir alt ağacında bulunan Oluştur ile başladığında devam edersiniz, kullanıcı arayüzü öğelerini taşımaya devam edebilir. Bu yaklaşıma aşağıdan yukarıya yaklaşım da denir.

Karma Görünümler ve Oluşturma kullanıcı arayüzünü Compose&#39;a taşımaya yönelik aşağıdan yukarı yaklaşım
Şekil 4. Karma Görünümler ve Oluşturma kullanıcı arayüzünü Compose'a taşımaya yönelik aşağıdan yukarı yaklaşım
'nı inceleyin.

Parçaları ve Gezinme bileşenini kaldırma

Tüm Fragment'lerinizi kaldırıp ilgili ekran düzeyinde kompozisyonlarla değiştirdikten sonra Gezinme Oluşturma'ya geçebilirsiniz. Ekran düzeyi composable'lar Oluştur ve Görüntüle içeriklerinin bir karışımını içerebilir, ancak hepsi Gezinme Oluşturma Aracı'nın etkinleştirilmesi için gezinme hedeflerinin composables olması gerekir taşıma. O zamana kadar, karma Görüntüleme ve Oluşturma kod tabanınızda Fragment tabanlı gezinme bileşenini kullanmaya devam etmeniz gerekir. Jetpack Gezinme'yi Gezinme Oluşturmaya Taşıma başlıklı makaleye göz atın: daha fazla bilgi edinin.

Ek kaynaklar

Mevcut görüntüleme tabanlı uygulamanızı Oluştur'a taşıma hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara göz atın:

Sonraki adımlar

Mevcut görüntüleme tabanlı uygulamanızı taşımak için uygulayabileceğiniz stratejiyi öğrendiğinize göre, daha fazla bilgi edinmek için İnteroperabilite API'lerini inceleyin.