Jetpack Compose

提供:MonoBook

Jetpack Compose (AndroidX Compose)とは、AndroidアプリのUIデザインを関数で定義するやつです。

大雑把にいえばiOSでいうSwiftUIみたいなもんです。ソースコードでガシガシとUIデザインするやつです。

SwiftUIではViewプロトコルのbodyプロパティで定義します。

struct ContentView: View {
    var body: some View {
        Text("hello world.")
    }
}

一方、AndroidXのComposeではActivityのsetContent関数で実装します。

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Text("hello world.")
         }
    }
}

だいたい同じですね。


.NET for Android (旧Xamarin.Android)

.NET for Android (旧Xamarin.Android)向けのNuGetも存在しています。

using Android.App;
using Android.OS;
using AndroidX.AppCompat.App;
using Xamarin.AndroidX.Compose.UI;

[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        Xamarin.Essentials.Platform.Init(this, savedInstanceState);

        // Compose UIのセットアップ
        ComposeView composeView = new ComposeView(this);
        composeView.SetContent(() =>
        {
            // ここにCompose UIのコンポーネントを配置します
        });

        // ComposeViewをContentViewとして設定
        SetContentView(composeView);
    }
}

これもだいたい同じですね。