Taşıma stratejisi

Mevcut bir View tabanlı uygulamanız varsa, uygulamanın tamamını yeniden yazmak istemeyebilirsiniz. Kullanıcı arayüzü. 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 sayesinde, yeni özellikler oluşturmaya devam ederken mevcut görüntüleme tabanlı uygulamanızı Oluştur'a taşıyabilirsiniz. Compose'a taşıma işlemini Oluştur ve Görünümlerin mevcut dizinde bir arada bulunduğu artımlı kod tabanınızı oluşturamazsınız.

Görüntülemeye dayalı bir uygulamanın Compose'a taşınma aşamaları
Şekil 1. View tabanlı bir uygulamanın Compose'a taşıma sürecinin aşamaları

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

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

Compose ile yeni ekranlar oluşturun

Ekranın tamamını kaplayan yeni özellikler oluşturmak için Oluştur'u kullanmak, en iyi uygulamaları paylaşacağız. Bu stratejiyle, şirketinizin iş ihtiyaçlarını karşılarken özellikler ekleyebilir ve Oluştur'un avantajlarından yararlanabilirsiniz.

Compose'da yeni ekran
Şekil 2. Oluştur'da yazılmış yeni bir ekran

Mevcut uygulamanızda yeni ekranlar oluşturmak için Derle'yi kullandığınızda uygulamanızın mimarisinin kısıtlamaları altında çalışmaya devam edersiniz. Şunu kullanıyorsanız: bileşenleri ve Gezinme bileşenini tanımlarsanız, bu durumda yeni bir Parça ve içeriklerini Compose'da bulabilirsiniz.

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 bir composable işlev sağlayabileceğiniz setContent() yöntemi.

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 edinmek için Parçalarda ComposeView bölümüne bakın.

Mevcut ekranlara yeni özellikler ekleme

Görüntüleme ve Oluşturma'nın birlikte bulunduğu mevcut bir ekran
Şekil 3. Karma Görünümler ve Oluşturma özelliklerini kullanan mevcut bir ekran

Eklediğiniz yeni özellik mevcut bir ekranın parçasıysa Oluştur'u mevcut bir Görüntü tabanlı 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 varsayalım. Bu sayede aşağıdaki gibi XML'dedir:

<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 hiyerarşide ComposeView'e referans verebilir ve setContent()'ı çağırabilirsiniz.

ComposeView hakkında daha fazla bilgi edinmek için Birlikte çalışabilirlik API'leri başlıklı makaleyi inceleyin.

Ortak kullanıcı arayüzü bileşenlerinden oluşan bir kitaplık derleme

Besteleme özelliğiyle özellik geliştirirken, elinizin altında olduğunu fark edeceksiniz. oluşturmaya karar verebiliriz. Ortak kullanıcı arayüzü bileşenleri kitaplığı oluşturma uygulamanızda bu bileşenler için tek bir doğruluk kaynağına sahip olmanızı sağlar. teşvik etmek sizin görevinizdir. Derlediğiniz özellikler bu kitaplığa bağlı olabilir. Bu bu teknik özellikle, bir web sitesinde özel tasarım sistemi Oluştur'u tıklayın.

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ştir

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 bakacağınız ilk yerler basittir ekranları. Basit ekranlar; karşılama ekranı, onay ekranı veya kullanıcı arayüzünde görüntülenen verilerin nispeten statik olduğu bir ayar ekranı.

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ı, Compose'da birkaç satır içinde 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, bunu tamamen Compose'a taşıyabilir veya her parçayı ayrı ayrı yapabilirsiniz. Öğ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şım aşağıdan yukarıya yaklaşım olarak da adlandırılır.

Karma Görünümler ve Oluştur kullanıcı arayüzünü Oluştur&#39;a taşımak için aşağıdan yukarıya 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

Fragment'leri 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ünüm ve Oluştur işlemlerinizde Parça tabanlı Gezinme bileşeni kullanabilirsiniz. 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

Artık mevcut Görüntüleme tabanlı verilerinizi taşımak için uygulayabileceğiniz stratejiyi uygulamasında hakkında daha fazla bilgi edinmek için Birlikte çalışabilirlik API'lerini inceleyin.